Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Win32: implement further UTF8 support
[xestiacalendar/.git] / source / libraries / CalendarDataStorage / CalendarDataStorage.h
index 7387194..1e934df 100644 (file)
@@ -1,3 +1,24 @@
+// CalendarDataStorage.h - CalendarDataStorage class header
+//
+// (c) 2016-2017 Xestia Software Development.
+//
+// This file is part of Xestia Calendar.
+//
+// Xestia Calendar is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by the
+// Free Software Foundation, version 3 of the license.
+//
+// Xestia Calendar is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with Xestia Calendar. If not, see <http://www.gnu.org/licenses/>
+
+#ifndef __LIBRARIES_CALENDARDATASTORAGE_H__
+#define __LIBRARIES_CALENDARDATASTORAGE_H__
+
 #include <string>
 #include <iostream>
 #include <sstream>
 
 #include "../../objects/calendarevent/CalendarEvent.h"
 #include "../../common/colour.h"
+#include "../../common/random.h"
 
-#ifndef __LIBRARIES_CALENDARDATASTORAGE_H__
-#define __LIBRARIES_CALENDARDATASTORAGE_H__
-
-/*enum CDSAddEntryResult{
-       CDSADDENTRY_UNITTESTFAIL = -1,
-       CDSADDENTRY_OK
-}*/
+#if defined(WIN32)
+#include <Windows.h>
+#endif
 
 enum CDSAccountResult{
        CDSACCOUNT_UNITTESTFAIL = -1,
        CDSACCOUNT_OK,
        CDSACCOUNT_FAILED,
        CDSACCOUNT_NOACTION,
-       CDSACCOUNT_NOACCOUNT
+       CDSACCOUNT_NOACCOUNT,
+       CDSACCOUNT_NONAME
 };
 
 enum CDSCalendarResult{
@@ -30,6 +49,7 @@ enum CDSCalendarResult{
        CDSCALENDAR_OK,
        CDSCALENDAR_FAILED,
        CDSCALENDAR_NOACTION,
+       CDSCALENDAR_NOACCOUNT,
        CDSCALENDAR_NOCALENDAR
 };
 
@@ -48,6 +68,7 @@ enum CDSEntryResult{
 
 struct CDSGetAccountInfo{
        int accountID = 0;
+       int accountPreferencesID = 0;
        std::string accountName = "";
        CDSAccountResult accountInfoResult = CDSACCOUNT_NOACTION;
 };
@@ -58,6 +79,7 @@ struct CDSGetCalendarInfo{
        std::string accountName = "";
        std::string calendarName = "";
        std::string calendarTextID = "";
+       std::string calendarDescription = "";
        Colour calendarColour;
        CDSAccountResult accountInfoResult = CDSACCOUNT_NOACTION;
        CDSCalendarResult calendarInfoResult = CDSCALENDAR_NOACTION;
@@ -68,12 +90,18 @@ struct CDSAddEntryResult{
        CDSEntryResult addEventResult = CDSENTRY_NOACTION;
 };
 
+struct CDSEditEntryResult{
+       int calendarEntryID = 0;
+       CDSEntryResult editEventResult = CDSENTRY_NOACTION;
+};
+
 struct CDSGetCalendarEntryInfo{
        int accountID = 0;
        int calendarID = 0;
        int calendarEntryID = 0;
        std::string entryName = "";
        std::string entryDescription = "";
+       std::string entryFilename = "";
        int entryStartYear = 0;
        int entryStartMonth = 0;
        int entryStartDay = 0;
@@ -110,6 +138,26 @@ struct CDSAccountList{
        CDSAccountResult getAccountListResult = CDSACCOUNT_NOACTION;
 };
 
+enum CDSChecksumResult{
+       CDSCHECKSUM_UNITTESTFAIL = -1,
+       CDSCHECKSUM_OK,
+       CDSCHECKSUM_FAILED,
+       CDSCHECKSUM_NOHASH,
+       CDSCHECKSUM_CHECKSUMALREADYEXISTS,
+       CDSCHECKSUM_NORESULT
+};
+
+struct CDSGetChecksumResult{
+       CDSChecksumResult getChecksumResult = CDSCHECKSUM_NORESULT;
+       std::string checksumValue = "";
+};
+
+enum CDSCleanupResult{
+       CDSCLEANUP_UNITTESTFAIL = -1,
+       CDSCLEANUP_OK,
+       CDSCLEANUP_FAILED
+};
+
 class CalendarDataStorage{
 
        private:
@@ -123,7 +171,7 @@ class CalendarDataStorage{
        
                // Account functions.
        
-               CDSAccountResult AddAccount(std::string accountName);
+               CDSAccountResult AddAccount(std::string accountName, int accountPreferencesID);
                CDSGetAccountInfo GetAccount(std::string accountName);
                CDSAccountResult UpdateAccount(int accountID, std::string accountName);
                CDSAccountResult DeleteAccount(int accountID);
@@ -131,10 +179,11 @@ class CalendarDataStorage{
        
                // Calendar functions.
        
-               CDSCalendarResult AddCalendar(int accountID, std::string calendarName, std::string calendarID, Colour calendarColour);
+               CDSCalendarResult AddCalendar(int accountID, std::string calendarName, std::string calendarID, Colour calendarColour, std::string calendarDescription);
                CDSGetCalendarInfo GetCalendar(std::string accountName, std::string calendarTextID);
+               CDSGetCalendarInfo GetCalendar(int calendarID);
                CDSCalendarList GetCalendarList(int accountID);
-               CDSCalendarResult UpdateCalendar(int calendarID, std::string calendarName);
+               CDSCalendarResult UpdateCalendar(int calendarID, std::string calendarName, Colour calendarColour, std::string calendarDescription);
                CDSCalendarResult DeleteCalendar(int calendarID);
        
                // Entry functions
@@ -142,7 +191,19 @@ class CalendarDataStorage{
                CDSAddEntryResult AddEvent(int calendarID, std::string filename);
                CDSGetCalendarEntryInfo GetEvent(int calendarEntryID);
                CDSEntryList GetEventList(int calendarID);
+               CDSEntryList GetEventListByDate(int calendarYear, int calendarMonth, int calendarDay);
+               CDSEditEntryResult UpdateEvent(int eventID, std::string filename);
                CDSEntryResult DeleteEvent(int calendarEntryID);
+               
+               // Checksum functions.
+               
+               CDSChecksumResult AddChecksum(std::string checksumName, std::string checksumValue);             
+               CDSGetChecksumResult GetChecksum(std::string checksumName);
+               CDSChecksumResult UpdateChecksum(std::string checksumName, std::string checksumValue);
+               
+               // Cleanup functions.
+               
+               CDSCleanupResult Clear();
         
 };
 
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy