Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Attributes | List of all members
can::AsioDriver< Socket > Class Template Referenceabstract

#include <asio_base.h>

Inheritance diagram for can::AsioDriver< Socket >:
Inheritance graph
[legend]

Public Member Functions

virtual FrameListenerConstSharedPtr createMsgListener (const FrameDelegate &delegate)
 
virtual FrameListenerConstSharedPtr createMsgListener (const Frame::Header &h, const FrameDelegate &delegate)
 
virtual StateListenerConstSharedPtr createStateListener (const StateDelegate &delegate)
 
State getState ()
 
virtual void run ()
 
virtual bool send (const Frame &msg)
 
virtual void shutdown ()
 
virtual ~AsioDriver ()
 
- Public Member Functions inherited from can::DriverInterface
virtual bool doesLoopBack () const =0
 
virtual bool init (const std::string &device, bool loopback)=0
 
virtual bool recover ()=0
 
virtual bool translateError (unsigned int internal_error, std::string &str)=0
 
virtual ~DriverInterface ()
 
- Public Member Functions inherited from can::CommInterface
virtual ~CommInterface ()
 
- Public Member Functions inherited from can::StateInterface
virtual ~StateInterface ()
 

Protected Member Functions

 AsioDriver ()
 
void dispatchFrame (const Frame &msg)
 
virtual bool enqueue (const Frame &msg)=0
 
void frameReceived (const boost::system::error_code &error)
 
void setDriverState (State::DriverState state)
 
void setErrorCode (const boost::system::error_code &error)
 
void setInternalError (unsigned int internal_error)
 
void setNotReady ()
 
virtual void triggerReadSome ()=0
 

Protected Attributes

Frame input_
 
boost::asio::io_service io_service_
 
Socket socket_
 
boost::asio::strand strand_
 

Private Types

typedef FilteredDispatcher< const unsigned int, CommInterface::FrameListenerFrameDispatcher
 
typedef SimpleDispatcher< StateInterface::StateListenerStateDispatcher
 

Private Attributes

FrameDispatcher frame_dispatcher_
 
boost::mutex socket_mutex_
 
State state_
 
StateDispatcher state_dispatcher_
 
boost::mutex state_mutex_
 

Additional Inherited Members

- Public Types inherited from can::CommInterface
typedef fastdelegate::FastDelegate1< const Frame & > FrameDelegate
 
typedef Listener< const FrameDelegate, const Frame & > FrameListener
 
typedef FrameListener::ListenerConstSharedPtr FrameListenerConstSharedPtr
 
- Public Types inherited from can::StateInterface
typedef fastdelegate::FastDelegate1< const State & > StateDelegate
 
typedef Listener< const StateDelegate, const State & > StateListener
 
typedef StateListener::ListenerConstSharedPtr StateListenerConstSharedPtr
 

Detailed Description

template<typename Socket>
class can::AsioDriver< Socket >

Definition at line 14 of file asio_base.h.

Member Typedef Documentation

template<typename Socket>
typedef FilteredDispatcher<const unsigned int, CommInterface::FrameListener> can::AsioDriver< Socket >::FrameDispatcher
private

Definition at line 15 of file asio_base.h.

template<typename Socket>
typedef SimpleDispatcher<StateInterface::StateListener> can::AsioDriver< Socket >::StateDispatcher
private

Definition at line 16 of file asio_base.h.

Constructor & Destructor Documentation

template<typename Socket>
can::AsioDriver< Socket >::AsioDriver ( )
inlineprotected

Definition at line 76 of file asio_base.h.

template<typename Socket>
virtual can::AsioDriver< Socket >::~AsioDriver ( )
inlinevirtual

Definition at line 81 of file asio_base.h.

Member Function Documentation

template<typename Socket>
virtual FrameListenerConstSharedPtr can::AsioDriver< Socket >::createMsgListener ( const FrameDelegate delegate)
inlinevirtual

acquire a listener for the specified delegate, that will get called for all messages

Parameters
[in]delegatedelegate to be bound by the listener
Returns
managed pointer to listener

Implements can::CommInterface.

Definition at line 119 of file asio_base.h.

template<typename Socket>
virtual FrameListenerConstSharedPtr can::AsioDriver< Socket >::createMsgListener ( const Frame::Header ,
const FrameDelegate delegate 
)
inlinevirtual

