SOL4_CLASS_START( aag_3::smpp_smsc::a_channel_t )

   SOL4_SUPER_CLASS( so_sysconf_2::agent_with_fatal_state_t )

   SOL4_MSG_START( msg_bind_resp_timeout,
      aag_3::smpp_smsc::a_channel_t::msg_bind_resp_timeout )

      SOL4_MSG_CHECKER( a_channel_t::msg_bind_resp_timeout::check )
   SOL4_MSG_FINISH()

   SOL4_MSG_START( msg_check_channel_activity,
      aag_3::smpp_smsc::a_channel_t::msg_check_channel_activity )
   SOL4_MSG_FINISH()

   SOL4_MSG_START( msg_shutdown,
      aag_3::smpp_smsc::a_channel_t::msg_shutdown )
   SOL4_MSG_FINISH()

   SOL4_MSG_START( msg_unbind_resp_timeout,
      aag_3::smpp_smsc::a_channel_t::msg_unbind_resp_timeout )
      SOL4_MSG_CHECKER( a_channel_t::msg_unbind_resp_timeout::check )
   SOL4_MSG_FINISH()

   SOL4_MSG_START( msg_reconnect,
      aag_3::smpp_smsc::a_channel_t::msg_reconnect )
   SOL4_MSG_FINISH()

   SOL4_MSG_START( msg_tell_state,
      aag_3::smpp_smsc::a_channel_t::msg_tell_state )
   SOL4_MSG_FINISH()

   SOL4_MSG_START( msg_operation_timer,
      aag_3::smpp_smsc::a_channel_t::msg_operation_timer )
   SOL4_MSG_FINISH()

   SOL4_MSG_START( msg_imit_deliver,
         aag_3::smpp_smsc::a_channel_t::msg_imit_deliver )
      SOL4_MSG_FIELD( m_count )
      SOL4_MSG_FIELD( m_sequence_number )
      SOL4_MSG_FIELD( m_source_addr )
      SOL4_MSG_FIELD( m_dest_addr )
      SOL4_MSG_FIELD( m_data )
      SOL4_MSG_FIELD( m_dcs )
      SOL4_MSG_FIELD( m_esm_class )
      SOL4_MSG_FIELD( m_protocol_id )

      SOL4_MSG_CHECKER( a_channel_t::msg_imit_deliver::check )
   SOL4_MSG_FINISH()

   SOL4_MSG_START( msg_imit_delivery_receipt,
         aag_3::smpp_smsc::a_channel_t::msg_imit_delivery_receipt )
      SOL4_MSG_FIELD( m_short_message )
      SOL4_MSG_FIELD( m_message_id )
      SOL4_MSG_FIELD( m_message_state )
      SOL4_MSG_FIELD( m_network_error_code )

      SOL4_MSG_CHECKER( a_channel_t::msg_imit_delivery_receipt::check )
   SOL4_MSG_FINISH()

   SOL4_MSG_START( msg_imitation_mode,
         aag_3::smpp_smsc::a_channel_t::msg_imitation_mode )

      SOL4_MSG_FIELD( m_submit_sm_resp_command_status )
      SOL4_MSG_FIELD( m_message_id )

      SOL4_MSG_CHECKER( a_channel_t::msg_imitation_mode::check )
   SOL4_MSG_FINISH()

   MBAPI3_ROUTER_SOL4_MSG( msg_query_state,
      aag_3::smpp_smsc::a_channel_t::msg_query_state )

   MBAPI3_ROUTER_SOL4_MSG( msg_send,
      aag_3::smpp_smsc::a_channel_t::msg_send )

   SOL4_MSG_START( msg_update_gemont_data,
         aag_3::smpp_smsc::a_channel_t::msg_update_gemont_data )
   SOL4_MSG_FINISH()

   SOL4_EVENT( evt_start )
   SOL4_EVENT_STC( evt_client_connected,
      so_4::rt::comm::msg_client_connected )
   SOL4_EVENT_STC( evt_client_disconnected,
      so_4::rt::comm::msg_client_disconnected )
   SOL4_EVENT_STC( evt_bind_resp_timeout,
      aag_3::smpp_smsc::a_channel_t::msg_bind_resp_timeout )
   SOL4_EVENT_STC( evt_connect_fail,
      so_4::rt::comm::msg_fail )
   SOL4_EVENT_STC( evt_raw_package,
      so_4::rt::comm::msg_raw_package )
   SOL4_EVENT( evt_check_channel_activity )
   SOL4_EVENT( evt_shutdown_when_unbound )
   SOL4_EVENT( evt_shutdown_when_bound )
   SOL4_EVENT( evt_disconnection_when_wait_unbind )
   SOL4_EVENT_STC( evt_unbind_resp_timeout,
      aag_3::smpp_smsc::a_channel_t::msg_unbind_resp_timeout )

   SOL4_EVENT_STC( evt_query_state_when_unbound,
      aag_3::smpp_smsc::a_channel_t::msg_query_state )
   SOL4_EVENT( evt_tell_state_when_unbound )
   SOL4_EVENT_STC( evt_query_state_when_bound,
      aag_3::smpp_smsc::a_channel_t::msg_query_state )
   SOL4_EVENT( evt_tell_state_when_bound )

   SOL4_EVENT_STC( evt_send,
      aag_3::smpp_smsc::a_channel_t::msg_send )
   SOL4_EVENT_STC( evt_send_when_unbound,
      aag_3::smpp_smsc::a_channel_t::msg_send )

   SOL4_EVENT( evt_reconnect )
   SOL4_EVENT( evt_operation_timer )
   SOL4_EVENT_STC( evt_imit_deliver,
      aag_3::smpp_smsc::a_channel_t::msg_imit_deliver )
   SOL4_EVENT_STC( evt_imit_delivery_receipt,
      aag_3::smpp_smsc::a_channel_t::msg_imit_delivery_receipt )
   SOL4_EVENT_STC( evt_imitation_mode_when_closed,
      aag_3::smpp_smsc::a_channel_t::msg_imitation_mode )
   SOL4_EVENT_STC( evt_imitation_mode_when_bound,
      aag_3::smpp_smsc::a_channel_t::msg_imitation_mode )
   SOL4_EVENT_STC( evt_send_when_imitation_mode,
      aag_3::smpp_smsc::a_channel_t::msg_send )

   SOL4_EVENT( evt_update_gemont_data )

   SOL4_INITIAL_STATE( st_closed )

   SOL4_STATE_START( st_closed )
      SOL4_STATE_EVENT( evt_start )
      SOL4_STATE_EVENT( evt_client_connected )
      SOL4_STATE_EVENT( evt_connect_fail )
      SOL4_STATE_EVENT( evt_shutdown_when_unbound )
      SOL4_STATE_EVENT( evt_query_state_when_unbound )
      SOL4_STATE_EVENT( evt_tell_state_when_unbound )
      SOL4_STATE_EVENT( evt_send_when_unbound )
      SOL4_STATE_EVENT( evt_imit_deliver )
      SOL4_STATE_EVENT( evt_imit_delivery_receipt )
      SOL4_STATE_EVENT( evt_imitation_mode_when_closed )

      SOL4_STATE_EVENT( evt_update_gemont_data )

      SOL4_STATE_ON_ENTER( on_enter_st_closed )
   SOL4_STATE_FINISH()

   SOL4_STATE_START( st_open )
      SOL4_STATE_EVENT( evt_client_disconnected )
      SOL4_STATE_EVENT( evt_bind_resp_timeout )
      SOL4_STATE_EVENT( evt_raw_package )
      SOL4_STATE_EVENT( evt_check_channel_activity )
      SOL4_STATE_EVENT( evt_shutdown_when_unbound )
      SOL4_STATE_EVENT( evt_query_state_when_unbound )
      SOL4_STATE_EVENT( evt_tell_state_when_unbound )
      SOL4_STATE_EVENT( evt_send_when_unbound )
      SOL4_STATE_EVENT( evt_imit_deliver )
      SOL4_STATE_EVENT( evt_imit_delivery_receipt )

      SOL4_STATE_EVENT( evt_update_gemont_data )

      SOL4_STATE_ON_ENTER( on_enter_st_open )
   SOL4_STATE_FINISH()

   SOL4_STATE_START( st_bound_tx )
      SOL4_STATE_EVENT( evt_client_disconnected )
      SOL4_STATE_EVENT( evt_raw_package )
      SOL4_STATE_EVENT( evt_check_channel_activity )
      SOL4_STATE_EVENT( evt_shutdown_when_bound )
      SOL4_STATE_EVENT( evt_query_state_when_bound )
      SOL4_STATE_EVENT( evt_tell_state_when_bound )
      SOL4_STATE_EVENT( evt_send )
      SOL4_STATE_EVENT( evt_reconnect )
      SOL4_STATE_EVENT( evt_operation_timer )
      SOL4_STATE_EVENT( evt_imit_deliver )
      SOL4_STATE_EVENT( evt_imit_delivery_receipt )
      SOL4_STATE_EVENT( evt_imitation_mode_when_bound )

      SOL4_STATE_EVENT( evt_update_gemont_data )

      SOL4_STATE_ON_ENTER( on_enter_st_bound_tx )
   SOL4_STATE_FINISH()

   SOL4_STATE_START( st_bound_rx )
      SOL4_STATE_EVENT( evt_client_disconnected )
      SOL4_STATE_EVENT( evt_raw_package )
      SOL4_STATE_EVENT( evt_check_channel_activity )
      SOL4_STATE_EVENT( evt_shutdown_when_bound )
      SOL4_STATE_EVENT( evt_query_state_when_bound )
      SOL4_STATE_EVENT( evt_tell_state_when_bound )
      SOL4_STATE_EVENT( evt_reconnect )
      SOL4_STATE_EVENT( evt_operation_timer )
      SOL4_STATE_EVENT( evt_imit_deliver )
      SOL4_STATE_EVENT( evt_imit_delivery_receipt )
      SOL4_STATE_EVENT( evt_imitation_mode_when_bound )

      SOL4_STATE_EVENT( evt_update_gemont_data )

      SOL4_STATE_ON_ENTER( on_enter_st_bound_rx )
   SOL4_STATE_FINISH()

   SOL4_STATE_START( st_bound_trx )
      SOL4_STATE_EVENT( evt_client_disconnected )
      SOL4_STATE_EVENT( evt_raw_package )
      SOL4_STATE_EVENT( evt_check_channel_activity )
      SOL4_STATE_EVENT( evt_shutdown_when_bound )
      SOL4_STATE_EVENT( evt_send )
      SOL4_STATE_EVENT( evt_query_state_when_bound )
      SOL4_STATE_EVENT( evt_tell_state_when_bound )
      SOL4_STATE_EVENT( evt_reconnect )
      SOL4_STATE_EVENT( evt_operation_timer )
      SOL4_STATE_EVENT( evt_imit_deliver )
      SOL4_STATE_EVENT( evt_imit_delivery_receipt )
      SOL4_STATE_EVENT( evt_imitation_mode_when_bound )

      SOL4_STATE_EVENT( evt_update_gemont_data )

      SOL4_STATE_ON_ENTER( on_enter_st_bound_trx )
   SOL4_STATE_FINISH()

   SOL4_STATE_START( st_wait_unbind_resp )
      SOL4_STATE_EVENT( evt_disconnection_when_wait_unbind )
      SOL4_STATE_EVENT( evt_unbind_resp_timeout )
      SOL4_STATE_EVENT( evt_raw_package )
      SOL4_STATE_EVENT( evt_send_when_unbound )
      SOL4_STATE_EVENT( evt_tell_state_when_unbound )

      SOL4_STATE_EVENT( evt_update_gemont_data )

      SOL4_STATE_ON_ENTER( on_enter_st_wait_unbind_resp )
   SOL4_STATE_FINISH()

   SOL4_STATE_START( st_imitation_mode )
      SOL4_STATE_EVENT( evt_shutdown_when_unbound )
      SOL4_STATE_EVENT( evt_imit_deliver )
      SOL4_STATE_EVENT( evt_imit_delivery_receipt )
      SOL4_STATE_EVENT( evt_send_when_imitation_mode )

      SOL4_STATE_EVENT( evt_update_gemont_data )

      SOL4_STATE_EVENT( evt_imitation_mode_when_closed )
   SOL4_STATE_FINISH()

   SOL4_STATE_START( st_shutdown )
      SOL4_STATE_ON_ENTER( on_enter_st_shutdown )
   SOL4_STATE_FINISH()

SOL4_CLASS_FINISH()

Hosted by uCoz