Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

hastring.h

Go to the documentation of this file.
00001 
00010 #ifndef HASTRING_H
00011 #define HASTRING_H
00012 
00013 #if defined(_MSC_VER)
00014 #pragma warning (disable:4786)
00015 #endif
00016 
00017 // Use STL string
00018 #include <string>
00019 
00020 #if defined(_MSC_VER)
00021 using namespace std;
00022 #define _stricmp stricmp
00023 #if !defined(DllImport)
00024         #define DllImport   __declspec( dllimport )
00025 #endif
00026 #if !defined(DllExport)
00027         #define DllExport   __declspec( dllexport )
00028 #endif
00029 #endif 
00030 
00031 #include "hastl.h"
00032 
00033 class HaString: public string
00035 {
00036 public:
00037         HaString() {}
00038         HaString(const string& bas_str): string(bas_str) {}
00039         HaString(const HaString& str): string(str) {}
00040         HaString(const char* s): string(s) {}
00041         HaString(const char* s, size_type n): string(s,n) {}
00042         virtual ~HaString() {}
00043 
00044         const char* trunc_space();  
00045         void convert_to_upper();    
00046         void convert_to_lower();    
00047 
00048         static HaString GetDirFromFileName(HaString fname);     
00049         static HaString GetPrefixFromFullName(HaString fname);  
00050     static HaString GetExtFromFileName(HaString fname);     
00051 
00052 };
00053 
00054 class StrDoubleMap;
00055 
00056 class StrDoubleMap_itr
00058 {
00059 public:
00060         StrDoubleMap_itr( StrDoubleMap& new_map);
00061     StrDoubleMap_itr( StrDoubleMap_itr& ref);
00062 
00063         HaString GetKey();
00064         double   GetVal();
00065         int GetFirst();
00066         int GetNext();
00067 
00068 protected:
00069         map<HaString, double, less<HaString> >::iterator itr;
00070         StrDoubleMap& int_map;
00071 };
00072 
00073 class StrDoubleMap: public map<HaString, double, less<HaString> >
00075 {
00076 public:
00077 
00078         typedef StrDoubleMap_itr iterator;
00079 
00080         void clear();
00081         int count(const char* str);
00082         int size();
00083 
00084         double GetVal(const char* str);
00085         void SetVal(const char* str, double val);
00086         int ierr; 
00087 };
00088 
00089 class StrStrMap;
00090 
00091 class StrStrMap_itr
00093 {
00094 public:
00095         StrStrMap_itr( StrStrMap& new_map);
00096         StrStrMap_itr( StrStrMap_itr& ref);
00097         
00098         const char* GetKey();
00099         const char* GetVal();
00100         int GetFirst();
00101         int GetNext();
00102 
00103 protected:
00104         map<HaString, HaString, less<HaString> >::iterator itr;
00105         StrStrMap& int_map;
00106 };
00107 
00108 class StrStrMap: public map<HaString, HaString, less<HaString> >
00110 {
00111 public:
00112 
00113         typedef StrStrMap_itr iterator;
00114 
00115         void clear();
00116         int count(const char* str);
00117         int size();
00118 
00119         const char* GetVal(const char* str);
00120         void SetVal(const char* str, const char* val);
00121         int ierr; 
00122 
00123 };
00124 
00125 class StrVec: public vector<HaString>
00127 {
00128 public:
00129         StrVec() {}
00130         StrVec(size_type n): vector<HaString>(n) {}
00131         StrVec(const vector<HaString>& str_vec): vector<HaString>(str_vec) {}
00132 
00133 //  vector<> functions to be accessible through SWIG in python
00134 //      
00135 //  void reserve(size_t n); 
00136 //  void resize(size_t n, const char* str);
00137 //  size_t size();
00138 //  void push_back(const char* str);
00139 //  
00140         
00141     const char* GetVal(size_t idx);
00142         void SetVal(size_t idx, const char* val);
00143     
00144 };
00145 
00146 
00147 #if defined(linux) || defined(__DECCXX)
00148 extern int _fstrnicmp(const char *s1, const char *s2, size_t n);
00149 #endif
00150 
00151 #if !defined(_MSC_VER)
00152 extern int stricmp( const char* str1, const char* str2); 
00153                                                          
00154 #endif    
00155 
00156 extern int strcmp_trunc(const char* str1, const char* str2); 
00157 
00158 extern int strcpy_to_fort(char* str_fort, const char* c_str, int len_fort); 
00159 
00160 extern int stricmp_trunc(const char* str1, const char* str2); 
00161 
00162 #endif /* !HASTRING_H */

Generated on Tue Feb 17 02:03:06 2004 for harlem by doxygen 1.3.6