libzypp  17.36.3
ByteArray.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
9 #ifndef ZYPP_BYTEARRAY_H
10 #define ZYPP_BYTEARRAY_H
11 
12 #include <vector>
13 #include <cstring>
14 #include <string>
15 #include <string_view>
16 
17 namespace zypp {
18  class ByteArray : public std::vector<char>
19  {
20  public:
21  using vector<char>::vector;
22  explicit ByteArray ( const std::string &data ) : ByteArray( data.c_str(), data.length() ) { }
23  explicit ByteArray ( const char *data, const int len = -1 ) : ByteArray( data, data + (len == -1 ? strlen(data) : len) ) { }
24  std::string asString () const {
25  if ( size() == 0 )
26  return std::string();
27  return std::string( data(), size() );
28  }
29 
30 #ifdef __cpp_lib_string_view
31  std::string_view asStringView () const {
32  if ( size() == 0 )
33  return std::string_view();
34  return std::string_view( data(), size() );
35  }
36 #endif
37 
38  static std::size_t maxSize () {
39  static const auto size = ByteArray().max_size();
40  return size;
41  }
42 
43  };
44 
45  class UByteArray : public std::vector<unsigned char>
46  {
47  public:
48  using vector<unsigned char>::vector;
49  explicit UByteArray ( const char *data, const int len = -1 ) : UByteArray( data, data + (len == -1 ? strlen(data) : len) ) { }
50 
51  static std::size_t maxSize () {
52  static const auto size = UByteArray().max_size();
53  return size;
54  }
55  };
56 }
57 
58 
59 #endif
ByteArray(const char *data, const int len=-1)
Definition: ByteArray.h:23
std::string asString() const
Definition: ByteArray.h:24
ByteArray(const std::string &data)
Definition: ByteArray.h:22
static std::size_t maxSize()
Definition: ByteArray.h:51
static std::size_t maxSize()
Definition: ByteArray.h:38
UByteArray(const char *data, const int len=-1)
Definition: ByteArray.h:49
Easy-to use interface to the ZYPP dependency resolver.
Definition: Application.cc:19