Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
A string utility class and a new Exception (used to throw out of band exception)
[simgrid.git] / src / cxx / StringHelper.hpp
diff --git a/src/cxx/StringHelper.hpp b/src/cxx/StringHelper.hpp
new file mode 100644 (file)
index 0000000..a1675d3
--- /dev/null
@@ -0,0 +1,245 @@
+/*\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