diff --git a/src/engine/dataman/DataManReader.cpp b/src/engine/dataman/DataManReader.cpp index 0f5a5c044cf47014b6073205108cf97888f1f15f..2704088d6cefef59e80ac9b9a9bbc733873fafe5 100644 --- a/src/engine/dataman/DataManReader.cpp +++ b/src/engine/dataman/DataManReader.cpp @@ -143,30 +143,27 @@ void DataManReader::Init( ) } }; - std::string method_type, method, local_ip, remote_ip; //no need to initialize to empty (it's default) - int local_port=0, remote_port=0, num_channels=0; - - lf_AssignString( "method_type", method_type ); - if( method_type == "stream" ) + auto is_number = [] (const std::string& s) { - lf_AssignString( "method", method ); - lf_AssignString( "local_ip", local_ip ); - lf_AssignString( "remote_ip", remote_ip ); - lf_AssignInt( "local_port", local_port ); - lf_AssignInt( "remote_port", remote_port ); - lf_AssignInt( "num_channels", num_channels ); - - json jmsg; - jmsg["method"] = method; - jmsg["local_ip"] = local_ip; - jmsg["remote_ip"] = remote_ip; - jmsg["local_port"] = local_port; - jmsg["remote_port"] = remote_port; - jmsg["num_channels"] = num_channels; - jmsg["stream_mode"] = "receiver"; - - m_Man.add_stream(jmsg); + return !s.empty() && std::find_if(s.begin(), s.end(), [](char c) { return !std::isdigit(c); }) == s.end(); + }; + + json jmsg; + for(auto &i : m_Method.m_Parameters){ + if( is_number(i.second) ){ + jmsg[i.first] = std::stoi(i.second); + } + else{ + jmsg[i.first] = i.second; + } } + jmsg["stream_mode"] = "receiver"; + m_Man.add_stream(jmsg); + + std::string method_type; + int num_channels=0; + lf_AssignString( "method_type", method_type ); + lf_AssignInt( "num_channels", num_channels ); } else { diff --git a/src/engine/dataman/DataManWriter.cpp b/src/engine/dataman/DataManWriter.cpp index 87c54aa74a096713fe97722606aaa06c9f7f99fb..7f06b75c7d7af85a7f7358e58cdba80e062f7687 100644 --- a/src/engine/dataman/DataManWriter.cpp +++ b/src/engine/dataman/DataManWriter.cpp @@ -198,37 +198,33 @@ void DataManWriter::Init( ) } }; - std::string method_type, method, local_ip, remote_ip; //no need to initialize to empty (it's default) - int local_port=0, remote_port=0, num_channels=0; - - lf_AssignString( "method_type", method_type ); - if( method_type == "stream" ) + auto is_number = [] (const std::string& s) { - lf_AssignString( "method", method ); - lf_AssignString( "local_ip", local_ip ); - lf_AssignString( "remote_ip", remote_ip ); - lf_AssignInt( "local_port", local_port ); - lf_AssignInt( "remote_port", remote_port ); - lf_AssignInt( "num_channels", num_channels ); - - json jmsg; - jmsg["method"] = method; - jmsg["local_ip"] = local_ip; - jmsg["remote_ip"] = remote_ip; - jmsg["local_port"] = local_port; - jmsg["remote_port"] = remote_port; - jmsg["num_channels"] = num_channels; - jmsg["stream_mode"] = "sender"; - - m_Man.add_stream(jmsg); + return !s.empty() && std::find_if(s.begin(), s.end(), [](char c) { return !std::isdigit(c); }) == s.end(); + }; + + json jmsg; + for(auto &i : m_Method.m_Parameters){ + if( is_number(i.second) ){ + jmsg[i.first] = std::stoi(i.second); + } + else{ + jmsg[i.first] = i.second; + } } + jmsg["stream_mode"] = "sender"; + m_Man.add_stream(jmsg); + + std::string method_type; + int num_channels=0; + lf_AssignString( "method_type", method_type ); + lf_AssignInt( "num_channels", num_channels ); } else { InitCapsules( ); InitTransports( ); } - } void DataManWriter::InitCapsules( )