RDK Documentation (Open Sourced RDK Components)
Filter.h
1 /*
2  * If not stated otherwise in this file or this component's Licenses.txt file the
3  * following copyright and licenses apply:
4  *
5  * Copyright 2016 RDK Management
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18 */
19 
20 
21 /**
22 * @defgroup trm
23 * @{
24 * @defgroup qtapp
25 * @{
26 **/
27 
28 
29 #ifndef _TRM_RESERVATION_FILTER_H
30 #define _TRM_RESERVATION_FILTER_H
31 
32 #include <list>
33 #include <string>
34 
35 #include "trm/TRM.h"
36 #include "trm/TunerState.h"
37 #include "trm/TunerReservation.h"
38 #include "Tuner.h"
39 
40 LOCAL_BEGIN_NAMESPACE
41 enum {
42  ByNone,
43  ByTunerId,
44  ByTunerState,
45  ByTunerLocator,
46  ByReservationLocator,
47 
48  ByStartAfter,
49  ByTunerEndBefore,
50  ByReservationEndBefore,
51  ByReservationState,
52 
53  ByActivity,
54  ByToken,
55 
56  ByDevice,
57  ByInConflict,
58 };
59 
60 LOCAL_END_NAMESPACE
61 
62 TRM_BEGIN_NAMESPACE
63 
64 extern Tuner::IdList & Filter_ByTunerId(const std::string &tunerId, Tuner::IdList &tuners);
65 extern Tuner::IdList & Filter_ByTunerState(const Enum<TunerState> &state, Tuner::IdList &tuners);
66 extern Tuner::IdList & Filter_ByTunerLocator(const std::string &serviceLocator, Tuner::IdList &tuners);
67 extern Tuner::IdList & Filter_ByTunerEndBefore(const uint64_t &endTime, Tuner::IdList &tuners, const Activity &activity);
68 
69 extern TunerReservation::TokenList & Filter_ByActivity(const Enum<Activity> &activity, TunerReservation::TokenList &reservations);
70 extern TunerReservation::TokenList & Filter_ByStartAfter(const uint64_t &startTime, TunerReservation::TokenList &reservations);
71 extern TunerReservation::TokenList & Filter_ReservationByToken(const std::string &token, TunerReservation::TokenList &reservations);
72 extern TunerReservation::TokenList & Filter_ReservationByDevice(const std::string &device, TunerReservation::TokenList &reservations);
73 extern TunerReservation::TokenList & Filter_ReservationByAttribute(const bool &inConflict, TunerReservation::TokenList &reservations);
74 extern TunerReservation::TokenList & Filter_ByReservationLocator(const std::string &serviceLocator, TunerReservation::TokenList &reservations);
75 extern TunerReservation::TokenList & Filter_ByReservationEndBefore(const uint64_t &endTime, TunerReservation::TokenList &reservations);
76 extern TunerReservation::TokenList & Filter_ByReservationState(int state, TunerReservation::TokenList &reservations);
77 
78 template<int i, typename T1, class T2>
79 T2 & Filter(const T1 &, T2 &t2) {
80  Assert(0);
81  return t2;
82 }
83 
84 template<>
85 Tuner::IdList & Filter<ByTunerId>(const std::string &tunerId, Tuner::IdList &tuners);
86 template<>
87 Tuner::IdList & Filter<ByTunerState>(const Enum<TunerState> &state, Tuner::IdList &tuners);
88 template<>
89 Tuner::IdList & Filter<ByTunerLocator>(const std::string &serviceLocator, Tuner::IdList &tuners);
90 template<>
91 Tuner::IdList & Filter<ByTunerEndBefore>(const uint64_t &endTime, Tuner::IdList &tuners);
92 
93 template<>
94 TunerReservation::TokenList & Filter<ByActivity>(const Enum<Activity> &activity, TunerReservation::TokenList &reservations);
95 template<>
96 TunerReservation::TokenList & Filter<ByStartAfter>(const uint64_t &startTime, TunerReservation::TokenList &reservations);
97 template<>
98 TunerReservation::TokenList & Filter<ByReservationEndBefore>(const uint64_t &endTime, TunerReservation::TokenList &reservations);
99 template<>
100 TunerReservation::TokenList & Filter<ByToken>(const std::string &token, TunerReservation::TokenList &reservations);
101 template<>
102 TunerReservation::TokenList & Filter<ByDevice>(const std::string &device, TunerReservation::TokenList &reservations);
103 template<>
104 TunerReservation::TokenList & Filter<ByInConflict>(const bool &inConflict, TunerReservation::TokenList &reservations);
105 template<>
106 TunerReservation::TokenList & Filter<ByReservationLocator>(const std::string &serviceLocator, TunerReservation::TokenList &reservations);
107 template<>
108 TunerReservation::TokenList & Filter<ByReservationState>(const int &state, TunerReservation::TokenList &reservations);
109 
110 TRM_END_NAMESPACE
111 
112 #endif
113 
114 
115 /** @} */
116 /** @} */