// ContactDataObject.h - Client Data Object header.
//
-// (c) 2012-2015 Xestia Software Development.
+// (c) 2012-2016 Xestia Software Development.
//
// This file is part of Xestia Address Book.
//
#include <map>
#include <wx/tokenzr.h>
-#include "../vcard/vcard.h"
-#include "../common/textprocessing.h"
+#include "../../vcard/vcard.h"
+#include "../../common/textprocessing.h"
+
+using namespace std;
enum ContactLoadStatus{
CONTACTLOAD_UNITTESTFAIL = -1,
CONTACTLOAD_FILEBASESPECFAIL
};
+enum ContactSaveStatus{
+ CONTACTSAVE_UNITTESTFAIL = -1,
+ CONTACTSAVE_OK,
+};
+
enum ContactKindType{
CONTACTKIND_NONE,
CONTACTKIND_INDIVIDUAL,
void ProcessCalendarFreeBusy(wxString PropertySeg1, wxString PropertySeg2, int *FreeBusyAddressCount);
void ProcessKey(wxString PropertySeg1, wxString PropertySeg2, int *KeyCount);
void ProcessVendor(wxString PropertySeg1, wxString PropertySeg2, int *VendorCount);
+
+ // Save functions
+
+ void SaveTitle(map<int, wxString> *TitleList, map<int, wxString> *TitleListLanguage,
+ map<int, wxString> *TitleListAltID, map<int, wxString> *TitleListPID,
+ map<int, wxString> *TitleListType, map<int, int> *TitleListPref,
+ map<int, wxString> *TitleListTokens, wxString *SaveData, wxString DataType);
+ void SaveSource(map<int, wxString> *SourceList, map<int, wxString> *SourceListAltID,
+ map<int, wxString> *SourceListPID, map<int, wxString> *SourceListType,
+ map<int, wxString> *SourceListMediatype, map<int, int> *SourceListPref,
+ map<int, wxString> *SourceListTokens, wxString *SaveData);
+ void SaveNickname(map<int, wxString> *NicknameList, map<int, wxString> *NicknameListAltID,
+ map<int, wxString> *NicknameListPID, map<int, wxString> *NicknameListType,
+ map<int, wxString> *NicknameListLanguage, map<int, int> *NicknameListPref,
+ map<int, wxString> *NicknameListTokens, wxString *SaveData, wxString DataType);
+ void SaveTimezone(map<int, wxString> *TZList, map<int, wxString> *TZListAltID,
+ map<int, wxString> *TZListPID, map<int, wxString> *TZListType,
+ map<int, wxString> *TZListMediatype, map<int, int> *TZListPref,
+ map<int, wxString> *TZListTokens, wxString *SaveData, wxString DataType);
+ void SaveAddress(map<int, wxString> *AddressList, map<int, wxString> *AddressListTown,
+ map<int, wxString> *AddressListCounty, map<int, wxString> *AddressListPostCode,
+ map<int, wxString> *AddressListCountry, map<int, wxString> *AddressListLabel,
+ map<int, wxString> *AddressListLang, map<int, wxString> *AddressListAltID,
+ map<int, wxString> *AddressListPID, map<int, wxString> *AddressListGeo,
+ map<int, wxString> *AddressListTimezone, map<int, wxString> *AddressListType,
+ map<int, wxString> *AddressListMediatype, map<int, int> *AddressListPref,
+ map<int, wxString> *AddressListTokens, wxString *SaveData, wxString DataType);
+ void SaveEmail(map<int, wxString> *EmailList, map<int, wxString> *EmailListAltID,
+ map<int, wxString> *EmailListPID, map<int, wxString> *EmailListType,
+ map<int, int> *EmailListPref, map<int, wxString> *EmailListTokens,
+ wxString *SaveData, wxString DataType);
+ void SaveLanguage(map<int, wxString> *LanguageList, map<int, wxString> *LanguageListAltID,
+ map<int, wxString> *LanguageListPID, map<int, wxString> *LanguageListType,
+ map<int, int> *LangaugeListPref, map<int, wxString> *LanguageListTokens,
+ wxString *SaveData, wxString DataType);
+ void SaveGeoposition(map<int, wxString> *GeographyList, map<int, wxString> *GeographyListAltID,
+ map<int, wxString> *GeographyListPID, map<int, wxString> *GeographyListType,
+ map<int, wxString> *GeographyListMediatype, map<int, wxString> *GeographyListDataType,
+ map<int, int> *GeographyListPref, map<int, wxString> *GeographyListTokens,
+ wxString *SaveData, wxString DataType);
+ void SaveURL(map<int, wxString> *WebsiteList, map<int, wxString> *WebsiteListAltID,
+ map<int, wxString> *WebsiteListPID, map<int, wxString> *WebsiteListType,
+ map<int, wxString> *WebsiteListMediatype, map<int, int> *WebsiteListPref,
+ map<int, wxString> *WebsiteListTokens, wxString *SaveData, wxString DataType);
+ void SaveRole(map<int, wxString> *RoleList, map<int, wxString> *RoleListLanguage,
+ map<int, wxString> *RoleListAltID, map<int, wxString> *RoleListPID,
+ map<int, wxString> *RoleListType, map<int, int> *RoleListPref,
+ map<int, wxString> *RoleListTokens, wxString *SaveData, wxString DataType);
public:
wxString BirthdayAltID;
wxString BirthdayCalScale;
wxString BirthdayTokens;
+ bool BirthdayText = FALSE;
+
wxString Anniversary;
wxString AnniversaryAltID;
wxString AnniversaryCalScale;
wxString AnniversaryTokens;
+ bool AnniversaryText = FALSE;
wxString Gender;
wxString GenderDetails;
std::map<int, wxString> ClientPIDList;
std::map<int, wxString> ClientPIDListTokens;
- /* We don't use these at the moment but we want to keep
- them for compatability reasons */
-
- /*std::map<int, wxString> ExtraFullNames;*/
- /*std::map<int, wxString> ExtraNicknames;*/
-
std::map<int, wxString> FullNamesList;
std::map<int, wxString> FullNamesListType;
std::map<int, wxString> FullNamesListLanguage;
std::map<int, wxString> GeneralIMListAltID;
std::map<int, wxString> GeneralIMListPID;
std::map<int, wxString> GeneralIMListType;
+ std::map<int, wxString> GeneralIMListTypeInfo;
std::map<int, wxString> GeneralIMListTokens;
std::map<int, wxString> GeneralIMListMediatype;
std::map<int, int> GeneralIMListPref;
std::map<int, wxString> GeneralTelephoneListType;
std::map<int, wxString> GeneralTelephoneListTokens;
std::map<int, wxString> GeneralTelephoneListTypeInfo;
+ std::map<int, wxString> GeneralTelephoneListDataType;
std::map<int, int> GeneralTelephoneListPref;
std::map<int, wxString> GeneralLanguageList;
std::map<int, wxString> GeneralGeographyListType;
std::map<int, wxString> GeneralGeographyListTokens;
std::map<int, wxString> GeneralGeographyListMediatype;
+ std::map<int, wxString> GeneralGeographyListDataType;
std::map<int, int> GeneralGeographyListPref;
std::map<int, wxString> GeneralRelatedList;
std::map<int, wxString> HomeIMListAltID;
std::map<int, wxString> HomeIMListPID;
std::map<int, wxString> HomeIMListType;
+ std::map<int, wxString> HomeIMListTypeInfo;
std::map<int, wxString> HomeIMListTokens;
std::map<int, wxString> HomeIMListMediatype;
std::map<int, int> HomeIMListPref;
std::map<int, wxString> HomeTelephoneListType;
std::map<int, wxString> HomeTelephoneListTokens;
std::map<int, wxString> HomeTelephoneListTypeInfo;
+ std::map<int, wxString> HomeTelephoneListDataType;
std::map<int, int> HomeTelephoneListPref;
std::map<int, wxString> HomeLanguageList;
std::map<int, wxString> HomeGeographyListType;
std::map<int, wxString> HomeGeographyListTokens;
std::map<int, wxString> HomeGeographyListMediatype;
+ std::map<int, wxString> HomeGeographyListDataType;
std::map<int, int> HomeGeographyListPref;
std::map<int, wxString> HomeWebsiteList;
std::map<int, wxString> BusinessIMListAltID;
std::map<int, wxString> BusinessIMListPID;
std::map<int, wxString> BusinessIMListType;
+ std::map<int, wxString> BusinessIMListTypeInfo;
std::map<int, wxString> BusinessIMListTokens;
std::map<int, wxString> BusinessIMListMediatype;
std::map<int, int> BusinessIMListPref;
std::map<int, wxString> BusinessTelephoneListType;
std::map<int, wxString> BusinessTelephoneListTypeInfo;
std::map<int, wxString> BusinessTelephoneListTokens;
+ std::map<int, wxString> BusinessTelephoneListDataType;
std::map<int, int> BusinessTelephoneListPref;
std::map<int, wxString> BusinessLanguageList;
std::map<int, wxString> BusinessGeographyListType;
std::map<int, wxString> BusinessGeographyListTokens;
std::map<int, wxString> BusinessGeographyListMediatype;
+ std::map<int, wxString> BusinessGeographyListDataType;
std::map<int, int> BusinessGeographyListPref;
std::map<int, wxString> BusinessWebsiteList;
// Subroutines.
ContactLoadStatus LoadFile(wxString Filename);
+ ContactSaveStatus SaveFile(wxString Filename);
+ ContactSaveStatus SaveString(wxString *Data);
+ void ClearData();
};