Defines an interface to a broker, server or client.
More...
#include <ibusmessagebroker.h>
|
| IBusMessageBroker ()=default |
| Default constructor.
|
virtual | ~IBusMessageBroker ()=default |
| Default destructor.
|
void | Name (std::string name) |
| Name of the shared memory.
|
const std::string & | Name () const |
| Returns the shared memory name.
|
void | MemorySize (uint32_t size) |
| Sets the internal memory size.
|
uint32_t | MemorySize () const |
| Returns the internal memory size.
|
void | Address (std::string address) |
| Sets the TCP/IP host address.
|
const std::string & | Address () const |
| Returns the TCP/IP address.
|
void | Port (uint16_t port) |
| Sets the TCP/IP port.
|
uint16_t | Port () const |
| Returns the TCP/IP port.
|
bool | IsConnected () const |
| Return true if the client is connected.
|
virtual std::shared_ptr< IBusMessageQueue > | CreatePublisher () |
| Creates a publisker queue.
|
virtual std::shared_ptr< IBusMessageQueue > | CreateSubscriber () |
| Creates a subscriber queue.
|
void | DetachPublisher (const std::shared_ptr< IBusMessageQueue > &publisher) |
| Detach a publisher from its broker.
|
void | DetachSubscriber (const std::shared_ptr< IBusMessageQueue > &subscriber) |
| Detach a subscriber from its broker.
|
size_t | NofPublishers () const |
| Returns number of attached publishers.
|
size_t | NofSubscribers () const |
| Returns number of attached subscribers.
|
virtual void | Start () |
| Starts the broker.
|
virtual void | Stop () |
| Stops the broker.
|
|
std::atomic< bool > | connected_ = false |
| True if the broker is connected.
|
std::mutex | queue_mutex_ |
| Queue (lock) mutex.
|
std::vector< std::shared_ptr< IBusMessageQueue > > | publishers_ |
| List of attached publishers.
|
std::vector< std::shared_ptr< IBusMessageQueue > > | subscribers_ |
| List of attached subscribers.
|
std::atomic< bool > | stop_thread_ = false |
| True if the thread shall stop.
|
std::thread | thread_ |
| Working thread.
|
The user should use the BusInterFaceFactory::CreateBroker() function when creating an object.
◆ Address() [1/2]
const std::string & bus::IBusMessageBroker::Address |
( |
| ) |
const |
|
nodiscard |
◆ Address() [2/2]
void bus::IBusMessageBroker::Address |
( |
std::string | address | ) |
|
The function set the TCP/IP address. TCP/IP server uses only 2 addresses. The address '127.0.0.1' means that only applications on this computer can coonects to this server. The address '0.0.0.0.' means that any computer on the network can connect to this server.
- Parameters
-
address | TCP/IP host address. |
◆ CreatePublisher()
virtual std::shared_ptr< IBusMessageQueue > bus::IBusMessageBroker::CreatePublisher |
( |
| ) |
|
|
nodiscardvirtual |
Create a publisher queue. A publisher send (push) messages while a subscriber receive (pop) messages.
- Returns
- Smart pointer to a message queue.
◆ CreateSubscriber()
virtual std::shared_ptr< IBusMessageQueue > bus::IBusMessageBroker::CreateSubscriber |
( |
| ) |
|
|
nodiscardvirtual |
Create a subscriber queue. A publisher send (push) messages while a subscriber receive (pop) messages.
- Returns
- Smart pointer to a message queue.
◆ DetachPublisher()
void bus::IBusMessageBroker::DetachPublisher |
( |
const std::shared_ptr< IBusMessageQueue > & | publisher | ) |
|
Detach the publisher from its broker. This function is rarely used when using smart pointers.
- Parameters
-
publisher | Smart pointer to a publisher. |
◆ DetachSubscriber()
void bus::IBusMessageBroker::DetachSubscriber |
( |
const std::shared_ptr< IBusMessageQueue > & | subscriber | ) |
|
Detach the subscriber from its broker. This function is rarely used when using smart pointers.
- Parameters
-
subscriber | Smart pointer to a publisher. |
◆ IsConnected()
bool bus::IBusMessageBroker::IsConnected |
( |
| ) |
const |
|
nodiscard |
This function is normally only used for client objects and indicate if the client is connected to the server. A client should wait until it is connected to send messages.
- Returns
- True if it is connected.
◆ MemorySize() [1/2]
uint32_t bus::IBusMessageBroker::MemorySize |
( |
| ) |
const |
|
inlinenodiscard |
- Returns
- Internal memory size;
◆ MemorySize() [2/2]
void bus::IBusMessageBroker::MemorySize |
( |
uint32_t | size | ) |
|
|
inline |
This function is deprecated as the shared memory is fixed to 16kB.
- Parameters
-
size | Size of internal memory. |
◆ Name() [1/2]
const std::string & bus::IBusMessageBroker::Name |
( |
| ) |
const |
|
nodiscard |
- Returns
- Shared memory name.
◆ Name() [2/2]
void bus::IBusMessageBroker::Name |
( |
std::string | name | ) |
|
Name of the brokers shared memory. This is also used when referencing the broker in log messages.
- Parameters
-
◆ NofPublishers()
size_t bus::IBusMessageBroker::NofPublishers |
( |
| ) |
const |
|
nodiscard |
- Returns
- Number of publishers
◆ NofSubscribers()
size_t bus::IBusMessageBroker::NofSubscribers |
( |
| ) |
const |
|
nodiscard |
- Returns
- Number of subscribers.
◆ Port() [1/2]
uint16_t bus::IBusMessageBroker::Port |
( |
| ) |
const |
|
inlinenodiscard |
◆ Port() [2/2]
void bus::IBusMessageBroker::Port |
( |
uint16_t | port | ) |
|
|
inline |
The port number should be between 1024 and 49151. The internal standard is to use port numbers 42511 - 42998. The util library uses the port range 42511 - 42610 This library uses the port range 42611 - 42710
- Parameters
-
◆ Start()
virtual void bus::IBusMessageBroker::Start |
( |
| ) |
|
|
virtual |
This function is called to start the broker. This start any needed working thread and creating shared memory.
◆ Stop()
virtual void bus::IBusMessageBroker::Stop |
( |
| ) |
|
|
virtual |
The function stop any working thread and removes any shared memory.
The documentation for this class was generated from the following file: