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 == "3") {
52 SharingDataGroupByModule::Ptr values = nullptr;
53 auto ret = Config::GetInstance().GetConfig("mediachannel", values);
54 values->Print();
55 ret = Config::GetInstance().SetConfig("mediachannel", values);
56 sleep(1);
57 } else if (inputCmd == "4") {
58 SharingDataGroupByTag::Ptr values = nullptr;
59 auto ret = Config::GetInstance().GetConfig("mediachannel", "rtmpport", values);
60 values->Print();
61 ret = Config::GetInstance().SetConfig("mediachannel", "rtmpport", values);
62 sleep(1);
63 } else if (inputCmd == "5") {
64 SharingDataGroupByTag::Ptr values = nullptr;
65 auto ret = Config::GetInstance().GetConfig("mediachannel", "rtmpport", values);
66 values->Print();
67 SharingValue::Ptr valueS = std::make_shared<SharingValue>(8080);
68 valueS->Print();
69 values->PutSharingValue("tomcat", valueS);
70
71 std::unordered_map<std::string, SharingValue::Ptr> datas;
72 {
73 SharingValue::Ptr valueS1 = std::make_shared<SharingValue>(8080);
74 datas.emplace(std::make_pair("http", valueS1));
75 SharingValue::Ptr valueS2 = std::make_shared<SharingValue>(443);
76 datas.emplace(std::make_pair("ssl", valueS2));
77 values->PutSharingValues(datas);
78 }
79 bool bret1 = values->HasKey("http");
80 bool bret2 = values->IsTag("rtmpport");
81 bool bret3 = values->HasKey("http1");
82 bool bret4 = values->IsTag("rtmpport2");
83 SharingValue::Ptr value1 = values->GetSharingValue("http");
84 value1->Print();
85 std::unordered_map<std::string, SharingValue::Ptr> values1;
86 values->GetSharingValues(values1);
87 SHARING_LOGD("hasKey: %{public}d,IsTag: %{public}d,HasKey: %{public}d,IsTag: %{public}d,size: %{public}d!",
88 bret1, bret2, bret3, bret4, values1.size());
89
90 ret = Config::GetInstance().SetConfig("mediachannel", "rtmpport", values);
91 sleep(1);
92 } else if (inputCmd == "6") {
93 SharingDataGroupByModule::Ptr values = nullptr;
94 auto ret = Config::GetInstance().GetConfig("mediachannel", values);
95 values->Print();
96 SharingValue::Ptr valueS = std::make_shared<SharingValue>(8080);
97 valueS->Print();
98 values->PutSharingValue("apache", "tomcat", valueS);
99
100 std::unordered_map<std::string, SharingValue::Ptr> datas;
101 {
102 SharingValue::Ptr valueS1 = std::make_shared<SharingValue>(80);
103 datas.emplace(std::make_pair("http", valueS1));
104 SharingValue::Ptr valueS2 = std::make_shared<SharingValue>(443);
105 datas.emplace(std::make_pair("ssl", valueS2));
106 values->PutSharingValues("apache", datas);
107 }
108 SharingValue::Ptr value1 = values->GetSharingValue("apache", "http");
109 value1->Print();
110 std::unordered_map<std::string, SharingValue::Ptr> values1;
111 values->GetSharingValues("apache", values1);
112 SharingDataGroupByTag::Ptr value3 = nullptr;
113 values->GetSharingValues("apache", value3);
114 value3->Print();
115 {
116 SharingValue::Ptr valueS = std::make_shared<SharingValue>(3306);
117 valueS->Print();
118 value3->PutSharingValue("mysql", valueS);
119 value3->Print();
120 }
121 values->PutSharingValues("apache", value3);
122 values->Print();
123
124 bool bret1 = values->HasKey("", "http");
125 bool bret2 = values->HasTag("rtmpport");
126 bool bret3 = values->HasKey("", "http1");
127 bool bret4 = values->HasTag("rtmpport2");
128 bool bret5 = values->IsModule("mediachannel");
129 bool bret6 = values->IsModule("mediachannel2");
130 SHARING_LOGD(
131 "HasKey: %{public}d,HasTag: %{public}d,HasKey: %{public}d,HasTag: %{public}d,IsModule: %{public}d,IsModule="
132 "%{public}d,size: %{public}d.",
133 bret1, bret2, bret3, bret4, bret5, bret6, values1.size());
134 ret = Config::GetInstance().SetConfig("mediachannel", values);
135 sleep(1);
136 }
137 }
138
139 sleep(3);
140
141 return 0;
142 }