Change event sync to async
[platform/framework/native/appfw.git] / src / io / inc / FIo_DataSetEnumeratorImpl.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 /**
18  * @file        FIo_DataSetEnumeratorImpl.h
19  * @brief       This is the header file for the %_DataSetEnumeratorImpl class.
20  *
21  * This header file contains declarations of the %_DataSetEnumeratorImpl class.
22  */
23
24 #ifndef _FIO_INTERNAL_DATASETENUMERATOR_IMPL_H_
25 #define _FIO_INTERNAL_DATASETENUMERATOR_IMPL_H_
26
27 #include <FBaseObject.h>
28 #include <FBaseString.h>
29 #include <FBaseByteBuffer.h>
30 #include <FBaseDateTime.h>
31 #include <FBaseColLinkedList.h>
32 #include <FIoDataSetEnumerator.h>
33
34 namespace Tizen { namespace Base
35 {
36 class String;
37 class ByteBuffer;
38 class DateTime;
39 }}
40
41 namespace Tizen { namespace Io
42 {
43
44 class _DataSetRow;
45
46 /**
47  * @class   _DataSetEnumeratorImpl
48  * @brief       This class implements the DataSetEnumerator.
49  * @since 2.1
50  *
51  * @see Tizen::Io::DataSetEnumerator
52  */
53 class _DataSetEnumeratorImpl
54         : public Tizen::Base::Object
55 {
56
57 public:
58         /**
59         * This is the default constructor for this class.
60         */
61         _DataSetEnumeratorImpl(void);
62
63         /**
64         * This is the default destructor for this class.
65         */
66         virtual ~_DataSetEnumeratorImpl(void);
67
68         /**
69         * @see          DataSetEnumerator::MoveNext()
70         */
71         result MoveNext(void);
72
73         /**
74         * @see          DataSetEnumerator::MovePrevious()
75         */
76         result MovePrevious(void);
77
78         /**
79         * @see          DataSetEnumerator::MoveFirst()
80         */
81         result MoveFirst(void);
82
83         /**
84         * @see          DataSetEnumerator::MoveLast()
85         */
86         result MoveLast(void);
87
88         /**
89         * @see          DataSetEnumerator::Reset()
90         */
91         result Reset(void);
92
93         /**
94         * @see          DataSetEnumerator::GetIntAt()
95         */
96         result GetIntAt(int columnIndex, int& value) const;
97
98         /**
99         * @see          DataSetEnumerator::GetInt64At()
100         */
101         result GetInt64At(int columnIndex, long long& value) const;
102
103         /**
104         * @see          DataSetEnumerator::GetDoubleAt()
105         */
106         result GetDoubleAt(int columnIndex, double& value) const;
107
108         /**
109         * @see          DataSetEnumerator::GetStringAt()
110         */
111         result GetStringAt(int columnIndex, Tizen::Base::String& value) const;
112
113         /**
114         * @see          DataSetEnumerator::GetBlobAt()
115         */
116         result GetBlobAt(int columnIndex, Tizen::Base::ByteBuffer& value) const;
117
118         /**
119         * @see          DataSetEnumerator::GetBlobAt()
120         */
121         result GetBlobAt(int columnIndex, void* buffer, int size) const;
122
123         /**
124         * @see          DataSetEnumerator::GetDateTimeAt()
125         */
126         result GetDateTimeAt(int columnIndex, Tizen::Base::DateTime& value) const;
127
128         /**
129         * @see          DataSetEnumerator::GetColumnCount()
130         */
131         int GetColumnCount(void) const;
132
133         /**
134         * @see          DataSetEnumerator::GetColumnType()
135         */
136         DbColumnType GetColumnType(int columnIndex) const;
137
138         /**
139         * @see          DataSetEnumerator::GetColumnName()
140         */
141         Tizen::Base::String GetColumnName(int columnIndex) const;
142
143         /**
144         * @see          DataSetEnumerator::GetColumnSize()
145         */
146         int GetColumnSize(int columnIndex) const;
147
148         static _DataSetEnumeratorImpl* GetInstance(DataSetEnumerator& dataSetEnumerator);
149
150         static const _DataSetEnumeratorImpl* GetInstance(const DataSetEnumerator& dataSetEnumerator);
151
152         static DataSetEnumerator* CreateDataSetEnumeratorInstanceN(void);
153
154 private:
155         _DataSetEnumeratorImpl(_DataSetEnumeratorImpl& dataSetEnumeratorImpl);
156
157         _DataSetEnumeratorImpl& operator =(const _DataSetEnumeratorImpl& dataSetEnumeratorImpl);
158
159         Tizen::Base::Collection::LinkedList* __pDataSet;
160         Tizen::Base::Collection::ArrayList* __pColumnList;
161         Tizen::Base::Collection::ArrayList* __pCurrentRow;
162
163         int __columnCount;
164         int __rowCount;
165         int __currentRowIndex;
166
167         bool __dataSetDeleted;
168         Tizen::Base::Collection::LinkedList* __pEnumImplList;
169
170         friend class _DataSetImpl;
171
172 }; // _DataSetEnumeratorImpl
173
174 }} // Tizen::Io
175
176 #endif  //_FIO_INTERNAL_DATASETENUMERATOR_IMPL_H_
177