diff --git a/rdmnet/component.h b/rdmnet/component.h new file mode 100644 index 0000000..0b756f3 --- /dev/null +++ b/rdmnet/component.h @@ -0,0 +1,58 @@ +/* + component.h + + Copyright (c) 2021 Kevin Matz (kevin.matz@gmail.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ +#pragma once + +#include "acn/component.h" + +#include +#include + +namespace RDMnet { + +/** + * @brief 6 Broker Protocol + * 6.1.3 Client + * A Client is a Component which connects to a Broker. Clients communicate + * with other Clients which are using the same Client Protocol in the same + * Scope via their connection to the Broker. + */ + +class Component + : public ACN::Component +{ +public: + Component(UUID::uuid cid = UUID::uuid()) + : ACN::Component(cid) + {}; + virtual ~Component(); + +private: + /// @brief 6.2.1 Scopes + /// Each Component participates in one or more Scopes. + std::vector scopes_; +}; + +} // namespace RDMnet + + diff --git a/rdmnet/controller.cpp b/rdmnet/controller.cpp index dd334df..da34513 100644 --- a/rdmnet/controller.cpp +++ b/rdmnet/controller.cpp @@ -29,7 +29,7 @@ namespace RDMnet { * @brief Controller::Controller */ Controller::Controller(UUID::uuid cid) - : ACN::Component(cid) + : Component(cid) , RDM::Controller() , LLRP::Target() { diff --git a/rdmnet/controller.h b/rdmnet/controller.h index 434fac7..48d92ec 100644 --- a/rdmnet/controller.h +++ b/rdmnet/controller.h @@ -23,9 +23,8 @@ */ #pragma once -#include "acn/component.h" +#include "component.h" #include "rdm/controller.h" - #include "rdmnet.h" #include "rpt.h" #include "target.h" @@ -36,7 +35,7 @@ namespace RDMnet { * @brief The Controller class */ class Controller - : public ACN::Component + : public Component , public RDM::Controller , public LLRP::Target { diff --git a/rdmnet/device.cpp b/rdmnet/device.cpp index b134b94..005b0ac 100644 --- a/rdmnet/device.cpp +++ b/rdmnet/device.cpp @@ -29,7 +29,7 @@ namespace RDMnet { * @brief Controller::Controller */ Device::Device(UUID::uuid cid, UUID::uuid rid, RDM::UID uid) - : ACN::Component(cid) + : Component(cid) , RDM::Responder(uid) , LLRP::Target() , rid_(rid) diff --git a/rdmnet/device.h b/rdmnet/device.h index 1dcacc2..a3fee85 100644 --- a/rdmnet/device.h +++ b/rdmnet/device.h @@ -23,9 +23,8 @@ */ #pragma once -#include "acn/component.h" +#include "component.h" #include "rdm/responder.h" - #include "rdmnet.h" #include "rpt.h" #include "target.h" @@ -36,7 +35,7 @@ namespace RDMnet { * @brief The Device class */ class Device - : public ACN::Component + : public Component , public RDM::Responder , public LLRP::Target {