freesecs::hsms_sm_t Class Reference

HSMS SM base class. Inherits from event_pump_t for thread-safe event handling. Defines HSMS SM datatypes and signals. Defines abstract interface to open/close tcp cnx and to send data/recv over tcp. NOTE: T9 timeout is not managed with FREESECS HSMS module. More...

#include <hsms_statemachine.h>

Inheritance diagram for freesecs::hsms_sm_t:

Inheritance graph
[legend]
Collaboration diagram for freesecs::hsms_sm_t:

Collaboration graph
[legend]
List of all members.

Public Types

typedef hsms_socket_t::data_t data_t
typedef hsms_socket_t::pdata_t pdata_t

Public Member Functions

 hsms_sm_t ()
virtual ~hsms_sm_t ()
hsms_state_et get_state () const
 HSMS SM state getter.

Public Attributes

signal_one_arg_t< hsms_state_etstate_signal
 HSMS SM state change signal.

Protected Member Functions

virtual int open_tcp ()=0
 Abstract interface to open tcp cnx.
virtual int close_tcp ()=0
 Abstract interface to close tcp cnx.
virtual int send_over_tcp (pdata_t)=0
 Abstract interface to send data over tcp cnx.
virtual int recv_from_tcp (pdata_t)=0
 Abstract interface to reveive data over tcp cnx.
virtual void hsms_msg_received (pdata_t)=0
 Abstract interface to handle hsms msg received.
void close_cnx ()
 Closes tcp cnx and stops all timers associated with HSMS SM.
virtual int process (const hsms_event_t &)=0
 Abstract interface to HSMS SM implementation.
int t5_handler ()
int t6_handler ()
int t7_handler ()
int t8_handler ()
int linktest_handler ()

Protected Attributes

hsms_state_et _state
ms_timer_t t5
ms_timer_t t6
ms_timer_t t7
ms_timer_t t8
ms_timer_t linktest_timer
unsigned short _tid
 Transaction ID Incrementally changed transaction counter. There's common counter for both control transactions and data transactions.

Detailed Description

HSMS SM base class. Inherits from event_pump_t for thread-safe event handling. Defines HSMS SM datatypes and signals. Defines abstract interface to open/close tcp cnx and to send data/recv over tcp. NOTE: T9 timeout is not managed with FREESECS HSMS module.

Definition at line 114 of file hsms_statemachine.h.


Member Function Documentation

virtual int freesecs::hsms_sm_t::open_tcp (  )  [protected, pure virtual]

Abstract interface to open tcp cnx.

See also:
hsms_cnx_t

Implemented in freesecs::hsms_cnx_t.

Referenced by freesecs::passive_hsms_sm_t::z0_0(), and freesecs::active_hsms_sm_t::z8().

Here is the caller graph for this function:

virtual int freesecs::hsms_sm_t::close_tcp (  )  [protected, pure virtual]

Abstract interface to close tcp cnx.

See also:
hsms_cnx_t

Implemented in freesecs::hsms_cnx_t.

Referenced by close_cnx().

Here is the caller graph for this function:

virtual int freesecs::hsms_sm_t::send_over_tcp ( pdata_t   )  [protected, pure virtual]

Abstract interface to send data over tcp cnx.

See also:
hsms_cnx_t

Referenced by freesecs::passive_hsms_sm_t::z1(), freesecs::active_hsms_sm_t::z1_0(), freesecs::passive_hsms_sm_t::z2(), freesecs::active_hsms_sm_t::z3(), freesecs::passive_hsms_sm_t::z3(), freesecs::active_hsms_sm_t::z4(), freesecs::passive_hsms_sm_t::z4(), freesecs::active_hsms_sm_t::z5(), freesecs::passive_hsms_sm_t::z5(), freesecs::active_hsms_sm_t::z9(), and freesecs::passive_hsms_sm_t::z9().

Here is the caller graph for this function:

virtual int freesecs::hsms_sm_t::recv_from_tcp ( pdata_t   )  [protected, pure virtual]

Abstract interface to reveive data over tcp cnx.

See also:
hsms_cnx_t

Referenced by freesecs::active_hsms_sm_t::z12(), freesecs::passive_hsms_sm_t::z12(), freesecs::active_hsms_sm_t::z1_0(), and freesecs::active_hsms_sm_t::z2_0().

Here is the caller graph for this function:

virtual void freesecs::hsms_sm_t::hsms_msg_received ( pdata_t   )  [protected, pure virtual]

Abstract interface to handle hsms msg received.

See also:
hsms_cnx_t

Referenced by freesecs::active_hsms_sm_t::z6(), and freesecs::passive_hsms_sm_t::z6().

Here is the caller graph for this function:


The documentation for this class was generated from the following files:
Generated on Fri Oct 3 15:30:30 2008 for FREESECS hsms by  doxygen 1.5.1