2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
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.
18 * @brief This is the header file for the %Record class.
20 * This header file contains the declarations of the %Record class.
23 #ifndef _FSCL_RECORD_H_
24 #define _FSCL_RECORD_H_
26 #include <FBaseObject.h>
27 #include <FBaseColIList.h>
28 #include <FSclTypes.h>
30 namespace Tizen { namespace Social
36 * Defines the possible types of a record.
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 */
51 * @brief This class defines the general behavior of records used in the %Social namespace.
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.
58 class _OSP_EXPORT_ Record
59 : public Tizen::Base::Object
63 * Gets the type of the record.
67 * @return The type of the record
69 RecordType GetRecordType(void) const;
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.
78 * @return The ID of the record
80 RecordId GetRecordId(void) const;
84 // This method is for internal use only. Using this method can cause behavioral, security-related,
85 // and consistency-related issues in the application.
87 // Initializes this instance of %Record with the specified @c type.
91 // @param[in] type The record type
93 Record(RecordType type);
96 // This copy constructor is intentionally declared as private to prohibit copying of objects by users.
100 // @param[in] rhs The source instance of %Record
102 Record(const Record& rhs);
105 // This destructor is intentionally declared as private so that only the platform can delete an instance.
109 virtual ~Record(void);
112 // This copy assignment operator is intentionally declared as private to prohibit copying of objects by users.
116 // @param[in] rhs An instance of %Record
118 Record& operator =(const Record& rhs);
121 friend class _RecordImpl;
122 class _RecordImpl* __pRecordImpl;
128 #endif // _FSCL_RECORD_H_