acquire a listener for the specified delegate, that will get called for messages with demanded ID

Parameters
[in]headerCAN header to restrict listener on
[in]delegatedelegate to be bound listener
Returns
managed pointer to listener

Implements can::CommInterface.

Definition at line 122 of file asio_base.h.

template<typename Socket>
virtual StateListenerConstSharedPtr can::AsioDriver< Socket >::createStateListener ( const StateDelegate delegate)
inlinevirtual

acquire a listener for the specified delegate, that will get called for all state changes

Parameters
[in]delegatedelegate to be bound by the listener
Returns
managed pointer to listener

Implements can::StateInterface.

Definition at line 125 of file asio_base.h.

template<typename Socket>
void can::AsioDriver< Socket >::dispatchFrame ( const Frame msg)
inlineprotected

Definition at line 37 of file asio_base.h.

template<typename Socket>
virtual bool can::AsioDriver< Socket >::enqueue ( const Frame msg)
protectedpure virtual

Implemented in can::SocketCANInterface.

template<typename Socket>
void can::AsioDriver< Socket >::frameReceived ( const boost::system::error_code &  error)
inlineprotected

Definition at line 66 of file asio_base.h.

template<typename Socket>
State can::AsioDriver< Socket >::getState ( )
inlinevirtual
Returns
current state of driver

Implements can::DriverInterface.

Definition at line 83 of file asio_base.h.

template<typename Socket>
virtual void can::AsioDriver< Socket >::run ( )
inlinevirtual

Implements can::DriverInterface.

Definition at line 87 of file asio_base.h.

template<typename Socket>
virtual bool can::AsioDriver< Socket >::send ( const Frame msg)
inlinevirtual

enqueue frame for sending

Parameters
[in]msgmessage to be enqueued
Returns
true if frame was enqueued succesfully, otherwise false

Implements can::CommInterface.

Definition at line 107 of file asio_base.h.

template<typename Socket>
void can::AsioDriver< Socket >::setDriverState ( State::DriverState  state)
inlineprotected

Definition at line 55 of file asio_base.h.

template<typename Socket>
void can::AsioDriver< Socket >::setErrorCode ( const boost::system::error_code &  error)
inlineprotected

Definition at line 40 of file asio_base.h.

template<typename Socket>
void can::AsioDriver< Socket >::setInternalError ( unsigned int  internal_error)
inlineprotected

Definition at line 47 of file asio_base.h.

template<typename Socket>
void can::AsioDriver< Socket >::setNotReady ( )
inlineprotected

Definition at line 62 of file asio_base.h.

template<typename Socket>
virtual void can::AsioDriver< Socket >::shutdown ( )
inlinevirtual

shutdown interface

Returns
true if shutdown was succesful, false otherwise

Implements can::DriverInterface.

Definition at line 111 of file asio_base.h.

template<typename Socket>
virtual void can::AsioDriver< Socket >::triggerReadSome ( )
protectedpure virtual

Implemented in can::SocketCANInterface.

Member Data Documentation

template<typename Socket>
FrameDispatcher can::AsioDriver< Socket >::frame_dispatcher_
private

Definition at line 17 of file asio_base.h.

template<typename Socket>
Frame can::AsioDriver< Socket >::input_
protected

Definition at line 32 of file asio_base.h.

template<typename Socket>
boost::asio::io_service can::AsioDriver< Socket >::io_service_
protected

Definition at line 25 of file asio_base.h.

template<typename Socket>
Socket can::AsioDriver< Socket >::socket_
protected

Definition at line 31 of file asio_base.h.

template<typename Socket>
boost::mutex can::AsioDriver< Socket >::socket_mutex_
private

Definition at line 22 of file asio_base.h.

template<typename Socket>
State can::AsioDriver< Socket >::state_
private

Definition at line 20 of file asio_base.h.

template<typename Socket>
StateDispatcher can::AsioDriver< Socket >::state_dispatcher_
private

Definition at line 18 of file asio_base.h.

template<typename Socket>
boost::mutex can::AsioDriver< Socket >::state_mutex_
private

Definition at line 21 of file asio_base.h.

template<typename Socket>
boost::asio::strand can::AsioDriver< Socket >::strand_
protected

Definition at line 29 of file asio_base.h.


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


socketcan_interface
Author(s): Mathias Lüdtke
autogenerated on Fri May 14 2021 02:59:39