Skip to content

Commit

Permalink
windows port of websockets
Browse files Browse the repository at this point in the history
  • Loading branch information
wsobel committed May 3, 2024
1 parent dfdf1d9 commit e80975b
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 15 deletions.
2 changes: 1 addition & 1 deletion agent_lib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -335,8 +335,8 @@ if(MSVC)

# The modules including Beast required the /bigobj option in Windows
set_property(SOURCE
"${SOURCE_DIR}/sink/mqtt_sink/mqtt_legacy_service.cpp"
"${SOURCE_DIR}/sink/mqtt_sink/mqtt_service.cpp"
"${SOURCE_DIR}/sink/mqtt_sink/mqtt2_service.cpp"
"${SOURCE_DIR}/sink/rest_sink/session_impl.cpp"
"${SOURCE_DIR}/source/adapter/mqtt/mqtt_adapter.cpp"
"${SOURCE_DIR}/source/adapter/agent_adapter/agent_adapter.cpp"
Expand Down
36 changes: 22 additions & 14 deletions src/mtconnect/sink/rest_sink/websocket_session.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,15 @@ namespace mtconnect::sink::rest_sink {

request->m_verb = beast::http::verb::get;
request->m_parameters.clear();
#ifdef GetObject
#define __GOSave__ GetObject
#undef GetObject
#endif

const auto &object = doc.GetObject();
#ifdef __GOSave__
#define GetObject __GOSave__
#endif

for (auto &it : object)
{
Expand All @@ -363,37 +371,37 @@ namespace mtconnect::sink::rest_sink {
break;
case rapidjson::kFalseType:
request->m_parameters.emplace(
make_pair(it.name.GetString(), ParameterValue(bool(false))));
make_pair(string(it.name.GetString()), ParameterValue(false)));
break;
case rapidjson::kTrueType:
request->m_parameters.emplace(
make_pair(it.name.GetString(), ParameterValue(bool(true))));
make_pair(string(it.name.GetString()), ParameterValue(true)));
break;
case rapidjson::kObjectType:
break;
case rapidjson::kArrayType:
break;
case rapidjson::kStringType:
request->m_parameters.emplace(
make_pair(it.name.GetString(), ParameterValue(it.value.GetString())));
make_pair(it.name.GetString(), ParameterValue(string(it.value.GetString()))));

break;
case rapidjson::kNumberType:
if (it.value.Is<int>())
if (it.value.IsInt())
request->m_parameters.emplace(
make_pair(it.name.GetString(), ParameterValue(it.value.GetInt())));
else if (it.value.IsUint())
request->m_parameters.emplace(
make_pair(it.name.GetString(), ParameterValue(it.value.Get<int>())));
else if (it.value.Is<unsigned>())
make_pair(it.name.GetString(), ParameterValue(uint64_t(it.value.GetUint()))));
else if (it.value.IsInt64())
request->m_parameters.emplace(
make_pair(it.name.GetString(), ParameterValue(it.value.Get<unsigned>())));
else if (it.value.Is<int64_t>())
request->m_parameters.emplace(make_pair(
it.name.GetString(), ParameterValue((uint64_t)it.value.Get<int64_t>())));
else if (it.value.Is<uint64_t>())
make_pair(it.name.GetString(), ParameterValue(uint64_t(it.value.GetInt64()))));
else if (it.value.IsUint64())
request->m_parameters.emplace(
make_pair(it.name.GetString(), ParameterValue(it.value.Get<uint64_t>())));
else if (it.value.Is<double>())
make_pair(it.name.GetString(), ParameterValue(it.value.GetUint64())));
else if (it.value.IsDouble())
request->m_parameters.emplace(
make_pair(it.name.GetString(), ParameterValue(it.value.Get<double>())));
make_pair(it.name.GetString(), ParameterValue(double(it.value.GetDouble()))));

break;
}
Expand Down

0 comments on commit e80975b

Please sign in to comment.