Merge "Add the exception handling when using manual cert mode" into tizen_2.1
[platform/framework/native/net.git] / src / FNet_IpHostEntryImpl.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 /**
18  * @file                FNet_IpHostEntryImpl.h
19  * @brief               This is the header file for the _IpHostEntryImpl class.
20  */
21
22 #ifndef _FNET_INTERNAL_IP_HOST_ENTRY_IMPL_H_
23 #define _FNET_INTERNAL_IP_HOST_ENTRY_IMPL_H_
24
25 #include <FBaseDataType.h>
26 #include <FBaseObject.h>
27 #include "FNet_NetUtility.h"
28
29 namespace Tizen { namespace Base { namespace Collection
30 {
31 class IList;
32 } } } // Tizen::Base::Collection
33
34 namespace Tizen { namespace Net
35 {
36
37 class _IpHostEntryImpl
38         : public Tizen::Base::Object
39 {
40
41 public:
42         /**
43          * This is the destructor for this class.
44          *
45          * @since 2.1
46          */
47         virtual ~_IpHostEntryImpl(void);
48
49 public:
50         /**
51          * @see                 _IpHostEntryImpl::GetAddressList()
52          */
53         Tizen::Base::Collection::IList* GetAddressList(void) const;
54
55         /**
56          * @see                 _IpHostEntryImpl::GetAliasList()
57          */
58         Tizen::Base::Collection::IList* GetAliasList(void) const;
59
60 public:
61         /*
62          * Factory Method to create IpHostEntry instance
63          *
64          * @since 2.1
65          * @return                      Instance of IpHostEntry
66          */
67         static IpHostEntry* CreateIpHostEntryN(void);
68
69 public:
70     /**
71      * Gets the Impl instance.
72      *
73      * @since 2.1
74      * @return              The pointer to _IpHostEntryImpl
75      * @param[in]   ipHostEntry            An instance of IpHostEntry
76      */
77         static _IpHostEntryImpl* GetInstance(IpHostEntry& ipHostEntry);
78
79     /**
80      * Gets the Impl instance.
81      *
82      * @since 2.1
83      * @return              The pointer to  _IpHostEntryImpl
84      * @param[in]   ipHostEntry     An instance of IpHostEntry
85      */
86         static const _IpHostEntryImpl* GetInstance(const IpHostEntry& ipHostEntry);
87
88 private:
89         /*
90          * This is the constructor for this class. @n
91          * Do @b not use directly.
92          *
93          */
94         _IpHostEntryImpl(void);
95
96 private:
97         result SetAddressList(const Tizen::Base::Collection::IList& addressList);
98
99         result SetAliasList(const Tizen::Base::Collection::IList& aliasList);
100
101 private:
102         /*
103          * This is the copy constructor for this class. @n
104          * Do @b not use directly.
105          *
106          * @param[in]   rhs                     An instance of IpHostEntry
107          */
108         _IpHostEntryImpl(const _IpHostEntryImpl& rhs);
109
110         /*
111          * This is the assignment operator. Do @b not use directly.
112          *
113          * @param[in]   rhs                             An instance of IpHostEntry
114          */
115         _IpHostEntryImpl& operator =(const _IpHostEntryImpl& rhs);
116
117 private:
118         std::unique_ptr<Tizen::Base::Collection::IList, _CollectionDeleter> __pAddressList;
119         std::unique_ptr<Tizen::Base::Collection::IList, _CollectionDeleter> __pAliasList;
120
121         friend class _DnsRequestHandler;
122         friend class IpHostEntry;
123
124 }; // _IpHostEntryImpl
125
126 }  }  //Tizen::Net
127
128 #endif // _FNET_INTERNAL_IP_HOST_ENTRY_IMPL_H_