Update the doxygen about removing and updating an account
[platform/framework/native/social.git] / inc / FSclRecord.h
1 //
2 // Copyright (c) 2012 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        FSclRecord.h
18  * @brief       This is the header file for the %Record class.
19  *
20  * This header file contains the declarations of the %Record class.
21  */
22
23 #ifndef _FSCL_RECORD_H_
24 #define _FSCL_RECORD_H_
25
26 #include <FBaseObject.h>
27 #include <FBaseColIList.h>
28 #include <FSclTypes.h>
29
30 namespace Tizen { namespace Social
31 {
32
33 /**
34  * @enum RecordType
35  *
36  * Defines the possible types of a record.
37  *
38  * @since       2.0
39  */
40 enum RecordType
41 {
42         RECORD_TYPE_CONTACT = 0x01,             /**< The contact type */
43         RECORD_TYPE_CATEGORY = 0x02,    /**< The category type */
44         RECORD_TYPE_EVENT = 0x04,               /**< The event type */
45         RECORD_TYPE_TODO = 0x08,                /**< The to-do type */
46         RECORD_TYPE_CALENDAR = 0x10             /**< The calendar type */
47 };
48
49 /**
50  * @class       Record
51  * @brief       This class defines the general behavior of records used in the %Social namespace.
52  *
53  * @since       2.0
54  *
55  * The %Record class defines the general behavior of records used in the Social namespace. Users cannot create an instance directly from this
56  * class. Instead, they have to instantiate the classes derived from %Record.
57  */
58 class _OSP_EXPORT_ Record
59         : public Tizen::Base::Object
60 {
61 public:
62         /**
63          * Gets the type of the record.
64          *
65          * @since       2.0
66          *
67          * @return      The type of the record
68          */
69         RecordType GetRecordType(void) const;
70
71         /**
72          * Gets the local-wide unique ID of the current instance of %Record. @n
73          * The @c RecordId is assigned by an address book when a record is added to it. @n
74          * A newly constructed record instance has ::INVALID_RECORD_ID.
75          *
76          * @since       2.0
77          *
78          * @return      The ID of the record
79          */
80         RecordId GetRecordId(void) const;
81
82 protected:
83         //
84         // This method is for internal use only. Using this method can cause behavioral, security-related,
85         // and consistency-related issues in the application.
86         //
87         // Initializes this instance of %Record with the specified @c type.
88         //
89         // @since       2.0
90         //
91         // @param[in]   type    The record type
92         //
93         Record(RecordType type);
94
95         //
96         // This copy constructor is intentionally declared as private to prohibit copying of objects by users.
97         //
98         // @since       2.0
99         //
100         // @param[in]   rhs             The source instance of %Record
101         //
102         Record(const Record& rhs);
103
104         //
105         // This destructor is intentionally declared as private so that only the platform can delete an instance.
106         //
107         // @since       2.0
108         //
109         virtual ~Record(void);
110
111         //
112         // This copy assignment operator is intentionally declared as private to prohibit copying of objects by users.
113         //
114         // @since       2.0
115         //
116         // @param[in]   rhs             An instance of %Record
117         //
118         Record& operator =(const Record& rhs);
119
120 private:
121         friend class _RecordImpl;
122         class _RecordImpl* __pRecordImpl;
123
124 }; // Record
125
126 }} // Tizen::Social
127
128 #endif // _FSCL_RECORD_H_