hbytearray.h 763 B

1234567891011121314151617181920212223242526
  1. #ifndef HV_BYTE_ARRAY_H_
  2. #define HV_BYTE_ARRAY_H_
  3. #include "hbuf.h"
  4. #include "base64.h"
  5. class HByteArray : public HVLBuf {
  6. public:
  7. HByteArray() : HVLBuf() {}
  8. HByteArray(int cap) : HVLBuf(cap) {}
  9. HByteArray(void* data, int len) : HVLBuf(data, len) {}
  10. bool encodeBase64(void* ptr, int len) {
  11. int base64_len = BASE64_ENCODE_OUT_SIZE(len) + 1; // +1 for '\0'
  12. resize(base64_len);
  13. return base64_encode((unsigned char*)ptr, len, (char*)data()) == BASE64_OK;
  14. }
  15. bool decodeBase64(const char* base64) {
  16. int out_len = BASE64_DECODE_OUT_SIZE(strlen(base64));
  17. resize(out_len);
  18. return base64_decode(base64, strlen(base64), (unsigned char*)data()) == BASE64_OK;
  19. }
  20. };
  21. #endif // HV_BYTE_ARRAY_H_