4 * Copyright 2006,2007 Martin Quinson, Malek Cherier
7 * This program is free software; you can redistribute
8 * it and/or modify it under the terms of the license
9 *(GNU LGPL) which comes with this package.
13 #ifndef STRING_HELPER_HPP
14 #define STRING_HELPER_HPP
17 #error StringHelper.hpp requires C++ compilation (use a .cxx suffix)
29 // namespace SimGrid::Msg
34 class SIMGRIDX_EXPORT StringHelper
38 // Default constructor
41 StringHelper(unsigned char c);
43 StringHelper(unsigned char c, int n);
47 StringHelper(char c, int n);
49 StringHelper(const char* cstr);
51 StringHelper(const char* cstr, int n);
53 StringHelper(const char* cstr, int pos, int n);
55 StringHelper(const string& rstr);
57 StringHelper(const string& rstr, int n);
59 StringHelper(const string& rstr, int pos, int n);
61 StringHelper(short si);
67 StringHelper(float f);
69 StringHelper(double d);
71 StringHelper(double d, const char* format);
73 StringHelper(unsigned short usi);
75 StringHelper(unsigned int ui);
77 StringHelper(unsigned long ul);
80 StringHelper(const StringHelper& rStringHelper);
87 StringHelper& append(unsigned char c);
89 StringHelper& append(unsigned char c, int n);
91 StringHelper& append(char c);
93 StringHelper& append(char c, int n);
95 StringHelper& append(const char* cstr);
97 StringHelper& append(const char* cstr, int n);
99 StringHelper& append(const char* cstr, int pos, int n);
101 StringHelper& append(const string& rstr);
103 StringHelper& append(const string& rstr, int n);
105 StringHelper& append(const string& rstr, int pos, int n);
107 StringHelper& append(short si);
109 StringHelper& append(int i);
111 StringHelper& append(long l);
113 StringHelper& append(float f);
115 StringHelper& append(double d);
117 StringHelper& append(double d, const char* format);
119 StringHelper& append(unsigned short usi);
121 StringHelper& append(unsigned int ui);
123 StringHelper& append(unsigned long ul);
125 const char& at(int pos) const;
129 const char* cstr(void) const;
131 string& toString(void);
133 int size(void) const;
142 StringHelper& operator = (const StringHelper& rStringHelper);
144 StringHelper& operator = (const char* cstr);
146 StringHelper& operator = (const string& str);
148 StringHelper& operator = (short n);
150 StringHelper& operator = (int n);
152 StringHelper& operator = (long n);
154 StringHelper& operator = (float n);
156 StringHelper& operator = (double n);
158 StringHelper& operator = (unsigned short n);
160 StringHelper& operator = (unsigned int n);
162 StringHelper& operator = (unsigned long n);
164 char& operator[](int pos);
166 char operator[](int pos) const;
168 StringHelper& operator += (short n);
170 StringHelper& operator += (int n);
172 StringHelper& operator += (long n);
174 StringHelper& operator += (float n);
176 StringHelper& operator += (double n);
178 StringHelper& operator += (unsigned short n);
180 StringHelper& operator += (unsigned int n);
182 StringHelper& operator += (unsigned long n);
184 StringHelper& operator += (const StringHelper& rStringHelper);
186 StringHelper& operator += (const string& rstr);
188 StringHelper& operator += (const char* cstr);
190 StringHelper& operator += (char c);
192 StringHelper& operator + (short n);
194 StringHelper& operator + (int n);
196 StringHelper& operator + (long n);
198 StringHelper& operator + (float n);
200 StringHelper& operator + (double n);
202 StringHelper& operator + (unsigned short n);
204 StringHelper& operator + (unsigned int n);
206 StringHelper& operator + (unsigned long n);
208 StringHelper& operator + (const StringHelper& rStringHelper);
210 StringHelper& operator + (const string& rstr);
212 StringHelper& operator + (const char* cstr);
214 StringHelper& operator + (char c);
218 operator const char *();
220 friend SIMGRIDX_EXPORT ostream& operator<<(ostream& stream, const StringHelper& s);
222 friend SIMGRIDX_EXPORT istream& operator<<(istream& stream, StringHelper& s);
236 typedef class StringHelper* StringHelperPtr;
238 #define TEXT_(___x) StringHelper((___x))
242 } // namespace SimGrid
245 #endif // !STRING_HELPER_HPP