summaryrefslogtreecommitdiff
path: root/utils/String.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils/String.h')
-rw-r--r--utils/String.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/utils/String.h b/utils/String.h
new file mode 100644
index 0000000..4aa83ca
--- /dev/null
+++ b/utils/String.h
@@ -0,0 +1,61 @@
+/*
+ * CENA C++ Utilities
+ *
+ * by Stephane Chatty
+ *
+ * Copyright 1991, 1992
+ * Laboratoire de Recherche en Informatique (LRI)
+ * Centre d'Etudes de la Navigation Aerienne (CENA)
+ *
+ * CcuString allocation and copying
+ *
+ * $Id$
+ * $CurLog$
+ */
+
+#ifndef String_H_
+#define String_H_
+
+#include "cplus_bugs.h"
+
+/*? class StringMemory ?*/
+extern char* NewString (const char*);
+extern char* NewString (const char*, int);
+extern char* NewString (int);
+extern void FreeString (char*);
+/*? end ?*/
+
+class CcuShadowString;
+
+class CcuString {
+private:
+ char* Str;
+public:
+inline CcuString () { Str = 0; }
+ CcuString (const char*);
+ CcuString (int);
+ CcuString (const CcuString&);
+ CcuString (const CcuShadowString&);
+ ~CcuString ();
+ CcuString& operator = (const CcuString&);
+ CcuString& operator = (const char*);
+ CcuString& operator = (const CcuShadowString&);
+inline operator const char* () const { return Str; }
+ int Length () const;
+};
+
+class CcuShadowString {
+private:
+ const char* Str;
+public:
+inline CcuShadowString () { Str = 0; }
+ CcuShadowString (const char*);
+ CcuShadowString (const CcuString&);
+inline CcuShadowString& operator = (const CcuString& s) { Str = (const char*) s; return *this; }
+inline CcuShadowString& operator = (const char* s) { Str = s; return *this; }
+inline operator const char* () const { return Str; }
+ int Length () const;
+};
+
+#endif /* String_H_ */
+