diff --git a/src/message.cc b/src/message.cc index 103e60c..b5d360f 100644 --- a/src/message.cc +++ b/src/message.cc @@ -5,72 +5,6 @@ namespace pEp { namespace PythonAdapter { using namespace std; - Message::Blob::Blob(char *value, size_t size, string mime_type, - string filename) : _value(value), _size(size), - _mime_type(mime_type), _filename(filename) - { - - } - - Message::Blob::Blob(const Blob& second, bool copy) - { - _size = second._size; - if (copy) { - _value = (char *) malloc(_size); - if (!_value) - throw bad_alloc(); - memcpy(_value, second._value, _size); - } - else { - _value = second._value; - } - _mime_type = second._mime_type; - _filename = second._filename; - } - - Message::Blob::Blob(bloblist_t *bl) - { - _value = NULL; - attach(bl); - } - - Message::Blob::~Blob() - { - free(_value); - } - - void Message::Blob::attach(bloblist_t *blob) - { - free(_value); - _size = blob->size; - _value = blob->value; - blob->size = 0; - blob->value = NULL; - if (blob->mime_type) { - _mime_type = blob->mime_type; - free(blob->mime_type); - blob->mime_type = NULL; - } - if (blob->filename) { - _filename = blob->filename; - free(blob->filename); - blob->filename = NULL; - } - } - - bloblist_t * Message::Blob::detach() - { - bloblist_t *bl = new_bloblist(_value, _size, _mime_type.c_str(), - _filename.c_str()); - if (!bl) - throw bad_alloc(); - _size = 0; - _value = NULL; - _mime_type = ""; - _filename = ""; - return bl; - } - Message::Message(PEP_msg_direction dir) : _msg(new_message(dir)) { diff --git a/src/message.hh b/src/message.hh index 51ac367..f008a84 100644 --- a/src/message.hh +++ b/src/message.hh @@ -3,6 +3,7 @@ #include #include #include +#include #include "str_attr.hh" namespace pEp { @@ -10,20 +11,10 @@ namespace pEp { using namespace utility; class Message { - class Blob { - char *_value; - size_t _size; + struct Blob { + vector _value; string _mime_type; string _filename; - - public: - Blob(char *value = NULL, size_t size = 0, string mime_type = "", - string filename = ""); - Blob(bloblist_t *bl); - Blob(const Blob& second, bool copy = false); - ~Blob(); - void attach(bloblist_t *blob); - bloblist_t *detach(); }; message *_msg;