CppServer  1.0.0.0
C++ Server Library
Public Member Functions | List of all members
CppServer::Nanomsg::PairClient Class Reference

Nanomsg pair client. More...

#include <pair_client.h>

Inheritance diagram for CppServer::Nanomsg::PairClient:
CppServer::Nanomsg::Client

Public Member Functions

 PairClient (const std::string &address, bool threading=true)
 Initialize client with a given endpoint address. More...
 
 PairClient (const PairClient &)=delete
 
 PairClient (PairClient &&)=default
 
virtual ~PairClient ()=default
 
PairClientoperator= (const PairClient &)=delete
 
PairClientoperator= (PairClient &&)=default
 
- Public Member Functions inherited from CppServer::Nanomsg::Client
 Client (Domain domain, Protocol protocol, const std::string &address, bool threading=true)
 Initialize client with a given domain, protocol and endpoint address. More...
 
 Client (const Client &)=delete
 
 Client (Client &&)=default
 
virtual ~Client ()
 
Clientoperator= (const Client &)=delete
 
Clientoperator= (Client &&)=default
 
Socketsocket () noexcept
 Get the Nanomsg socket. More...
 
bool IsConnected () const noexcept
 Is the client connected? More...
 
bool Connect ()
 Connect the client. More...
 
bool Disconnect ()
 Disconnect the client. More...
 
bool Reconnect ()
 Reconnect the client. More...
 
size_t Send (const void *buffer, size_t size)
 Send data to the server. More...
 
size_t Send (const std::string &text)
 Send a text string to the server. More...
 
size_t Send (const Message &message)
 Send a message to the server. More...
 
size_t TrySend (const void *buffer, size_t size)
 Try to send data to the server in non-blocking mode. More...
 
size_t TrySend (const std::string &text)
 Try to send a text string to the server in non-blocking mode. More...
 
size_t TrySend (const Message &message)
 Try to send a message to the server in non-blocking mode. More...
 
size_t Receive (Message &message)
 Receive a message from the server. More...
 
size_t TryReceive (Message &message)
 Try to receive a message from the server in non-blocking mode. More...
 

Additional Inherited Members

- Protected Member Functions inherited from CppServer::Nanomsg::Client
virtual void onThreadInitialize ()
 Initialize thread handler. More...
 
virtual void onThreadCleanup ()
 Cleanup thread handler. More...
 
virtual void onConnected ()
 Handle client connected notification. More...
 
virtual void onDisconnected ()
 Handle client disconnected notification. More...
 
virtual void onIdle ()
 Handle client idle notification. More...
 
virtual void onReceived (Message &message)
 Handle message received notification. More...
 
virtual void onError (int error, const std::string &message)
 Handle error notification. More...
 

Detailed Description

Nanomsg pair client.

Nanomsg pair client is used to perform a duplex communication with the Nanomsg pair server.

Pair protocol is the simplest and least scalable scalability protocol. It allows scaling by breaking the application in exactly two pieces. For example, if a monolithic application handles both accounting and agenda of HR department, it can be split into two applications (accounting vs. HR) that are run on two separate servers. These applications can then communicate via PAIR sockets.

The downside of this protocol is that its scaling properties are very limited. Splitting the application into two pieces allows to scale the two servers. To add the third server to the cluster, the application has to be split once more, say by separating HR functionality into hiring module and salary computation module. Whenever possible, try to use one of the more scalable protocols instead.

Thread-safe.

Examples:
nanomsg_pair_client.cpp.

Definition at line 37 of file pair_client.h.

Constructor & Destructor Documentation

◆ PairClient() [1/3]

CppServer::Nanomsg::PairClient::PairClient ( const std::string &  address,
bool  threading = true 
)
inlineexplicit

Initialize client with a given endpoint address.

Parameters
address- Endpoint address
threading- Run the client in a separate thread (default is true)
Examples:
nanomsg_pair_client.cpp.

Definition at line 45 of file pair_client.h.

◆ PairClient() [2/3]

CppServer::Nanomsg::PairClient::PairClient ( const PairClient )
delete

◆ PairClient() [3/3]

CppServer::Nanomsg::PairClient::PairClient ( PairClient &&  )
default

◆ ~PairClient()

virtual CppServer::Nanomsg::PairClient::~PairClient ( )
virtualdefault

Member Function Documentation

◆ operator=() [1/2]

PairClient& CppServer::Nanomsg::PairClient::operator= ( const PairClient )
delete

◆ operator=() [2/2]

PairClient& CppServer::Nanomsg::PairClient::operator= ( PairClient &&  )
default

The documentation for this class was generated from the following file: