1 /*
2 * Copyright (c) 2023 Shenzhen Kaihong Digital Industry Development 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 #include <iostream>
17 #include <unistd.h>
18 #include "common/sharing_log.h"
19 #include "config.h"
20
21 using namespace OHOS::Sharing;
22
main()23 int main()
24 {
25 Config::GetInstance().Init();
26 sleep(1);
27 // SharingConfigureSetConfigTest_001
28 SHARING_LOGD("this is sharing_configure_demo!");
29 while (1) {
30 std::string inputCmd;
31 getline(std::cin, inputCmd);
32 if (inputCmd == "0") {
33 SharingValue::Ptr values = nullptr;
34 auto ret = Config::GetInstance().GetConfig("mediachannel", "rtmpport", "maxrecvport", values);
35 values->Print();
36 SharingValue::Ptr valueS = std::make_shared<SharingValue>(8888);
37 ret = Config::GetInstance().SetConfig("mediachannel", "rtmpport", "maxrecvport", valueS);
38 valueS->Print();
39 sleep(1);
40 } else if (inputCmd == "1") {
41 SharingDataGroupByModule::Ptr values = nullptr;
42 auto ret = Config::GetInstance().GetConfig("cfg", values);
43 std::string data = std::string("test");
44 SharingValue::Ptr valueS = std::make_shared<SharingValue>(data);
45 valueS->Print();
46 values->PutSharingValue("rtpport111", "minrecv", valueS);
47 ret = Config::GetInstance().SetConfig("cfg", values);
48 sleep(1);
49 }
50 // SharingConfigureSetConfigTest_002
51 else if (inputCmd == "2") {
52 SharingData::Ptr datas = nullptr;
53 auto ret = Config::GetInstance().GetConfig(datas);
54 ret = Config::GetInstance().SetConfig(datas);
55 sleep(1);
56 } else if (inputCmd == "3") {
57 SharingDataGroupByModule::Ptr values = nullptr;
58 auto ret = Config::GetInstance().GetConfig("mediachannel", values);
59 values->Print();
60 ret = Config::GetInstance().SetConfig("mediachannel", values);
61 sleep(1);
62 } else if (inputCmd == "4") {
63 SharingDataGroupByTag::Ptr values = nullptr;
64 auto ret = Config::GetInstance().GetConfig("mediachannel", "rtmpport", values);
65 values->Print();
66 ret = Config::GetInstance().SetConfig("mediachannel", "rtmpport", values);
67 sleep(1);
68 } else if (inputCmd == "5") {
69 SharingDataGroupByTag::Ptr values = nullptr;
70 auto ret = Config::GetInstance().GetConfig("mediachannel", "rtmpport", values);
71 values->Print();
72 SharingValue::Ptr valueS = std::make_shared<SharingValue>(8080);
73 valueS->Print();
74 values->PutSharingValue("tomcat", valueS);
75
76 std::unordered_map<std::string, SharingValue::Ptr> datas;
77 {
78 SharingValue::Ptr valueS1 = std::make_shared<SharingValue>(8080);
79 datas.emplace(std::make_pair("http", valueS1));
80 SharingValue::Ptr valueS2 = std::make_shared<SharingValue>(443);
81 datas.emplace(std::make_pair("ssl", valueS2));
82 values->PutSharingValues(datas);
83 }
84 bool bret1 = values->HasKey("http");
85 bool bret2 = values->IsTag("rtmpport");
86 bool bret3 = values->HasKey("http1");
87 bool bret4 = values->IsTag("rtmpport2");
88 SharingValue::Ptr value1 = values->GetSharingValue("http");
89 value1->Print();
90 std::unordered_map<std::string, SharingValue::Ptr> values1;
91 values->GetSharingValues(values1);
92 SHARING_LOGD("hasKey: %{public}d,IsTag: %{public}d,HasKey: %{public}d,IsTag: %{public}d,size: %{public}d!",
93 bret1, bret2, bret3, bret4, values1.size());
94
95 ret = Config::GetInstance().SetConfig("mediachannel", "rtmpport", values);
96 sleep(1);
97 } else if (inputCmd == "6") {
98 SharingDataGroupByModule::Ptr values = nullptr;
99 auto ret = Config::GetInstance().GetConfig("mediachannel", values);
100 values->Print();
101 SharingValue::Ptr valueS = std::make_shared<SharingValue>(8080);
102 valueS->Print();
103 values->PutSharingValue("apache", "tomcat", valueS);
104
105 std::unordered_map<std::string, SharingValue::Ptr> datas;
106 {
107 SharingValue::Ptr valueS1 = std::make_shared<SharingValue>(80);
108 datas.emplace(std::make_pair("http", valueS1));
109 SharingValue::Ptr valueS2 = std::make_shared<SharingValue>(443);
110 datas.emplace(std::make_pair("ssl", valueS2));
111 values->PutSharingValues("apache", datas);
112 }
113 SharingValue::Ptr value1 = values->GetSharingValue("apache", "http");
114 value1->Print();
115 std::unordered_map<std::string, SharingValue::Ptr> values1;
116 values->GetSharingValues("apache", values1);
117 SharingDataGroupByTag::Ptr value3 = nullptr;
118 values->GetSharingValues("apache", value3);
119 value3->Print();
120 {
121 SharingValue::Ptr valueS = std::make_shared<SharingValue>(3306);
122 valueS->Print();
123 value3->PutSharingValue("mysql", valueS);
124 value3->Print();
125 }
126 values->PutSharingValues("apache", value3);
127 values->Print();
128
129 bool bret1 = values->HasKey("", "http");
130 bool bret2 = values->HasTag("rtmpport");
131 bool bret3 = values->HasKey("", "http1");
132 bool bret4 = values->HasTag("rtmpport2");
133 bool bret5 = values->IsModule("mediachannel");
134 bool bret6 = values->IsModule("mediachannel2");
135 SHARING_LOGD(
136 "HasKey: %{public}d,HasTag: %{public}d,HasKey: %{public}d,HasTag: %{public}d,IsModule: %{public}d,IsModule="
137 "%{public}d,size: %{public}d.",
138 bret1, bret2, bret3, bret4, bret5, bret6, values1.size());
139 ret = Config::GetInstance().SetConfig("mediachannel", values);
140 sleep(1);
141 } else if (inputCmd == "7") {
142 SharingData::Ptr datas = nullptr;
143 auto ret = Config::GetInstance().GetConfig(datas);
144 datas->Print();
145
146 std::string anyValue = std::string("007");
147 SharingValue::Ptr valueS = std::make_shared<SharingValue>(anyValue);
148 datas->PutSharingValue("id", valueS, "context", "newtag");
149 datas->Print();
150
151 {
152 SharingValue::Ptr valueS = std::make_shared<SharingValue>(800);
153 valueS->Print();
154 datas->PutSharingValue("age", valueS, "context", "newtag");
155 datas->Print();
156 }
157 {
158 SharingValue::Ptr valueS = std::make_shared<SharingValue>(1);
159 valueS->Print();
160 datas->PutSharingValue("female", valueS, "context", "newtag");
161 datas->Print();
162 }
163 {
164 SharingValue::Ptr valueS = std::make_shared<SharingValue>(1);
165 valueS->Print();
166 datas->PutSharingValue("class", valueS, "context", "newtag");
167 datas->Print();
168 }
169
170 {
171 std::unordered_map<std::string, SharingValue::Ptr> mapdata;
172 SharingValue::Ptr valueS1 = std::make_shared<SharingValue>(80);
173 mapdata.emplace(std::make_pair("http", valueS1));
174 SharingValue::Ptr valueS2 = std::make_shared<SharingValue>(443);
175 mapdata.emplace(std::make_pair("ssl", valueS2));
176 datas->PutSharingValues(mapdata, "tomcat", "web");
177 SHARING_LOGD("mapdata size: %{public}d,", mapdata.size());
178 }
179
180 {
181 SharingValue::Ptr value = nullptr;
182 value = datas->GetSharingValue("ssl", "tomcat", "web");
183 value->Print();
184 }
185 {
186 SharingDataGroupByModule::Ptr values = nullptr;
187 datas->GetSharingValues(values, "tomcat");
188 values->Print();
189 }
190 {
191 SharingDataGroupByTag::Ptr values = nullptr;
192 datas->GetSharingValues(values, "tomcat", "web");
193 values->Print();
194 }
195 {
196 std::unordered_map<std::string, SharingValue::Ptr> mapdata;
197 datas->GetSharingValues(mapdata, "tomcat", "web");
198 SHARING_LOGD("mapdata size: %{public}d,", mapdata.size());
199 }
200
201 bool bret1 = datas->HasKey("http");
202 bool bret2 = datas->HasTag("rtmpport");
203 bool bret3 = datas->HasKey("http1");
204 bool bret4 = datas->HasTag("rtmpport2");
205 bool bret5 = datas->HasModule("mediachannel");
206 bool bret6 = datas->HasModule("mediachannel2");
207 SHARING_LOGD(
208 "hasKey: %{public}d,HasTag: %{public}d,HasKey: %{public}d,HasTag: %{public}d,HasModule: %{public}d,"
209 "HasModule="
210 "%{public}d.",
211 bret1, bret2, bret3, bret4, bret5, bret6);
212
213 ret = Config::GetInstance().SetConfig(datas);
214 sleep(1);
215 }
216 }
217
218 sleep(3);
219
220 return 0;
221 }