99e4f76e686953a5369d3318c05f6e6bb693e2e7
[profile/ivi/wrt-plugins-tizen.git] / src / platform / Tizen / Call / CallHistoryFilter.h
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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 #ifndef TIZENAPIS_PLATFORM_CALLHISTORY_FILTER_H_
19 #define TIZENAPIS_PLATFORM_CALLHISTORY_FILTER_H_
20
21 #include <string>
22 #include <dpl/shared_ptr.h>
23 #include "time.h"
24
25 #include <API/Filter/IFilterVisitor.h>
26 #include <API/Call/CallHistoryEntryProperties.h>
27
28 namespace TizenApis {
29 namespace Platform {
30 namespace Call {
31 class CallHistoryFilter: public Api::Tizen::IFilterVisitor
32 {
33 private:
34         std::string m_query;
35 public:
36         CallHistoryFilter();
37         ~CallHistoryFilter();
38
39         void visitPreComposite(Api::Tizen::FilterType& type, int depth);
40
41         void visitInComposite(Api::Tizen::FilterType& type, int depth);
42
43         void visitPostComposite(Api::Tizen::FilterType& type, int depth);
44
45         void visitAttribute(std::string& attrName,
46                         Api::Tizen::AnyArrayPtr& values,
47                         std::string& matchFlag,
48                         bool caseSensitive,
49                         int depth);
50
51         void visitAttributeRange(std::string& attrName,
52                         Api::Tizen::AnyPtr& initialValue,
53                         Api::Tizen::AnyPtr& endValue,
54                         int depth);
55
56         void init();
57         std::string getResult() const;
58         std::string convertAttributeArray(std::string &name, Api::Tizen::AnyArrayPtr& values);
59         std::string convertAttribute(std::string &name, Api::Tizen::AnyPtr& value);
60 };
61
62 typedef DPL::SharedPtr<CallHistoryFilter> CallHistoryFilterPtr;
63
64 }
65 }
66 }
67 #endif