Fix the boiler plate codes
[framework/osp/social.git] / src / FScl_AccountProviderImpl.h
1 //
2 // Copyright (c) 2013 Samsung Electronics Co., Ltd.
3 //
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
7 //
8 //     http://www.apache.org/licenses/LICENSE-2.0
9 //
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.
15 //
16 /**
17  * @file        FScl_AccountProviderImpl.h
18  * @brief       This is the header file for the %_AccountProviderImpl class.
19  *
20  * This header file contains the declarations of the %_AccountProviderImpl class.
21  */
22 #ifndef _FSCL_INTERNAL_ACCOUNT_PROVIDER_IMPL_H_
23 #define _FSCL_INTERNAL_ACCOUNT_PROVIDER_IMPL_H_
24
25 #include <unique_ptr.h>
26 #include <FAppTypes.h>
27 #include <FBaseColAllElementsDeleter.h>
28 #include <FBaseColArrayList.h>
29 #include <FBaseObject.h>
30 #include <FBaseString.h>
31 #include <FSclTypes.h>
32
33 namespace Tizen { namespace Base
34 {
35 namespace Collection
36 {
37 class IList;
38 }
39 }}
40
41 namespace Tizen { namespace Social
42 {
43
44 class AccountProvider;
45
46 class _AccountProviderImpl
47         : public Tizen::Base::Object
48 {
49 public:
50         _AccountProviderImpl(void);
51
52         _AccountProviderImpl(const _AccountProviderImpl& rhs);
53
54         virtual ~_AccountProviderImpl(void);
55
56         virtual bool Equals(const Tizen::Base::Object& rhs) const;
57
58         virtual int GetHashCode(void) const;
59
60         result AddCapability(const Tizen::Base::String& capability);
61
62         Tizen::App::AppId GetAppId(void) const;
63
64         Tizen::Base::Collection::IList* GetCapabilitiesN(void) const;
65
66         Tizen::Base::String GetDisplayName(void) const;
67
68         Tizen::Base::String GetIconPath(void) const;
69
70         Tizen::Base::String GetSmallIconPath(void) const;
71
72         bool IsMultipleAccountSupported(void) const;
73
74         void SetAppId(const Tizen::App::AppId& appId);
75
76         void SetDisplayName(const Tizen::Base::String& displayName);
77
78         void SetIconPath(const Tizen::Base::String& iconPath);
79
80         void SetSmallIconPath(const Tizen::Base::String& smallIconPath);
81
82         void SetMultipleAccountsSupport(bool isSupported);
83
84         _AccountProviderImpl& operator =(const _AccountProviderImpl& rhs);
85
86         bool operator ==(const _AccountProviderImpl& rhs) const;
87
88         bool operator !=(const _AccountProviderImpl& rhs) const;
89
90         static const _AccountProviderImpl* GetInstance(const AccountProvider& accountProvider);
91
92         static _AccountProviderImpl* GetInstance(AccountProvider& accountProvider);
93
94 private:
95         Tizen::App::AppId __appId;
96         std::unique_ptr<Tizen::Base::Collection::ArrayList, Tizen::Base::Collection::AllElementsDeleter> __pCapabilityList;
97         Tizen::Base::String __displayName;
98         Tizen::Base::String __iconPath;
99         Tizen::Base::String __smallIconPath;
100         bool __isMultipleAccountSupported;
101
102 }; // _AccountProviderImpl
103
104 }} // Tizen::Social
105
106 #endif //_FSCL_INTERNAL_ACCOUNT_PROVIDER_IMPL_H_