#ifndef __HPCXX_STRING_H_ #define __HPCXX_STRING_H_ #include #include #include "hpcxx_byte.h" class HPCxx_String { private: int len; char *value; int rel; public: HPCxx_String() : value(NULL), len(0), rel(0) {}; HPCxx_String(char *v, int r = 1) : value(v), len(v ? strlen(v): 0), rel(r) {} HPCxx_String(HPCxx_String &source); HPCxx_String& operator=(HPCxx_String &source); HPCxx_String& operator= (char *buf); static int registrationID() { return 354; } operator char *() { return value; } int length() { return len; } void setRelease() { rel = 1; } void setUnrelease() { rel = 0; } ~HPCxx_String(); friend void hpcxx_pack(HPCxx_Buffer&, HPCxx_String*, int); friend void hpcxx_unpack(HPCxx_Buffer&, HPCxx_String*, int); friend ostream& operator<< (ostream &, HPCxx_String &); }; ostream &operator<< (ostream &, HPCxx_String &); #endif // __HPCXX_STRING_H_