onboardapi  9.10.0
by Rheinmetall
M_AnalogueIo::Client Class Reference

new oo-api More...

Public Types

typedef M_AnalogueIo::IClient InterfaceTypeReceiver
 
typedef M_AnalogueIo::IService InterfaceTypeSender
 

Public Member Functions

 Client ()
 
 Client (Client &&other) noexcept
 
 Client (const Client &other)=delete
 
 ~Client ()
 
ddkit::actors::ActorInfo actorInfo () const
 
bool isValid () const
 true, if dds-able (false, if default-constructed or Session destructed) More...
 
void invalidate ()
 
std::shared_ptr< ddkit::actors::Session > getSession ()
 
std::shared_ptr< ddkit::actors::MonitorSession > getMonitorSession ()
 
void setName (std::string clientName)
 set client-display-name More...
 
IServicePtr operator-> ()
 call operations on matching Services More...
 
void waitUntilConnected ()
 block, until the corresponding service appears. More...
 

Static Public Member Functions

template<typename T , typename IClientDerived >
static std::enable_if< std::is_same< T, int >::value &&std::is_same< IClientDerived, std::vector< ddkit::callback::Base * > >::value, Client >::type create (T domain, std::string serviceName, IClientDerived &callbacks)
 Create dds-readers + writers. remove on Client leaving scope (overridden methods are auto-detected),. More...
 
template<typename T , typename IClientDerived >
static std::enable_if< std::is_same< T, int >::value &&!std::is_same< IClientDerived, std::vector< ddkit::callback::Base * > >::value, Client >::type create (T domain, std::string serviceName, IClientDerived &callbacks)
 Create dds-readers + writers. remove on Client leaving scope (overridden methods are auto-detected) More...
 
template<typename T , typename IClientDerived >
static std::enable_if< std::is_same< T, std::shared_ptr< ddkit::actors::Session > >::value &&std::is_same< IClientDerived, std::vector< ddkit::callback::Base * > >::value, Client >::type create (T session, std::string serviceName, IClientDerived &callbacks)
 Create dds-readers + writers. remove on Client leaving scope (overridden methods are auto-detected) More...
 
template<typename T , typename IClientDerived >
static std::enable_if< std::is_same< T, std::shared_ptr< ddkit::actors::Session > >::value &&!std::is_same< IClientDerived, std::vector< ddkit::callback::Base * > >::value, Client >::type create (T session, std::string serviceName, IClientDerived &callbacks)
 Create dds-readers + writers. remove on Client leaving scope (overridden methods are auto-detected) More...
 
static Client createWriteOnly (int domain, std::string serviceName)
 static int domain More...
 
static Client createWriteOnly (std::shared_ptr< ddkit::actors::Session > session, std::string serviceName)
 static std::shared_ptr<ddkit::actors::Session> session More...
 
template<typename T , typename IClientDerived >
static std::enable_if< std::is_same< T, int >::value &&std::is_same< IClientDerived, std::vector< ddkit::callback::Base * > >::value, Client >::type createMonitor (T domain, std::string serviceName, IClientDerived &callbacks)
 (only for monitors: Listener, Inspector / resulting clients are read-only!) More...
 
template<typename T , typename IClientDerived >
static std::enable_if< std::is_same< T, int >::value &&!std::is_same< IClientDerived, std::vector< ddkit::callback::Base * > >::value, Client >::type createMonitor (T domain, std::string serviceName, IClientDerived &callbacks)
 (only for monitors: Listener, Inspector / resulting clients are read-only!) More...
 
template<typename T , typename IClientDerived >
static std::enable_if< std::is_same< T, std::shared_ptr< ddkit::actors::MonitorSession > >::value &&std::is_same< IClientDerived, std::vector< ddkit::callback::Base * > >::value, Client >::type createMonitor (T monitorSession, std::string serviceName, IClientDerived &callbacks)
 (only for monitors: Listener, Inspector / resulting clients are read-only!) More...
 
template<typename T , typename IClientDerived >
static std::enable_if< std::is_same< T, std::shared_ptr< ddkit::actors::MonitorSession > >::value &&!std::is_same< IClientDerived, std::vector< ddkit::callback::Base * > >::value, Client >::type createMonitor (T monitorSession, std::string serviceName, IClientDerived &callbacks)
 (only for monitors: Listener, Inspector / resulting clients are read-only!) More...
 
template<typename T , typename IClientDerived >
static std::enable_if< std::is_same< T, int >::value &&std::is_same< IClientDerived, std::vector< ddkit::callback::Base * > >::value, Client >::type createMonitor (T domain, IClientDerived &callbacks)
 Reading all serviceNames. More...
 
