CoreUtils/MString.h
2022-07-28 18:52:30 -07:00

118 lines
2.0 KiB
C++

#ifndef __MString_h__
#define __MString_h__
#include "ZString.h"
#include <iostream>
#include <sstream>
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