#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN #include #include // #include "../common/adc_utils.h" // #include "../net/adc_netmessage.h" #include #include "../net/adc_device_netmsg.h" #include "../net/adc_endpoint.h" // #include "../net/adc_netmsg.h" using namespace adc; static constexpr char DD[] = "="; static constexpr char TD[] = "-"; TEST_CASE("[ADC NET MESSAGE]") { // AdcKeyTokenNetMessage
msg; // std::string_view bytes{"SET=POS 1 2 3 4 5"}; // std::cout << "INPUT BYTES: [" << bytes << "]\n"; // msg.setFromBytes(bytes.begin(), bytes.end()); // auto keyv = msg.keyView(); // auto keyb = msg.keyBytes(); // std::cout << "KEY VIEW: [" << keyv << "]\n"; // std::cout << "KEY BYTE: [" << keyb << "]\n"; // auto tks = msg.tokens(1, 3); // for (auto& el : tks) { // std::cout << "TOKEN: [" << el << "]\n"; // } // auto t2 = msg.bytesView(); // std::cout << "BYTES VIEW: "; // for (auto& el : t2) { // std::cout << "[" << el << "]"; // } // std::cout << "\n"; // std::cout << "\n\n---------\n\n"; // msg.setTokens("FILTER", "A1", "B3"); // std::cout << "BYTES: " << msg.bytes() << "\n"; // std::cout << "TOK BYTES: [" << msg.tokensBytes(1, 1) << "]\n"; // std::cout << "\n\n---------\n\n"; // AdcTokenNetMessage<> tmsg; // std::list bb{'1', ' ', '2', ' ', '3', ' ', '4', ' ', '5'}; // tmsg.setFromBytes(bb.begin(), bb.end()); // auto t1 = tmsg.bytesView(); // std::cout << "TOKENS VIEW: "; // for (auto& el : t1) { // std::cout << "[" << el << "]"; // } // std::cout << "\n"; // std::cout << "\n\n\n"; // AdcEndpoint ept(AdcEndpoint::PROTO_ID_LOCAL, "SOCK"); // std::cout << "EPT: [" << ept.endpoint() << "]\n"; // std::cout << "EPT SZ: " << ept.endpoint().size() << "\n"; // char ee[] = "tLs://dewlkK.dwed.dwed:8012/dwelk"; // ept.setEndpoint(ee); // std::cout << "EPT: [" << ept.endpoint() << "]\n"; char ee[] = "tLs://dewlkK.dwed.dwed:8012/dwelk"; std::cout << "EPT CHAR RANGE: " << ee << "\n"; AdcEndpointParser prs(ee); std::cout << std::boolalpha << "IS VALID: " << prs.isValid() << "\n"; std::cout << "PROTO: [" << prs.proto() << "]\n"; std::cout << "HOST: [" << prs.host() << "]\n"; std::cout << "PORT: [" << prs.port() << "]\n"; std::cout << "PATH: [" << prs.path() << "]\n"; std::cout << std::boolalpha << "IS TLS: " << prs.isTLS() << "\n"; std::cout << std::boolalpha << "IS UDP: " << prs.isUDP() << "\n"; std::cout << "\n"; std::string bs = "local://seqpaCKet:dwe/@tmp.dev/213"; auto it = std::ranges::find(bs, '@'); *it = '\0'; std::cout << "EPT CHAR RANGE: " << bs << "\n"; prs = AdcEndpointParser(bs); std::cout << std::boolalpha << "IS VALID: " << prs.isValid() << "\n"; std::cout << "PROTO: [" << prs.proto() << "]\n"; std::cout << "HOST: [" << prs.host() << "]\n"; std::cout << "PORT: [" << prs.port() << "]\n"; std::cout << "PATH: [" << prs.path() << "]\n"; std::cout << "PATH SZ: [" << prs.path().size() << "]\n"; std::cout << std::boolalpha << "IS LOCAL STREAM: " << prs.isLocalStream() << "\n"; std::cout << std::boolalpha << "IS LOCAL SEQPACKET: " << prs.isLocalSeqpacket() << "\n"; std::cout << std::boolalpha << "IS UDP: " << prs.isUDP() << "\n"; std::cout << "\n\n"; bs.clear(); AdcDeviceProtoMessage dpm(bs); std::cout << std::boolalpha << "IS VALID: " << dpm.isValid() << "\n"; dpm.ack(); std::cout << "BS: {" << bs << "}\n"; std::cout << "BS SZ: " << bs.size() << "\n"; dpm.set("FILTER", "V", 1.1, std::make_tuple("1.1", 33.77)); std::cout << "BS: {" << bs << "}\n"; std::cout << "BS SZ: " << bs.size() << "\n"; std::cout << std::boolalpha << "IS SET: " << dpm.isSET() << "\n"; std::cout << std::boolalpha << "IS VALID: " << dpm.isValid() << "\n"; }