| 77 | | const cdstring& GetName() const |
| 78 | | { return mAdbkName; } |
| 79 | | void SetName(const char* name); |
| 80 | | |
| 81 | | virtual cdstring GetAccountName() const = 0; |
| 82 | | virtual cdstring GetURL(bool full = false) const = 0; |
| | 91 | CAdbkProtocol* GetProtocol() const |
| | 92 | { |
| | 93 | return mProtocol; |
| | 94 | } |
| | 95 | |
| | 96 | CAddressBook* GetParent() const |
| | 97 | { |
| | 98 | return mParent; |
| | 99 | } |
| | 100 | |
| | 101 | void AddChild(CAddressBook* child, bool sort = false); |
| | 102 | void AddChildHierarchy(CAddressBook* child, bool sort = false); |
| | 103 | void InsertChild(CAddressBook* child, uint32_t index, bool sort = false); |
| | 104 | CAddressBookList* GetChildren() const |
| | 105 | { |
| | 106 | return mChildren; |
| | 107 | } |
| | 108 | void SortChildren(); |
| | 109 | |
| | 110 | cdstring GetAccountName(bool multi = true) const; |
| | 111 | cdstring GetURL(bool full = false) const; |
| | 112 | |
| | 113 | void SetName(const cdstring& name); // Set name |
| | 114 | const cdstring& GetName() const // Get full name |
| | 115 | { return mName; } |
| | 116 | const char* GetShortName() const // Get short name |
| | 117 | { return mShortName; } |
| | 118 | void NewName(const cdstring& name); // Tell this and children to adjust names |
| | 176 | void SetSize(uint32_t size) |
| | 177 | { |
| | 178 | mSize = size; |
| | 179 | } |
| | 180 | uint32_t GetSize() const |
| | 181 | { |
| | 182 | return mSize; |
| | 183 | } |
| | 184 | void CheckSize(); |
| | 185 | |
| | 186 | uint32_t GetLastSync() const |
| | 187 | { |
| | 188 | return mLastSync; |
| | 189 | } |
| | 190 | void SyncNow() const; |
| | 191 | |
| | 192 | bool IsCached() const; |
| | 193 | void TestDisconnectCache(); |
| | 194 | |
| | 195 | CAddressBook* FindNode(cdstrvect& hierarchy, bool discover = false) const; |
| | 196 | CAddressBook* FindNodeOrCreate(cdstrvect& hierarchy) const |
| | 197 | { |
| | 198 | return FindNode(hierarchy, true); |
| | 199 | } |
| | 200 | |
| | 201 | void RemoveFromParent(); |
| | 202 | void Clear(); |
| | 203 | |
| | 204 | uint32_t GetRow() const; |
| | 205 | uint32_t CountDescendants() const; |
| | 206 | uint32_t GetParentOffset() const; |
| | 207 | const CAddressBook* GetSibling() const; |
| | 208 | void GetInsertRows(uint32_t& parent_row, uint32_t& sibling_row) const; |
| | 209 | |
| | 210 | // VCard stuff |
| | 211 | const vCard::CVCardAddressBook* GetVCardAdbk() const |
| | 212 | { |
| | 213 | return mVCardAdbk; |
| | 214 | } |
| | 215 | vCard::CVCardAddressBook* GetVCardAdbk() |
| | 216 | { |
| | 217 | return mVCardAdbk; |
| | 218 | } |
| | 219 | void SetVCardAdbk(vCard::CVCardAddressBook* adbk) |
| | 220 | { |
| | 221 | mVCardAdbk = adbk; |
| | 222 | } |
| | 223 | |
| | 224 | // Operations on address books |
| | 225 | void MoveAddressBook(const CAddressBook* dir, bool sibling); |
| | 226 | void CopyAddressBook(CAddressBook* node); |
| | 227 | void CopyAddressBookContents(CAddressBook* node); |
| | 228 | |
| 124 | | virtual void Rename(cdstring& new_name); // Rename |
| 125 | | virtual void Delete(); // Delete |
| 126 | | virtual void Empty(); // Empty |
| 127 | | |
| 128 | | virtual void CopyAll(CAddressBook* adbk); // Copy addresses and groups to another address book |
| 129 | | |
| 130 | | virtual void Synchronise(bool fast); // Synchronise to local |
| 131 | | virtual void ClearDisconnect(); // Clear disconnected cache |
| 132 | | virtual void SwitchDisconnect(CAdbkProtocol* local); // Switch into disconnected mode |
| 133 | | |
| 134 | | virtual CAdbkAddress* FindAddress(const char* name); |
| 135 | | virtual CAdbkAddress* FindAddress(const CAddress* addr); |
| 136 | | virtual CAdbkAddress* FindAddressEntry(const char* name); |
| 137 | | virtual CGroup* FindGroup(const char* name); |
| 138 | | virtual CGroup* FindGroupEntry(const char* name); |
| | 235 | void Rename(cdstring& new_name); // Rename |
| | 236 | void Delete(); // Delete |
| | 237 | void Empty(); // Empty |
| | 238 | |
| | 239 | void Synchronise(bool fast); // Synchronise to local |
| | 240 | void ClearDisconnect(); // Clear disconnected cache |
| | 241 | |
| | 242 | // Searching |
| | 243 | CAdbkAddress* FindAddress(const char* name); |
| | 244 | CAdbkAddress* FindAddress(const CAddress* addr); |
| | 245 | CAdbkAddress* FindAddressEntry(const char* name); |
| | 246 | CGroup* FindGroup(const char* name); |
| | 247 | CGroup* FindGroupEntry(const char* name); |
| 141 | | virtual void AddAddress(CAddress* addr, bool sorted = false); |
| 142 | | virtual void AddAddress(CAddressList* addrs, bool sorted = false); |
| 143 | | virtual void AddUniqueAddresses(CAddressList& add); // Add unique addresses from list |
| 144 | | virtual void UpdateAddress(CAddress* addr, bool sorted = false); // Address changed |
| 145 | | virtual void UpdateAddress(CAddressList* addrs, bool sorted = false) {} // Address changed |
| 146 | | virtual void UpdateAddress(CAddressList* old_addrs, CAddressList* new_addrs, bool sorted = false); // Address changed |
| 147 | | virtual void RemoveAddress(CAddress* addr); |
| 148 | | virtual void RemoveAddress(CAddressList* addrs) |
| 149 | | { if (IsLoaded()) mAddresses.RemoveAddress(addrs); } |
| 150 | | |
| 151 | | virtual void AddGroup(CGroup* grp, bool sorted = false); |
| 152 | | virtual void AddGroup(CGroupList* grps, bool sorted = false); |
| 153 | | virtual void AddUniqueGroups(CGroupList& add); // Add unique groups from list |
| 154 | | virtual void UpdateGroup(CGroup* grp, bool sorted = false); // Group changed |
| 155 | | virtual void UpdateGroup(CGroupList* grps, bool sorted = false) {} // Group changed |
| 156 | | virtual void UpdateGroup(CGroupList* old_grps, CGroupList* new_grps, bool sorted = false); // Address changed |
| 157 | | virtual void RemoveGroup(CGroup* grp); |
| 158 | | virtual void RemoveGroup(CGroupList* grps) |
| 159 | | { if (IsLoaded()) mGroups.RemoveGroup(grps); } |
| 160 | | |
| 161 | | virtual void MakeUniqueEntry(CAdbkAddress* addr) const; // Give this address a unique entry |
| | 250 | void AddAddress(CAddress* addr, bool sorted = false); |
| | 251 | void AddAddress(CAddressList* addrs, bool sorted = false); |
| | 252 | void AddUniqueAddresses(CAddressList& add); // Add unique addresses from list |
| | 253 | void UpdateAddress(CAddress* addr, bool sorted = false); // Address changed |
| | 254 | void UpdateAddress(CAddressList* addrs, bool sorted = false); // Address changed |
| | 255 | void UpdateAddress(CAddressList* old_addrs, CAddressList* new_addrs, bool sorted = false); // Address changed |
| | 256 | void RemoveAddress(CAddress* addr); |
| | 257 | void RemoveAddress(CAddressList* addrs); |
| | 258 | |
| | 259 | void AddGroup(CGroup* grp, bool sorted = false); |
| | 260 | void AddGroup(CGroupList* grps, bool sorted = false); |
| | 261 | void AddUniqueGroups(CGroupList& add); // Add unique groups from list |
| | 262 | void UpdateGroup(CGroup* grp, bool sorted = false); // Group changed |
| | 263 | void UpdateGroup(CGroupList* grps, bool sorted = false); // Group changed |
| | 264 | void UpdateGroup(CGroupList* old_grps, CGroupList* new_grps, bool sorted = false); // Address changed |
| | 265 | void RemoveGroup(CGroup* grp); |
| | 266 | void RemoveGroup(CGroupList* grps); |
| | 267 | |
| | 268 | void MakeUniqueEntry(CAdbkAddress* addr) const; // Give this address a unique entry |
| 172 | | virtual bool FindNickName(const char* nick_name, |
| 173 | | CAdbkAddress*& addr); // Find address from nick-name |
| 174 | | |
| 175 | | virtual bool FindGroupName(const char* grp_name, |
| 176 | | CGroup*& grp); // Find group from group-name |
| 177 | | |
| 178 | | virtual void SearchAddress(const cdstring& name, |
| | 279 | bool FindNickName(const char* nick_name, |
| | 280 | CAdbkAddress*& addr, |
| | 281 | bool cache_only = false); // Find address from nick-name |
| | 282 | |
| | 283 | bool FindGroupName(const char* grp_name, |
| | 284 | CGroup*& grp, |
| | 285 | bool cache_only = false); // Find group from group-name |
| | 286 | |
| | 287 | void SearchAddress(const cdstring& name, |
| 188 | | virtual void CheckMyRights() = 0; // Get user's rights from server |
| 189 | | |
| 190 | | virtual void AddACL(const CAdbkACL* acl) = 0; // Add ACL to list |
| 191 | | virtual void SetACL(CAdbkACL* acl) = 0; // Set ACL on server |
| 192 | | virtual void DeleteACL(CAdbkACL* acl) = 0; // Delete ACL on server |
| 193 | | virtual CAdbkACLList* GetACLs() const |
| | 297 | void CheckMyRights(); // Get user's rights from server |
| | 298 | |
| | 299 | void AddACL(const CAdbkACL* acl); // Add ACL to list |
| | 300 | void SetACL(CAdbkACL* acl); // Set ACL on server |
| | 301 | void DeleteACL(CAdbkACL* acl); // Delete ACL on server |
| | 302 | CAdbkACLList* GetACLs() const |