3 // Container / environment class for the sync module.
7 Copyright (C) 2006-2010, Net Direct Inc. (http://www.netdirect.ca/)
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU General Public License in the COPYING file at the
19 root directory of this project for more details.
22 #ifndef __BARRY_SYNC_ENVIRONMENT_H__
23 #define __BARRY_SYNC_ENVIRONMENT_H__
25 #include <opensync/opensync.h>
26 #include <barry/barry.h>
31 struct DatabaseSyncState
34 OSyncObjTypeSink
*sink
;
40 Barry::RecordStateTable m_Table
;
48 DatabaseSyncState(OSyncPluginInfo
*info
, const char *description
);
51 std::string
Map2Uid(uint32_t recordId
) const;
55 struct BarryEnvironment
59 OSyncPluginInfo
*info
;
62 std::string m_ConfigData
;
65 std::string m_password
;
67 // device communication
68 Barry::IConverter m_IConverter
;
69 Barry::ProbeResult m_ProbeResult
;
70 Barry::Controller
*m_pCon
;
71 Barry::Mode::Desktop
*m_pDesktop
;
74 DatabaseSyncState m_CalendarSync
, m_ContactsSync
, m_JournalSync
, m_TodoSync
;
77 bool m_NeedsReconnect
;
83 BarryEnvironment(OSyncPluginInfo
*info
);
86 void Connect(const Barry::ProbeResult
&result
);
90 void ReconnectForDirtyFlags();
91 void RequireDirtyReconnect();
93 DatabaseSyncState
* GetSyncObject(OSyncChange
*change
);
95 void ClearDirtyFlags(Barry::RecordStateTable
&table
, const std::string
&dbname
);
96 void ClearCalendarDirtyFlags();
97 void ClearContactsDirtyFlags();
98 void ClearJournalDirtyFlags();
99 void ClearTodoDirtyFlags();