template<typename T , typename IClientDerived >
static std::enable_if< std::is_same< T, int >::value &&!std::is_same< IClientDerived, std::vector< ddkit::callback::Base * > >::value, Client >::type createMonitor (T domain, IClientDerived &callbacks)
 Reading all serviceNames. More...
 
template<typename T , typename IClientDerived >
static std::enable_if< std::is_same< T, std::shared_ptr< ddkit::actors::MonitorSession > >::value &&std::is_same< IClientDerived, std::vector< ddkit::callback::Base * > >::value, Client >::type createMonitor (T monitorSession, IClientDerived &callbacks)
 Reading all serviceNames. More...
 
template<typename T , typename IClientDerived >
static std::enable_if< std::is_same< T, std::shared_ptr< ddkit::actors::MonitorSession > >::value &&!std::is_same< IClientDerived, std::vector< ddkit::callback::Base * > >::value, Client >::type createMonitor (T monitorSession, IClientDerived &callbacks)
 Reading all serviceNames. More...
 

Private Member Functions

ddkit::actors::IActor & actor ()
 
 Client (ddkit::actors::ActorPtr actor, bool discardSenderOnDestruction, bool discardObserverOnDestruction, std::shared_ptr< ddkit::actors::Session > session, std::shared_ptr< ddkit::actors::MonitorSession > monitorSession)
 

Static Private Member Functions

static bool isCheckMostDerivedClassType (ddkit::actors::Session &session)
 
static bool isCheckMostDerivedClassType (ddkit::actors::MonitorSession &monitorSession)
 
static Client createCustom (std::shared_ptr< ddkit::actors::Session > session, std::string serviceName, IClient &callbacks, std::vector< std::string > methods)
 
static Client createCustomReadOnly (std::shared_ptr< ddkit::actors::MonitorSession > monitorSession, std::string serviceName, IClient &callbacks, std::vector< std::string > methods)
 
static Client createCustomReadOnlyMultiplex (std::shared_ptr< ddkit::actors::MonitorSession > monitorSession, IClient &callbacks, std::vector< std::string > methods)
 
static Client createCustom (std::shared_ptr< ddkit::actors::Session > session, std::string serviceName, std::map< std::string, std::vector< ddkit::callback::Base * >> callbacks, std::vector< std::string > methods)
 
static Client createCustomReadOnly (std::shared_ptr< ddkit::actors::MonitorSession > monitorSession, std::string serviceName, std::map< std::string, std::vector< ddkit::callback::Base * >> callbacks, std::vector< std::string > methods)
 
static Client createCustomReadOnlyMultiplex (std::shared_ptr< ddkit::actors::MonitorSession > monitorSession, std::map< std::string, std::vector< ddkit::callback::Base * >> callbacks, std::vector< std::string > methods)
 

Private Attributes

ddkit::actors::ActorWeakPtr m_actor
 
bool m_discardSenderOnDestruction
 
bool m_discardObserverOnDestruction
 
std::shared_ptr< ddkit::actors::Session > m_session
 
std::shared_ptr< ddkit::actors::MonitorSession > m_monitorSession
 

Detailed Description

new oo-api

Member Typedef Documentation

◆ InterfaceTypeReceiver

◆ InterfaceTypeSender

Constructor & Destructor Documentation

◆ Client() [1/4]

M_AnalogueIo::Client::Client ( )

◆ Client() [2/4]

M_AnalogueIo::Client::Client ( Client &&  other)
noexcept

◆ Client() [3/4]

M_AnalogueIo::Client::Client ( const Client other)
delete

◆ ~Client()

M_AnalogueIo::Client::~Client ( )

◆ Client() [4/4]

M_AnalogueIo::Client::Client ( ddkit::actors::ActorPtr  actor,
bool  discardSenderOnDestruction,
bool  discardObserverOnDestruction,
std::shared_ptr< ddkit::actors::Session >  session,
std::shared_ptr< ddkit::actors::MonitorSession >  monitorSession 
)
private

Member Function Documentation

◆ actor()

ddkit::actors::IActor & M_AnalogueIo::Client::actor ( )
private

◆ actorInfo()

ddkit::actors::ActorInfo M_AnalogueIo::Client::actorInfo ( ) const

◆ create() [1/4]

template<typename T , typename IClientDerived >
std::enable_if< std::is_same< T, std::shared_ptr< ddkit::actors::Session > >::value &&!std::is_same< IClientDerived, std::vector< ddkit::callback::Base * > >::value, Client >::type M_AnalogueIo::Client::create ( domain,
std::string  serviceName,
IClientDerived &  callbacks 
)
static

