--- /dev/null
+/*\r
+ * StringHelper.hpp\r
+ *\r
+ * Copyright 2006,2007 Martin Quinson, Malek Cherier \r
+ * All right reserved. \r
+ *\r
+ * This program is free software; you can redistribute \r
+ * it and/or modify it under the terms of the license \r
+ *(GNU LGPL) which comes with this package. \r
+ *\r
+ */ \r
+ \r
+#ifndef STRING_HELPER_HPP\r
+#define STRING_HELPER_HPP\r
+\r
+ #ifndef __cplusplus\r
+ #error StringHelper.hpp requires C++ compilation (use a .cxx suffix)\r
+#endif\r
+\r
+#include <string>\r
+using std::string;\r
+\r
+#include<iostream>\r
+using std::ostream;\r
+using std::istream;\r
+\r
+#include <Config.hpp>\r
+\r
+// namespace SimGrid::Msg\r
+namespace SimGrid\r
+{\r
+ namespace Msg\r
+ {\r
+ class SIMGRIDX_EXPORT StringHelper\r
+ {\r
+ public:\r
+ \r
+ // Default constructor\r
+ StringHelper();\r
+\r
+ StringHelper(unsigned char c);\r
+ \r
+ StringHelper(unsigned char c, int n);\r
+ \r
+ StringHelper(char c);\r
+ \r
+ StringHelper(char c, int n);\r
+ \r
+ StringHelper(const char* cstr);\r
+ \r
+ StringHelper(const char* cstr, int n);\r
+ \r
+ StringHelper(const char* cstr, int pos, int n);\r
+ \r
+ StringHelper(const string& rstr);\r
+ \r
+ StringHelper(const string& rstr, int n);\r
+ \r
+ StringHelper(const string& rstr, int pos, int n);\r
+ \r
+ StringHelper(short si);\r
+ \r
+ StringHelper(int i);\r
+ \r
+ StringHelper(long l);\r
+ \r
+ StringHelper(float f);\r
+ \r
+ StringHelper(double d);\r
+\r
+ StringHelper(double d, const char* format);\r
+ \r
+ StringHelper(unsigned short usi);\r
+ \r
+ StringHelper(unsigned int ui);\r
+ \r
+ StringHelper(unsigned long ul);\r
+ \r
+ // Copy constructor\r
+ StringHelper(const StringHelper& rStringHelper);\r
+ \r
+ // Destructor\r
+ ~StringHelper();\r
+\r
+ // Operations\r
+ \r
+ StringHelper& append(unsigned char c);\r
+ \r
+ StringHelper& append(unsigned char c, int n);\r
+ \r
+ StringHelper& append(char c);\r
+ \r
+ StringHelper& append(char c, int n);\r
+ \r
+ StringHelper& append(const char* cstr);\r
+ \r
+ StringHelper& append(const char* cstr, int n);\r
+ \r
+ StringHelper& append(const char* cstr, int pos, int n);\r
+ \r
+ StringHelper& append(const string& rstr);\r
+ \r
+ StringHelper& append(const string& rstr, int n);\r
+ \r
+ StringHelper& append(const string& rstr, int pos, int n);\r
+ \r
+ StringHelper& append(short si);\r
+ \r
+ StringHelper& append(int i);\r
+ \r
+ StringHelper& append(long l);\r
+ \r
+ StringHelper& append(float f);\r
+ \r
+ StringHelper& append(double d);\r
+ \r
+ StringHelper& append(double d, const char* format);\r
+ \r
+ StringHelper& append(unsigned short usi);\r
+ \r
+ StringHelper& append(unsigned int ui);\r
+ \r
+ StringHelper& append(unsigned long ul);\r
+ \r
+ const char& at(int pos) const;\r
+ \r
+ char& at(int pos);\r
+ \r
+ const char* cstr(void) const;\r
+ \r
+ string& toString(void);\r
+ \r
+ int size(void) const;\r
+\r
+ void clear(void);\r
+\r
+ bool empty(void);\r
+ \r
+ // Operators\r
+ \r
+ // Assignement\r
+ StringHelper& operator = (const StringHelper& rStringHelper);\r
+ \r
+ StringHelper& operator = (const char* cstr);\r
+ \r
+ StringHelper& operator = (const string& str);\r
+ \r
+ StringHelper& operator = (short n);\r
+ \r
+ StringHelper& operator = (int n);\r
+ \r
+ StringHelper& operator = (long n);\r
+ \r
+ StringHelper& operator = (float n);\r
+ \r
+ StringHelper& operator = (double n);\r
+ \r
+ StringHelper& operator = (unsigned short n);\r
+ \r
+ StringHelper& operator = (unsigned int n);\r
+ \r
+ StringHelper& operator = (unsigned long n);\r
+ \r
+ char& operator[](int pos);\r
+ \r
+ char operator[](int pos) const;\r
+ \r
+ StringHelper& operator += (short n);\r
+ \r
+ StringHelper& operator += (int n);\r
+ \r
+ StringHelper& operator += (long n);\r
+ \r
+ StringHelper& operator += (float n);\r
+ \r
+ StringHelper& operator += (double n);\r
+ \r
+ StringHelper& operator += (unsigned short n);\r
+ \r
+ StringHelper& operator += (unsigned int n);\r
+ \r
+ StringHelper& operator += (unsigned long n);\r
+ \r
+ StringHelper& operator += (const StringHelper& rStringHelper);\r
+ \r
+ StringHelper& operator += (const string& rstr);\r
+ \r
+ StringHelper& operator += (const char* cstr);\r
+ \r
+ StringHelper& operator += (char c);\r
+ \r
+ StringHelper& operator + (short n);\r
+ \r
+ StringHelper& operator + (int n);\r
+ \r
+ StringHelper& operator + (long n);\r
+ \r
+ StringHelper& operator + (float n);\r
+ \r
+ StringHelper& operator + (double n);\r
+ \r
+ StringHelper& operator + (unsigned short n);\r
+ \r
+ StringHelper& operator + (unsigned int n);\r
+ \r
+ StringHelper& operator + (unsigned long n);\r
+ \r
+ StringHelper& operator + (const StringHelper& rStringHelper);\r
+ \r
+ StringHelper& operator + (const string& rstr);\r
+ \r
+ StringHelper& operator + (const char* cstr);\r
+ \r
+ StringHelper& operator + (char c);\r
+\r
+ operator char *();\r
+\r
+ operator const char *();\r
+\r
+ friend SIMGRIDX_EXPORT ostream& operator<<(ostream& stream, const StringHelper& s);\r
+\r
+ friend SIMGRIDX_EXPORT istream& operator<<(istream& stream, StringHelper& s);\r
+ \r
+ private:\r
+\r
+ // Methods\r
+ void init(void);\r
+ \r
+ // Attributes\r
+ \r
+ char* content;\r
+ int capacity;\r
+ int len;\r
+ };\r
+ \r
+ typedef class StringHelper* StringHelperPtr;\r
+\r
+ #define TEXT_(___x) StringHelper((___x))\r
+\r
+\r
+ } // namespace Msg\r
+} // namespace SimGrid\r
+\r
+\r
+#endif // !STRING_HELPER_HPP
\ No newline at end of file