• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef OHOS_WIFI_WIFI_FILTER_H
17 #define OHOS_WIFI_WIFI_FILTER_H
18 #include "network_selection.h"
19 
20 namespace OHOS::Wifi::NetworkSelection {
21 class HiddenWifiFilter final : public SimpleWifiFilter {
22 public:
23     HiddenWifiFilter();
24     ~HiddenWifiFilter() override;
25 protected:
26     bool Filter(NetworkCandidate &networkCandidate) override;
27 };
28 
29 class NotCurrentNetworkFilter final : public SimpleWifiFilter {
30 public:
31     NotCurrentNetworkFilter();
32     ~NotCurrentNetworkFilter() override;
33 protected:
34     bool Filter(NetworkCandidate &networkCandidate) override;
35 };
36 
37 class ValidNetworkIdFilter final : public SimpleWifiFilter {
38 public:
39     ValidNetworkIdFilter();
40     ~ValidNetworkIdFilter() override;
41 protected:
42     bool Filter(NetworkCandidate &networkCandidate) override;
43 };
44 
45 class SignalLevelFilter final : public SimpleWifiFilter {
46 public:
47     SignalLevelFilter();
48     ~SignalLevelFilter() override;
49 protected:
50     bool Filter(NetworkCandidate &networkCandidate) override;
51 };
52 
53 class NotNetworkBlackListFilter final : public SimpleWifiFilter {
54 public:
55     NotNetworkBlackListFilter();
56     ~NotNetworkBlackListFilter() override;
57 protected:
58     bool Filter(NetworkCandidate &networkCandidate) override;
59 };
60 
61 class NotP2pFreqAt5gFilter final : public SimpleWifiFilter {
62 public:
63     NotP2pFreqAt5gFilter();
64     ~NotP2pFreqAt5gFilter() override;
65 protected:
66     bool Filter(NetworkCandidate &networkCandidate) override;
67 };
68 
69 class ValidConfigNetworkFilter final : public SimpleWifiFilter {
70 public:
71     ValidConfigNetworkFilter();
72     ~ValidConfigNetworkFilter() override;
73 protected:
74     bool Filter(NetworkCandidate &networkCandidate) override;
75 };
76 
77 class WifiSwitchThresholdFilter final : public SimpleWifiFilter {
78 public:
79     WifiSwitchThresholdFilter();
80     ~WifiSwitchThresholdFilter() override;
81 protected:
82     bool Filter(NetworkCandidate &networkCandidate) override;
83 };
84 
85 class SignalStrengthWifiFilter final : public SimpleWifiFilter {
86 public:
87     SignalStrengthWifiFilter();
88     ~SignalStrengthWifiFilter() override;
89 protected:
90     bool Filter(NetworkCandidate &networkCandidate) override;
91 };
92 
93 class SavedWifiFilter final : public SimpleWifiFilter {
94 public:
95     SavedWifiFilter();
96     ~SavedWifiFilter() override;
97 protected:
98     bool Filter(NetworkCandidate &networkCandidate) override;
99 };
100 
101 
102 class EphemeralWifiFilter final : public SimpleWifiFilter {
103 public:
104     EphemeralWifiFilter();
105     ~EphemeralWifiFilter() override;
106 protected:
107     bool Filter(NetworkCandidate &networkCandidate) override;
108 };
109 
110 class PassPointWifiFilter final : public SimpleWifiFilter {
111 public:
112     PassPointWifiFilter();
113     ~PassPointWifiFilter() override;
114 protected:
115     bool Filter(NetworkCandidate &networkCandidate) override;
116 };
117 
118 class DisableWifiFilter final : public SimpleWifiFilter {
119 public:
120     DisableWifiFilter();
121     ~DisableWifiFilter() override;
122 protected:
123     bool Filter(NetworkCandidate &networkCandidate) override;
124 };
125 
126 class MatchedUserSelectBssidWifiFilter final : public SimpleWifiFilter {
127 public:
128     MatchedUserSelectBssidWifiFilter();
129     ~MatchedUserSelectBssidWifiFilter() override;
130 protected:
131     bool Filter(NetworkCandidate &networkCandidate) override;
132 };
133 
134 class HasInternetWifiFilter final : public SimpleWifiFilter {
135 public:
136     HasInternetWifiFilter();
137     ~HasInternetWifiFilter() override;
138 protected:
139     bool Filter(NetworkCandidate &networkCandidate) override;
140 };
141 
142 class RecoveryWifiFilter final : public SimpleWifiFilter {
143 public:
144     RecoveryWifiFilter();
145     ~RecoveryWifiFilter() override;
146 protected:
147     bool Filter(NetworkCandidate &networkCandidate) override;
148 };
149 
150 class PoorPortalWifiFilter final : public SimpleWifiFilter {
151 public:
152     PoorPortalWifiFilter();
153     ~PoorPortalWifiFilter() override;
154 protected:
155     bool Filter(NetworkCandidate &networkCandidate) override;
156 };
157 
158 class PortalWifiFilter final : public SimpleWifiFilter {
159 public:
160     PortalWifiFilter();
161     ~PortalWifiFilter() override;
162 protected:
163     bool Filter(NetworkCandidate &networkCandidate) override;
164 };
165 
166 class MaybePortalWifiFilter final : public SimpleWifiFilter {
167 public:
168     MaybePortalWifiFilter();
169     ~MaybePortalWifiFilter() override;
170 protected:
171     bool Filter(NetworkCandidate &networkCandidate) override;
172 };
173 
174 class NoInternetWifiFilter final : public SimpleWifiFilter {
175 public:
176     NoInternetWifiFilter();
177     ~NoInternetWifiFilter() override;
178 protected:
179     bool Filter(NetworkCandidate &networkCandidate) override;
180 };
181 
182 
183 class WeakAlgorithmWifiFilter final : public SimpleWifiFilter {
184 public:
185     WeakAlgorithmWifiFilter();
186     ~WeakAlgorithmWifiFilter() override;
187 protected:
188     bool Filter(NetworkCandidate &networkCandidate) override;
189 };
190 }
191 #endif //OHOS_WIFI_WIFI_FILTER_H
192