2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 * @author Kisub Song (kisubs.song@samsung.com)
24 #ifndef _PLATFORM_CONTACT_ADDRESS_BOOK_H_
25 #define _PLATFORM_CONTACT_ADDRESS_BOOK_H_
27 #include <contacts-svc.h>
31 #include <Commons/Emitters.h>
32 #include <API/Contact/IAddressBook.h>
33 #include <API/Contact/IContact.h>
35 #include "ContactsSvcChangeListenerManager.h"
41 class AddressBook : public TizenApis::Api::Contact::IAddressBook, public IContactEventCallbacks
50 explicit AddressBook();
51 virtual ~AddressBook();
53 virtual std::string getId() const;
54 virtual void setId(const std::string &value);
55 void setId(const int &value) { m_id = value; }
56 virtual std::string getName() const { return m_name; }
57 virtual void setName(const std::string &value) { m_name = value; }
58 virtual bool getReadOnly() const { return m_readOnly; }
59 virtual void setReadOnly(const bool &value) { m_readOnly = value; }
60 virtual std::string getAccountId() const;
61 virtual void setAccountId(const std::string &value);
62 void setAccountId(const int &value) { m_accountId = value; }
65 virtual void OnRequestReceived(const TizenApis::Api::Contact::EventAddressBookGetPtr &event);
66 virtual void OnRequestReceived(const TizenApis::Api::Contact::EventAddressBookAddPtr &event);
67 virtual void OnRequestReceived(const TizenApis::Api::Contact::EventAddressBookAddBatchPtr &event);
68 virtual void OnRequestReceived(const TizenApis::Api::Contact::EventAddressBookUpdatePtr &event);
69 virtual void OnRequestReceived(const TizenApis::Api::Contact::EventAddressBookUpdateBatchPtr &event);
70 virtual void OnRequestReceived(const TizenApis::Api::Contact::EventAddressBookRemovePtr &event);
71 virtual void OnRequestReceived(const TizenApis::Api::Contact::EventAddressBookRemoveBatchPtr &event);
72 virtual void OnRequestReceived(const TizenApis::Api::Contact::EventAddressBookFindPtr &event);
73 virtual void OnRequestReceived(const TizenApis::Api::Contact::EventAddressBookGetCategoriesPtr &event);
74 virtual void OnRequestReceived(const TizenApis::Api::Contact::EventAddressBookAddChangeListenerPtr &event);
75 virtual void OnRequestReceived(const TizenApis::Api::Contact::EventAddressBookRemoveChangeListenerPtr &event);
77 virtual void onContactEventAdded(TizenApis::Api::Contact::ContactArrayPtr &contacts);
78 virtual void onContactEventUpdated(TizenApis::Api::Contact::ContactArrayPtr &contacts);
79 virtual void onContactEventRemoved(TizenApis::Api::Contact::StringArrayPtr &contactIds);
82 //int m_latestVersion;
84 void internalAddContact(const TizenApis::Api::Contact::ContactPtr &newContact);
85 void internalDeleteContactById(int id);
86 DPL::Mutex m_contactEditingMutex;
88 typedef WrtDeviceApis::Commons::Emitters<TizenApis::Api::Contact::EventAddressBookChangeListenerEmitter> AddressBookChangedEmitter;
89 AddressBookChangedEmitter m_addressBookEmitters;
90 //DPL::Mutex m_addressBookEmittersMutex;
92 typedef std::map<long, TizenApis::Api::Contact::EventAddressBookChangeListenerEmitter::IdType> WatchIdMap;
93 WatchIdMap m_watchIdMap;
101 #endif // _PLATFORM_CONTACT_ADDRESS_BOOK_H_