#ifndef __MString_h__ #define __MString_h__ #include "ZString.h" #include #include namespace coreutils { /// /// Use the MString object when you need a permanent backing store on the heap /// for a ZString style functionality. Because MString has a backing store we /// added functionalities to build strings as well as the parsing power of the /// ZString. /// class MString : public ZString { public: /// /// /// MString(); /// /// /// MString(const char *data); /// /// Consructor providing the initial setup of the ZString object. /// MString(char *data, size_t length); MString(const char *data, size_t length); /// /// Consructor providing a copy of a ZString. /// MString(ZString &zstring); /// /// Consructor providing a copy of a ZString. /// MString(const MString &mstring); /// /// Consructor from a string. /// MString(std::string data); ~MString(); /// /// Assignment operator will copy data to backing store. /// MString& operator=(coreutils::ZString& data); /// /// Assignment operator will copy data to backing store. /// MString& operator=(coreutils::MString& data); /// /// Assignment operator will copy data to backing store. /// MString& operator=(const char *data); /// /// Assignment operator will copy data to backing store. /// MString& operator=(char data); /// /// /// MString& operator<<(const char *value); MString& operator<<(const int value); MString& operator<<(coreutils::ZString &zstring); MString& operator<<(std::string value); /// /// /// MString& write(char ch); /// /// /// MString& write(ZString &value); private: int bufferSize = 0; void setSize(int size); }; } #endif