The Key-Value Service is responsible for getting and setting named values. More...
#include <Service.h>

Public Member Functions | |
| virtual void | DescribeService (data::discovery::Response &descriptor) override |
| Add descriptors for the service to the discovery descriptor. More... | |
| virtual bool | ReceiveMessage (const Node *sender, const data::Message *message) override |
| Delivery point of all messages. More... | |
| void | RegisterTarget (const std::string &path, Target *target) |
| Register a new Target with the specified path. More... | |
| Service (Endpoint *endpoint) | |
| Construct a new Service object. More... | |
| void | UnregisterTarget (const std::string &path) |
| Unregister a Target. More... | |
Public Member Functions inherited from swarmio::Mailbox | |
| virtual void | Disconnect () |
| Disconnect this Mailbox from the Endpoint. More... | |
| Endpoint * | GetEndpoint () |
| Get the associated Endpoint. More... | |
| Mailbox (const Mailbox &)=delete | |
| Remove copy constructor. More... | |
| virtual void | MailboxWasConnected () noexcept |
| Called when the mailbox is attached to an already running endpoint or if the attached endpoint has just started. More... | |
| virtual void | MailboxWillBeDisconnected () noexcept |
| Called right before the mailbox is disconnected from its endpoint or if the attached endpoint is about to stop. More... | |
| virtual void | NodeDidJoin (const Node *node) noexcept |
| Called when a new Node has joined the group. More... | |
| virtual void | NodeWasDiscovered (const Node *node) noexcept |
| Called when a new Node has been discovered. More... | |
| virtual void | NodeWillLeave (const Node *node) noexcept |
| Called when a Node signals that it will leave. More... | |
| Mailbox & | operator= (const Mailbox &)=delete |
| Remove assignment operator. More... | |
| virtual | ~Mailbox () |
| Destroy the Mailbox object. More... | |
Static Public Member Functions | |
| static ValueAwaiter | Get (Endpoint *endpoint, const Node *node, const std::string &path) |
| Get a remote value. More... | |
| static ErrorAwaiter | Set (Endpoint *endpoint, const Node *node, const std::string &path, const data::Variant &value) |
| Set a remote value. More... | |
Private Member Functions | |
| bool | HandleGetRequest (const Node *sender, const data::Message *message) |
| Handle remote Get requests. More... | |
| bool | HandleSetRequest (const Node *sender, const data::Message *message) |
| Handle remote Set requests. More... | |
Private Attributes | |
| std::mutex | _mutex |
| Mutex to protect target list. More... | |
| std::map< std::string, Target * > | _targets |
| Key-target map. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from swarmio::Mailbox | |
| void | FinishConstruction () |
| Called when the last constructor has finished its job. More... | |
| void | FinishMovingTo (Mailbox *other) |
| Called when message handling should be passed onto the new instance. More... | |
| Mailbox () | |
| Construct a disconnected Mailbox. More... | |
| Mailbox (Endpoint *endpoint) | |
| Construct a new Mailbox object. More... | |
| Mailbox (Mailbox &&other) | |
| Move a Mailbox object. More... | |
The Key-Value Service is responsible for getting and setting named values.
Definition at line 20 of file keyvalue/Service.h.
|
inline |
Construct a new Service object.
| endpoint | Endpoint |
Definition at line 84 of file keyvalue/Service.h.
|
overridevirtual |
Add descriptors for the service to the discovery descriptor.
| descriptor | The proposed response to load the description into |
Implements swarmio::services::discovery::Discoverable.
Definition at line 149 of file keyvalue/Service.cpp.
|
static |
Get a remote value.
Thread-safe.
Definition at line 9 of file keyvalue/Service.cpp.
|
private |
Handle remote Get requests.
| request | Request message |
| reply_to | Reply address |
Definition at line 72 of file keyvalue/Service.cpp.
|
private |
Handle remote Set requests.
| request | Request message |
Definition at line 102 of file keyvalue/Service.cpp.
|
overridevirtual |
Delivery point of all messages.
| sender | The node that has sent the message |
| message | The message itself |
Reimplemented from swarmio::Mailbox.
Definition at line 52 of file keyvalue/Service.cpp.
| void Service::RegisterTarget | ( | const std::string & | path, |
| Target * | target | ||
| ) |
Register a new Target with the specified path.
Thread-safe.
| path | Resource path |
| target | Target |
Definition at line 125 of file keyvalue/Service.cpp.
|
static |
Set a remote value.
Thread-safe.
Definition at line 30 of file keyvalue/Service.cpp.
| void Service::UnregisterTarget | ( | const std::string & | path | ) |
Unregister a Target.
Thread-safe.
| path | Resource path |
Definition at line 141 of file keyvalue/Service.cpp.
|
private |
Mutex to protect target list.
Definition at line 34 of file keyvalue/Service.h.
|
private |
Key-target map.
Definition at line 28 of file keyvalue/Service.h.