Bus Messages 1.0
Bus Message Serialization Library
Loading...
Searching...
No Matches
bus::IBusMessageBroker Class Reference

Defines an interface to a broker, server or client. More...

#include <ibusmessagebroker.h>

Public Member Functions

 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< IBusMessageQueueCreatePublisher ()
 Creates a publisker queue.
virtual std::shared_ptr< IBusMessageQueueCreateSubscriber ()
 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.

Protected Attributes

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.

Detailed Description

The user should use the BusInterFaceFactory::CreateBroker() function when creating an object.

Member Function Documentation

◆ Address() [1/2]

const std::string & bus::IBusMessageBroker::Address ( ) const
nodiscard
Returns
TCP/IP address.

◆ 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
addressTCP/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
publisherSmart 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
subscriberSmart 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
sizeSize 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
nameShared memory name.

◆ 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
Returns
TCP/IP port.

◆ 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
portTCP/IP port.

◆ 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: