#include #include #include #include #include using namespace std; enum CalendarObjectLoadResult { CALENDAROBJECTLOAD_UNITTESTFAIL = -1, CALENDAROBJECTLOAD_OK, CALENDAROBJECTLOAD_MISSING, CALENDAROBJECTLOAD_INVALIDFORMAT, CALENDAROBJECTLOAD_CANNOTOPEN }; enum CalendarObjectValidResult{ CALENDAROBJECTVALID_UNITTESTFAIL = -1, CALENDAROBJECTVALID_OK, CALENDAROBJECTVALID_INVALIDFORMAT }; class CalendarObject{ public: CalendarObjectLoadResult LoadFile(std::string LoadFilename); CalendarObjectLoadResult LoadString(std::string *LoadStringData); CalendarObjectValidResult ValidBaseObject(); // Setup virtual subroutines for use by objects // inheriting from CalendarObject later on. virtual CalendarObjectValidResult ValidObject() { return CALENDAROBJECTVALID_OK; }; virtual void Clear() {}; protected: // Initial Loading Data. vector ObjectName; vector ObjectData; // Object data. vector AttachList; vector AttachListTokens; vector AttachListEncoding; vector AttachListValue; vector CategoriesList; vector CategoriesListLanguage; vector CateogriesListTokens; std::string ClassData; std::string ClassListTokens; vector CommentList; vector CommentListAltID; vector CommentListLanguage; vector CommentListTokens; vector DescriptionList; vector DescriptionListAltID; vector DescriptionListLanguage; vector DescriptionListTokens; std::string GeographicData; std::string GeographicTokens; std::string LocationData; std::string LocationDataAltID; std::string PercentCompleteData; std::string PercentCompleteTokens; int PriorityData; std::string PriorityTokens; std::string ResourcesData; std::string ResourcesDataAltID; std::string ResourcesDataLanguage; std::string ResourcesDataTokens; std::string StatusData; std::string StatusTokens; std::string SummaryData; std::string SummaryDataAltID; std::string SummaryDataLanguage; std::string SummaryDataTokens; std::string DataTimeEndData; std::string DataTimeEndDataValue; std::string DataTimeEndDataTimeZoneID; std::string DataTimeEndDataTokens; std::string DueData; std::string DueDataValue; std::string DueDataTimeZoneID; std::string DueDataTokens; std::string DataTimeStartData; std::string DataTimeStartDataValue; std::string DataTimeStartDataTimeZoneID; std::string DataTimeStartDataTokens; std::string DurationData; std::string DurationDataTokens; vector FreeBusyList; vector FreeBusyListType; vector FreeBusyListTokens; std::string TimeTransparencyData; std::string TimeTransparencyDataTokens; private: virtual void ProcessData() {}; };