00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "C_CheckOrderAction.hpp"
00021 #include "GeneratorTrace.hpp"
00022 #include "GeneratorError.h"
00023
00024 C_CheckOrderAction::C_CheckOrderAction(T_CmdAction P_cmdAction,
00025 T_pControllers P_controllers)
00026 : C_CommandAction (P_cmdAction, P_controllers) {
00027 }
00028
00029 C_CheckOrderAction::~C_CheckOrderAction() {
00030 }
00031
00032
00033 T_exeCode C_CheckOrderAction::execute(T_pCmd_scenario P_pCmd,
00034 T_pCallContext P_callCtxt,
00035 C_MessageFrame *P_msg,
00036 C_MessageFrame *P_ref) {
00037
00038 T_exeCode L_exeCode = E_EXE_NOERROR ;
00039 bool L_check_result ;
00040
00041
00042 L_check_result
00043 = P_msg->check_field_order
00044 (m_id,
00045 m_check_behaviour,
00046 m_position);
00047 if (L_check_result == false) {
00048 GEN_LOG_EVENT(LOG_LEVEL_TRAFFIC_ERR,
00049 "check error on call with session-id ["
00050 << P_callCtxt->m_id_table[P_pCmd->m_channel_id] << "]");
00051
00052
00053 switch (m_check_behaviour) {
00054 case E_CHECK_BEHAVIOUR_ERROR :
00055 L_exeCode = E_EXE_ERROR_CHECK ;
00056 break;
00057 case E_CHECK_BEHAVIOUR_ABORT:
00058 L_exeCode = E_EXE_ABORT_CHECK ;
00059 break;
00060 default:
00061 break;
00062 }
00063
00064 }
00065
00066 return (L_exeCode);
00067 }
00068
00069
00070
00071
00072