00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __UTILITY_H__
00025 #define __UTILITY_H__
00026
00027
00028 #include <string>
00029 #include <vector>
00030 #include "Common.h"
00031 extern "C" {
00032 #include <libical/ical.h>
00033 }
00034
00035 class CProperties;
00036
00037 class CUtility{
00038 public:
00039
00040
00041 time_t getDateFromTime(time_t startDate);
00045 vector <string> parseIds(string szIds);
00046
00047
00048
00049 bool isEncodingRequired(string szInput, bool syncing);
00050
00051
00052 bool stringReplaceOne(string &toChange, const char *changeThis,
00053 const char *toThis);
00054
00055
00056
00057 string encodeQuotedPrintable(string szInput);
00058 template <class T> void releaseVector(std::vector <T*> vec);
00059 void releasePropertiesVector(std::vector <CProperties*> vec);
00060 std::vector < time_t > getRecurrentTimes(std::string szRRule,
00061 icaltimetype iDtStart,
00062 time_t iViewEnd,
00063 icaltimezone *pTz,
00064 int& pErrorCode);
00065 icaltimezone* getSystemTimeZoneAsIcalTimeZone();
00066 std::string getSystemTimeZone();
00067 string getApplicationName();
00068 void setApplicationName(string ApplicationName);
00069
00070 CUtility();
00071 ~CUtility();
00072 static CUtility *Instance();
00073
00074
00075 private :
00076
00077 string AppName;
00078 static CUtility *pUt;
00079 };
00080
00081
00082 template <class T> void CUtility::releaseVector(vector <T *> vec)
00083 {
00084 class std::vector <T *>::iterator iIter;
00085 for (iIter = vec.begin(); iIter < vec.end(); iIter++) {
00086 delete(*iIter);
00087 (*iIter) = 0;
00088 }
00089 vec.clear();
00090 }
00091
00092 #endif