/* */ #include "Data.h" #include "MetaEntryVisitor.h" Data::Data(const char* data, int 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; } } int Data::getLen() const { return len; } int Data::toInt() const { return (int)toLLInt(); } long long int 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); }