Create dds-readers + writers. remove on Client leaving scope (overridden methods are auto-detected),.

◆ create() [2/4]

template<typename T , typename IClientDerived >
static std::enable_if< std::is_same<T, int>::value && !std::is_same<IClientDerived, std::vector<ddkit::callback::Base*> >::value, Client>::type M_AnalogueIo::Client::create ( domain,
std::string  serviceName,
IClientDerived &  callbacks 
)
static

Create dds-readers + writers. remove on Client leaving scope (overridden methods are auto-detected)

◆ create() [3/4]

template<typename T , typename IClientDerived >
static std::enable_if< std::is_same<T, std::shared_ptr<ddkit::actors::Session> >::value && std::is_same<IClientDerived, std::vector<ddkit::callback::Base*> >::value, Client>::type M_AnalogueIo::Client::create ( session,
std::string  serviceName,
IClientDerived &  callbacks 
)
static

Create dds-readers + writers. remove on Client leaving scope (overridden methods are auto-detected)

◆ create() [4/4]

template<typename T , typename IClientDerived >
static std::enable_if< std::is_same<T, std::shared_ptr<ddkit::actors::Session> >::value && !std::is_same<IClientDerived, std::vector<ddkit::callback::Base*> >::value, Client>::type M_AnalogueIo::Client::create ( session,
std::string  serviceName,
IClientDerived &  callbacks 
)
static

Create dds-readers + writers. remove on Client leaving scope (overridden methods are auto-detected)

◆ createCustom() [1/2]

Client M_AnalogueIo::Client::createCustom ( std::shared_ptr< ddkit::actors::Session >  session,
std::string  serviceName,
IClient callbacks,
std::vector< std::string >  methods 
)
staticprivate

◆ createCustom() [2/2]

Client M_AnalogueIo::Client::createCustom ( std::shared_ptr< ddkit::actors::Session >  session,
std::string  serviceName,
std::map< std::string, std::vector< ddkit::callback::Base * >>  callbacks,
std::vector< std::string >  methods 
)
staticprivate

◆ createCustomReadOnly() [1/2]

Client M_AnalogueIo::Client::createCustomReadOnly ( std::shared_ptr< ddkit::actors::MonitorSession >  monitorSession,
std::string  serviceName,
IClient callbacks,
std::vector< std::string >  methods 
)
staticprivate

◆ createCustomReadOnly() [2/2]

Client M_AnalogueIo::Client::createCustomReadOnly ( std::shared_ptr< ddkit::actors::MonitorSession >  monitorSession,
std::string  serviceName,
std::map< std::string, std::vector< ddkit::callback::Base * >>  callbacks,
std::vector< std::string >  methods 
)
staticprivate

◆ createCustomReadOnlyMultiplex() [1/2]

Client M_AnalogueIo::Client::createCustomReadOnlyMultiplex ( std::shared_ptr< ddkit::actors::MonitorSession >  monitorSession,
IClient callbacks,
std::vector< std::string >  methods 
)
staticprivate

◆ createCustomReadOnlyMultiplex() [2/2]

Client M_AnalogueIo::Client::createCustomReadOnlyMultiplex ( std::shared_ptr< ddkit::actors::MonitorSession >  monitorSession,
std::map< std::string, std::vector< ddkit::callback::Base * >>  callbacks,
std::vector< std::string >  methods 
)
staticprivate

◆ createMonitor() [1/8]

template<typename T , typename IClientDerived >
std::enable_if< std::is_same< T, std::shared_ptr< ddkit::actors::MonitorSession > >::value &&!std::is_same< IClientDerived, std::vector< ddkit::callback::Base * > >::value, Client >::type M_AnalogueIo::Client::createMonitor ( domain,
IClientDerived &  callbacks 
)
static

Reading all serviceNames.

◆ createMonitor() [2/8]

template<typename T , typename IClientDerived >
static std::enable_if< std::is_same<T, int>::value && !std::is_same<IClientDerived, std::vector<ddkit::callback::Base*> >::value, Client>::type M_AnalogueIo::Client::createMonitor ( domain,
IClientDerived &  callbacks 
)
static

Reading all serviceNames.

◆ createMonitor() [3/8]

template<typename T , typename IClientDerived >
std::enable_if< std::is_same< T, std::shared_ptr< ddkit::actors::MonitorSession > >::value &&!std::is_same< IClientDerived, std::vector< ddkit::callback::Base * > >::value, Client >::type M_AnalogueIo::Client::createMonitor ( domain,
std::string  serviceName,
IClientDerived &  callbacks 
)
static

