summaryrefslogtreecommitdiff
path: root/src/components/transport_manager/src/cloud/cloud_device.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/transport_manager/src/cloud/cloud_device.cc')
-rw-r--r--src/components/transport_manager/src/cloud/cloud_device.cc28
1 files changed, 23 insertions, 5 deletions
diff --git a/src/components/transport_manager/src/cloud/cloud_device.cc b/src/components/transport_manager/src/cloud/cloud_device.cc
index 35510f4cf8..c1ad186ded 100644
--- a/src/components/transport_manager/src/cloud/cloud_device.cc
+++ b/src/components/transport_manager/src/cloud/cloud_device.cc
@@ -42,7 +42,15 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager")
CloudDevice::CloudDevice(std::string& host,
std::string& port,
std::string& name)
- : Device(name, std::string(name)), host_(host), port_(port) {}
+ : Device(name, std::string(name))
+ , endpoint_(CloudAppEndpoint{.host = host,
+ .port = port,
+ .path = "/",
+ .query = "",
+ .fragment = ""}) {}
+
+CloudDevice::CloudDevice(CloudAppEndpoint endpoint, std::string& name)
+ : Device(name, std::string(name)), endpoint_(endpoint) {}
bool CloudDevice::IsSameAs(const Device* other) const {
LOG4CXX_TRACE(logger_, "enter. device: " << other);
@@ -54,12 +62,18 @@ bool CloudDevice::IsSameAs(const Device* other) const {
return false;
}
- if (host_ != other_cloud_device->GetHost()) {
+ if (GetHost() != other_cloud_device->GetHost()) {
+ return false;
+ }
+
+ if (GetPort() != other_cloud_device->GetPort()) {
return false;
}
- if (port_ != other_cloud_device->GetPort()) {
+
+ if (GetTarget() != other_cloud_device->GetTarget()) {
return false;
}
+
return true;
}
@@ -68,11 +82,15 @@ ApplicationList CloudDevice::GetApplicationList() const {
}
const std::string& CloudDevice::GetHost() const {
- return host_;
+ return endpoint_.host;
}
const std::string& CloudDevice::GetPort() const {
- return port_;
+ return endpoint_.port;
+}
+
+const std::string CloudDevice::GetTarget() const {
+ return endpoint_.path + endpoint_.query + endpoint_.fragment;
}
} // namespace transport_adapter