/* */ #include "Data.h" #include "MetaEntryVisitor.h" Data::Data(const char* data, int32_t len, bool number):number(number) { if(data == NULL) { this->data = NULL; this->len = 0; } else { this->data = new char[len]; memcpy(this->data, data, len); this->len = len; } } Data::~Data() { delete [] data; } string Data::toString() const { if(len == 0) { return ""; } else { char* temp = new char[len+1]; memcpy(temp, data, len); temp[len] = '\0'; string str(temp); delete [] temp; return str; } } const char* Data::getData() const { if(this->len == 0) { return NULL; } else { return data; } } int32_t Data::getLen() const { return len; } int32_t Data::toInt() const { return toLLInt(); } int64_t Data::toLLInt() const { if(len == 0) { return 0; } else { return strtoll(toString().c_str(), NULL, 10); } } bool Data::isNumber() const { return number; } void Data::accept(MetaEntryVisitor* v) const { v->visit(this); }