00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "C_CheckPresenceAction.hpp"
00021 #include "GeneratorTrace.hpp"
00022 #include "GeneratorError.h"
00023
00024
00025 C_CheckPresenceAction::C_CheckPresenceAction(T_CmdAction P_cmdAction,
00026 T_pControllers P_controllers)
00027 : C_CommandAction (P_cmdAction, P_controllers) {
00028 }
00029
00030
00031 C_CheckPresenceAction::~C_CheckPresenceAction() {
00032 }
00033
00034
00035 T_exeCode C_CheckPresenceAction::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
00044 L_check_result
00045 = P_msg->check_field_presence
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 "Presence check error on call with session-id ["
00053 << P_callCtxt->m_id_table[P_pCmd->m_channel_id] << "]");
00054 switch (m_check_behaviour) {
00055 case E_CHECK_BEHAVIOUR_ERROR :
00056 L_exeCode = E_EXE_ERROR_CHECK ;
00057 break;
00058 case E_CHECK_BEHAVIOUR_ABORT:
00059 L_exeCode = E_EXE_ABORT_CHECK ;
00060 break;
00061 default:
00062 break;
00063 }
00064 }
00065
00066 return (L_exeCode);
00067 }
00068
00069
00070
00071
00072