(only for monitors: Listener, Inspector / resulting clients are read-only!)

◆ createMonitor() [4/8]

template<typename T , typename IClientDerived >
static std::enable_if< std::is_same<T, int>::value && !std::is_same<IClientDerived, std::vector<ddkit::callback::Base*> >::value, Client>::type M_AnalogueIo::Client::createMonitor ( domain,
std::string  serviceName,
IClientDerived &  callbacks 
)
static

(only for monitors: Listener, Inspector / resulting clients are read-only!)

◆ createMonitor() [5/8]

template<typename T , typename IClientDerived >
static std::enable_if<std::is_same<T, std::shared_ptr<ddkit::actors::MonitorSession> >::value && std::is_same<IClientDerived, std::vector<ddkit::callback::Base*> >::value, Client>::type M_AnalogueIo::Client::createMonitor ( monitorSession,
IClientDerived &  callbacks 
)
static

Reading all serviceNames.

◆ createMonitor() [6/8]

template<typename T , typename IClientDerived >
static std::enable_if< std::is_same<T, std::shared_ptr<ddkit::actors::MonitorSession> >::value && !std::is_same<IClientDerived, std::vector<ddkit::callback::Base*> >::value, Client>::type M_AnalogueIo::Client::createMonitor ( monitorSession,
IClientDerived &  callbacks 
)
static

Reading all serviceNames.

◆ createMonitor() [7/8]

template<typename T , typename IClientDerived >
static std::enable_if< std::is_same<T, std::shared_ptr<ddkit::actors::MonitorSession> >::value && std::is_same<IClientDerived, std::vector<ddkit::callback::Base*> >::value, Client>::type M_AnalogueIo::Client::createMonitor ( monitorSession,
std::string  serviceName,
IClientDerived &  callbacks 
)
static

(only for monitors: Listener, Inspector / resulting clients are read-only!)

◆ createMonitor() [8/8]

template<typename T , typename IClientDerived >
static std::enable_if< std::is_same<T, std::shared_ptr<ddkit::actors::MonitorSession> >::value && !std::is_same<IClientDerived, std::vector<ddkit::callback::Base*> >::value, Client>::type M_AnalogueIo::Client::createMonitor ( monitorSession,
std::string  serviceName,
IClientDerived &  callbacks 
)
static

(only for monitors: Listener, Inspector / resulting clients are read-only!)

◆ createWriteOnly() [1/2]

Client M_AnalogueIo::Client::createWriteOnly ( int  domain,
std::string  serviceName 
)
static

static int domain

◆ createWriteOnly() [2/2]

Client M_AnalogueIo::Client::createWriteOnly ( std::shared_ptr< ddkit::actors::Session >  session,
std::string  serviceName 
)
static

static std::shared_ptr<ddkit::actors::Session> session

◆ getMonitorSession()

std::shared_ptr< ddkit::actors::MonitorSession > M_AnalogueIo::Client::getMonitorSession ( )

◆ getSession()

std::shared_ptr< ddkit::actors::Session > M_AnalogueIo::Client::getSession ( )

◆ invalidate()

void M_AnalogueIo::Client::invalidate ( )

◆ isCheckMostDerivedClassType() [1/2]

bool M_AnalogueIo::Client::isCheckMostDerivedClassType ( ddkit::actors::MonitorSession &  monitorSession)
staticprivate

◆ isCheckMostDerivedClassType() [2/2]

bool M_AnalogueIo::Client::isCheckMostDerivedClassType ( ddkit::actors::Session &  session)
staticprivate

◆ isValid()

bool M_AnalogueIo::Client::isValid ( ) const

true, if dds-able (false, if default-constructed or Session destructed)

◆ operator->()

IServicePtr M_AnalogueIo::Client::operator-> ( )

call operations on matching Services

◆ setName()

void M_AnalogueIo::Client::setName ( std::string  clientName)

set client-display-name

◆ waitUntilConnected()

void M_AnalogueIo::Client::waitUntilConnected ( )

block, until the corresponding service appears.

Member Data Documentation

◆ m_actor

ddkit::actors::ActorWeakPtr M_AnalogueIo::Client::m_actor
private

◆ m_discardObserverOnDestruction

bool M_AnalogueIo::Client::m_discardObserverOnDestruction
private

◆ m_discardSenderOnDestruction

bool M_AnalogueIo::Client::m_discardSenderOnDestruction
private

◆ m_monitorSession

std::shared_ptr<ddkit::actors::MonitorSession> M_AnalogueIo::Client::m_monitorSession
private

◆ m_session

std::shared_ptr<ddkit::actors::Session> M_AnalogueIo::Client::m_session
private