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 * @file IAccountManager.h
20 * @author Lukasz Marek (l.marek@samsung.com)
24 #ifndef _ABSTRACT_LAYER_IACCOUNT_MANAGER_H_
25 #define _ABSTRACT_LAYER_IACCOUNT_MANAGER_H_
27 #include "IAccountService.h"
28 #include "IEventGetAccountServices.h"
29 #include "IEventFindServiceTypes.h"
30 #include <dpl/shared_ptr.h>
36 class IAccountManager : public WrtDeviceApis::Commons::EventRequestReceiver< IEventGetAccountServices >,
37 public WrtDeviceApis::Commons::EventRequestReceiver< IEventAddAccount > ,
38 public WrtDeviceApis::Commons::EventRequestReceiver< IEventDeleteAccount >,
39 public WrtDeviceApis::Commons::EventRequestReceiver< IEventFindAccounts >,
40 public WrtDeviceApis::Commons::EventRequestReceiver< IEventUpdateAccount >,
41 public WrtDeviceApis::Commons::EventRequestReceiver< IEventGetAccountById >,
42 public WrtDeviceApis::Commons::EventRequestReceiver< IEventGetServiceTypeById >,
43 public WrtDeviceApis::Commons::EventRequestReceiver< IEventGetProviderById >,
44 public WrtDeviceApis::Commons::EventRequestReceiver< IEventFindProviders >,
45 public WrtDeviceApis::Commons::EventRequestReceiver< IEventFindServiceTypes >
50 virtual ~IAccountManager();
52 virtual void getAccountServices(const IEventGetAccountServicesPtr &event);
54 virtual void addAccount(const IEventAddAccountPtr &event);
56 virtual void deleteAccount(const IEventDeleteAccountPtr &event);
58 virtual void findAccounts(const IEventFindAccountsPtr &event);
60 virtual void findServiceTypes(const IEventFindServiceTypesPtr &event);
62 virtual void updateAccount(const IEventUpdateAccountPtr &event);
64 virtual void getAccountById(const IEventGetAccountByIdPtr &event);
66 virtual void getServiceTypeById(const IEventGetServiceTypeByIdPtr &event);
68 virtual void getProviderById(const IEventGetProviderByIdPtr &event);
70 virtual void FindProviders(const IEventFindProvidersPtr &event);
74 virtual void OnRequestReceived(const IEventGetAccountServicesPtr &event) = 0;
76 virtual void OnRequestReceived(const IEventAddAccountPtr &event) = 0;
78 virtual void OnRequestReceived(const IEventDeleteAccountPtr &event) = 0;
80 virtual void OnRequestReceived(const IEventFindAccountsPtr &event) = 0;
82 virtual void OnRequestReceived(const IEventUpdateAccountPtr &event) = 0;
84 virtual void OnRequestReceived(const IEventGetAccountByIdPtr &event) = 0;
86 virtual void OnRequestReceived(const IEventGetServiceTypeByIdPtr &event) = 0;
88 virtual void OnRequestReceived(const IEventGetProviderByIdPtr &event) = 0;
90 virtual void OnRequestReceived(const IEventFindProvidersPtr &event) = 0;
92 virtual void OnRequestReceived(const IEventFindServiceTypesPtr &event) = 0;
96 typedef DPL::SharedPtr<IAccountManager> IAccountManagerPtr;
102 #endif /* _ABSTRACT_LAYER_IACCOUNT_MANAGER_H_ */