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