diff options
Diffstat (limited to 'src/plugins/capabilities/core/include')
3 files changed, 0 insertions, 225 deletions
diff --git a/src/plugins/capabilities/core/include/MessageChannel.h b/src/plugins/capabilities/core/include/MessageChannel.h deleted file mode 100644 index 504e241..0000000 --- a/src/plugins/capabilities/core/include/MessageChannel.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://aws.amazon.com/apache2.0/ - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ -#ifndef VSHL_CAPABILITIES_CORE_MESSAGECHANNEL_H_ -#define VSHL_CAPABILITIES_CORE_MESSAGECHANNEL_H_ - -#include <memory> - -#include "capabilities/core/include/PublisherForwarder.h" -#include "capabilities/core/include/SubscriberForwarder.h" -#include "interfaces/afb/IAFBApi.h" -#include "interfaces/capabilities/ICapability.h" -#include "interfaces/utilities/logging/ILogger.h" - -using namespace std; - -namespace vshl { -namespace capabilities { -namespace core { -/* - * MessageChannel has one end as publisher forwarder and the other end - * as subscriber forwarder. - */ -class MessageChannel { -public: - // Create a MessageChannel. - static std::shared_ptr<MessageChannel> - create(shared_ptr<vshl::common::interfaces::ILogger> logger, - shared_ptr<vshl::common::interfaces::IAFBApi> afbApi, - shared_ptr<vshl::common::interfaces::ICapability> capability); - - // Sends the message - bool publish(const string action, const string payload); - - // Subscribe - bool subscribe(vshl::common::interfaces::IAFBRequest &request, - const string action); - - // Destructor - virtual ~MessageChannel() = default; - -private: - // Constructor - MessageChannel(shared_ptr<vshl::common::interfaces::ILogger> logger, - shared_ptr<vshl::common::interfaces::IAFBApi> afbApi, - shared_ptr<vshl::common::interfaces::ICapability> capability); - - // Forwarders - shared_ptr<PublisherForwarder> mPublisherForwarder; - shared_ptr<SubscriberForwarder> mSubscriberForwarder; -}; - -} // namespace core -} // namespace capabilities -} // namespace vshl - -#endif // VSHL_CAPABILITIES_CORE_MESSAGECHANNEL_H_ diff --git a/src/plugins/capabilities/core/include/PublisherForwarder.h b/src/plugins/capabilities/core/include/PublisherForwarder.h deleted file mode 100644 index 9cc89b5..0000000 --- a/src/plugins/capabilities/core/include/PublisherForwarder.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://aws.amazon.com/apache2.0/ - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ -#ifndef VSHL_CAPABILITIES_CORE_PUBLISHERFORWARDER_H_ -#define VSHL_CAPABILITIES_CORE_PUBLISHERFORWARDER_H_ - -#include <memory> - -#include "capabilities/core/include/SubscriberForwarder.h" - -#include "interfaces/afb/IAFBApi.h" -#include "interfaces/capabilities/ICapability.h" -#include "interfaces/utilities/logging/ILogger.h" - -using namespace std; - -namespace vshl { -namespace capabilities { -namespace core { -/* - * This class is responsible for forwarding the messages to be published - * to subscriber forwarder. Subscriber forwarder will deliver the messages - * as AFB Events to all the subscribed clients. - * There is one PublisherForwarder and one SubscriberForwarder per capability. - */ -class PublisherForwarder { -public: - // Create a PublisherForwarder. - static std::shared_ptr<PublisherForwarder> create( - shared_ptr<vshl::common::interfaces::ILogger> logger, - shared_ptr<vshl::common::interfaces::ICapability> capability); - - // Connect a subscriber forwarder to this publisher forwarder - void setSubscriberForwarder(shared_ptr<SubscriberForwarder> subscriberForwarder); - - // Forward message to the subscriber forwarder - bool forwardMessage(const string action, const string payload); - - // Destructor - ~PublisherForwarder(); - -private: - // Constructor - PublisherForwarder( - shared_ptr<vshl::common::interfaces::ILogger> logger, - shared_ptr<vshl::common::interfaces::ICapability> capability); - - // Subscriber forwarder connected to this publisher forwarder. - shared_ptr<SubscriberForwarder> mSubscriberForwarder; - - // Capability - shared_ptr<vshl::common::interfaces::ICapability> mCapability; - - // Logger - shared_ptr<vshl::common::interfaces::ILogger> mLogger; -}; - -} // namespace core -} // namespace capabilities -} // namespace vshl - -#endif // VSHL_CAPABILITIES_CORE_PUBLISHERFORWARDER_H_ diff --git a/src/plugins/capabilities/core/include/SubscriberForwarder.h b/src/plugins/capabilities/core/include/SubscriberForwarder.h deleted file mode 100644 index 94c04bf..0000000 --- a/src/plugins/capabilities/core/include/SubscriberForwarder.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://aws.amazon.com/apache2.0/ - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ -#ifndef VSHL_CAPABILITIES_CORE_SUBSCRIBERFORWARDER_H_ -#define VSHL_CAPABILITIES_CORE_SUBSCRIBERFORWARDER_H_ - -#include <memory> -#include <string> -#include <unordered_map> - -#include "interfaces/afb/IAFBApi.h" -#include "interfaces/capabilities/ICapability.h" -#include "interfaces/utilities/logging/ILogger.h" - -using namespace std; - -namespace vshl { -namespace capabilities { -namespace core { -/* - * This class is responsible for forwarding the messages publishing - * to the actual clients using AFB. - */ -class SubscriberForwarder { -public: - // Create a SubscriberForwarder. - static std::shared_ptr<SubscriberForwarder> - create(shared_ptr<vshl::common::interfaces::ILogger> logger, - shared_ptr<vshl::common::interfaces::IAFBApi> afbApi, - shared_ptr<vshl::common::interfaces::ICapability> capability); - - // Publish a capability message to the actual client. - bool forwardMessage(const string action, const string payload); - - // Subscribe - bool subscribe(vshl::common::interfaces::IAFBRequest &request, - const string action); - - // Destructor - ~SubscriberForwarder(); - -private: - // Constructor - SubscriberForwarder( - shared_ptr<vshl::common::interfaces::ILogger> logger, - shared_ptr<vshl::common::interfaces::IAFBApi> afbApi, - shared_ptr<vshl::common::interfaces::ICapability> capability); - - // Creates both upstream and downstream events - void createEvents(); - - // Binding API reference - shared_ptr<vshl::common::interfaces::IAFBApi> mAfbApi; - - // Capability - shared_ptr<vshl::common::interfaces::ICapability> mCapability; - - // Maps of capability action events to its corresponding Event object. - // Event name maps to Action Name - unordered_map<string, shared_ptr<common::interfaces::IAFBApi::IAFBEvent>> - mUpstreamEventsMap; - unordered_map<string, shared_ptr<common::interfaces::IAFBApi::IAFBEvent>> - mDownstreamEventsMap; - - // Logger - shared_ptr<vshl::common::interfaces::ILogger> mLogger; -}; - -} // namespace core -} // namespace capabilities -} // namespace vshl - -#endif // VSHL_CAPABILITIES_CORE_SUBSCRIBERFORWARDER_H_ |