00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef INCL_WINITEM
00037 #define INCL_WINITEM
00038
00044 #include "base/fscapi.h"
00045 #include "base/Log.h"
00046 #include "vocl/VObject.h"
00047 #include <string>
00048 #include <list>
00049 #include <map>
00050
00051 using namespace std;
00052
00053
00054
00055 #define VCARD_VERSION TEXT("2.1")
00056 #define VCALENDAR_VERSION TEXT("1.0")
00057 #define VNOTE_VERSION TEXT("1.1")
00058 #define SIF_VERSION TEXT("1.1")
00059
00060
00061
00062 #define ERR_ITEM_VOBJ_PARSE "VConverter: error occurred parsing the item data."
00063 #define ERR_ITEM_VOBJ_WRONG_TYPE "Error: wrong vobject type \"%ls\" (\"%ls\" expected)"
00064 #define ERR_ITEM_VOBJ_TYPE_NOTFOUND "Error: vobject type not specified (\"%ls\" expected)"
00065 #define ERR_SIFFIELDS_NULL "Parsing error: sifFields must be initialized before parsing data."
00066 #define INFO_ITEM_VOBJ_WRONG_VERSION "Warning! Wrong vobject version \"%ls\" (\"%ls\" expected)"
00067 #define INFO_ITEM_VOBJ_VERSION_NOTFOUND "Warning! VObject version not specified (\"%ls\" expected)"
00068 #include "base/globalsdef.h"
00069
00070 BEGIN_NAMESPACE
00071
00072
00073 typedef map<wstring,wstring>::iterator mapIterator;
00074
00075
00083 class WinItem {
00084
00085 private:
00086
00089 static wstring badString;
00090
00091
00092 protected:
00093
00095 static unsigned long crc32Table[256];
00096
00097
00098 public:
00099
00108 map<wstring,wstring> propertyMap;
00109
00111 WinItem();
00112
00114 virtual ~WinItem();
00115
00116
00118 int getPropertyMapSize();
00119
00121 map<wstring,wstring>& getPropertyMap();
00122
00123
00131 void setProperty(const wstring propertyName, const wstring propertyValue);
00132
00140 void setIntProperty(const wstring propertyName, const int intValue);
00141
00142
00152 bool getProperty(const wstring propertyName, wstring& propertyValue);
00153
00165 wstring& getPropertyRef(const wstring propertyName, bool* found);
00166
00175 bool getIntProperty(const wstring propertyName, int* intValue);
00176
00177
00178 void removeElement(wstring key);
00179
00181 void resetPropertyMap();
00182
00184 void resetAllValues();
00185
00186
00193 virtual wstring& toString() = 0;
00194
00202 virtual int parse(const wstring dataString) = 0;
00203
00204
00211 virtual long getCRC();
00212
00219 WCHAR* getVObjectPropertyValue(VObject* vo, const WCHAR* propertyName);
00220
00221
00227 virtual wstring& getName();
00228 };
00229
00230
00231 END_NAMESPACE
00232
00235 #endif