|
VLink 2.0.0
A high-performance communication middleware
|
Abstract base class for VLink transport configuration objects. More...
#include <conf.h>
Public Types | |
| using | PropertiesMap = std::map<std::string, std::string> |
| Key/value property map type. | |
Public Member Functions | |
| virtual | ~Conf () |
| Virtual destructor. | |
| virtual bool | parse (ImplType impl_type) const |
| Validates the conf for the given node role and caches the type. | |
| virtual bool | is_valid () const |
Returns true when the configuration holds valid, usable data. | |
| virtual ImplType | get_impl_type () const |
Returns the most recently parsed ImplType. | |
| virtual TransportType | get_transport_type () const |
| Returns the transport backend this configuration represents. | |
Public Attributes | |
| uint32_t | hash_code {0} |
| Hash of the URL string; used for fast URL lookup in caches. | |
Protected Member Functions | |
| Conf () | |
| virtual bool | parse_protocol (struct Protocol *protocol) |
| virtual std::unique_ptr< class ServerImpl > | create_server () const |
| virtual std::unique_ptr< class ClientImpl > | create_client () const |
| virtual std::unique_ptr< class PublisherImpl > | create_publisher () const |
| virtual std::unique_ptr< class SubscriberImpl > | create_subscriber () const |
| virtual std::unique_ptr< class SetterImpl > | create_setter () const |
| virtual std::unique_ptr< class GetterImpl > | create_getter () const |
Friends | |
| struct | Url |
| template<typename, typename, SecurityType> | |
| class | Server |
| template<typename, typename, SecurityType> | |
| class | Client |
| template<typename, SecurityType> | |
| class | Publisher |
| template<typename, SecurityType> | |
| class | Subscriber |
| template<typename, SecurityType> | |
| class | Setter |
| template<typename, SecurityType> | |
| class | Getter |
Abstract base class for VLink transport configuration objects.
Each supported transport backend has a corresponding Conf subclass that implements the virtual factory methods (create_publisher, create_server, etc.) to produce transport-specific NodeImpl instances. The base class provides default implementations that return nullptr / false, so subclasses only need to override the methods they support.
Conf objects are held exclusively by Url and the six Node<> template classes; they are not intended for direct use by application code.
| using vlink::Conf::PropertiesMap = std::map<std::string, std::string> |
Key/value property map type.
Used by transport conf subclasses and NodeImpl to store DDS QoS strings, IP addresses, buffer sizes, and other per-channel tuning parameters (e.g. "dds.ip" = "127.0.0.1").
|
virtual |
Virtual destructor.
|
protected |
|
nodiscardprotectedvirtual |
|
nodiscardprotectedvirtual |
|
nodiscardprotectedvirtual |
|
nodiscardprotectedvirtual |
|
nodiscardprotectedvirtual |
|
nodiscardprotectedvirtual |
|
nodiscardvirtual |
Returns the most recently parsed ImplType.
Reimplemented in vlink::Url.
|
nodiscardvirtual |
Returns the transport backend this configuration represents.
The base implementation returns TransportType::kUnknown. Each subclass overrides this to return its own TransportType value.
TransportType identifier for this conf. Reimplemented in vlink::Url.
|
nodiscardvirtual |
Returns true when the configuration holds valid, usable data.
The base implementation always returns false. Subclasses override this to perform transport-specific validation.
true if the configuration is ready to create NodeImpl objects. Reimplemented in vlink::Url.
|
nodiscardvirtual |
Validates the conf for the given node role and caches the type.
Called by the Node<> template before invoking any create_*() factory. The base implementation logs a fatal message and returns false for kUnknownImplType; otherwise it caches impl_type and returns true. Concrete subclasses typically call this base and then validate their own fields.
| impl_type | The role being requested (e.g. kPublisher). |
true on success; false if the type is unknown. Reimplemented in vlink::Url.
|
nodiscardprotectedvirtual |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
| uint32_t vlink::Conf::hash_code {0} |
Hash of the URL string; used for fast URL lookup in caches.