00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _C_COMMANDACTION_H
00021 #define _C_COMMANDACTION_H
00022
00023
00024 #include "C_MessageFrame.hpp"
00025 #include "C_DataLogControl.hpp"
00026 #include "C_GeneratorStats.hpp"
00027 #include "C_ExternalDataControl.hpp"
00028 #include "C_CallContext.hpp"
00029 #include "C_ChannelControl.hpp"
00030 #include "C_Scenario.hpp"
00031
00032 class C_ScenarioControl ;
00033
00034 typedef struct _controllers_struct {
00035 C_DataLogControl *m_log ;
00036 C_ScenarioControl *m_scenario_control;
00037 C_GeneratorStats *m_stat ;
00038 C_ExternalDataControl *m_external_data ;
00039 unsigned int m_check_mask ;
00040 T_CheckBehaviour m_check_behaviour ;
00041 C_ChannelControl *m_channel_ctrl ;
00042 } T_Controllers, *T_pControllers ;
00043
00044 class C_CommandAction {
00045
00046 public:
00047
00048 C_CommandAction(T_CmdAction P_ActionData,
00049 T_pControllers P_controllers) ;
00050
00051 void update_log_controller(C_DataLogControl *P_log) ;
00052
00053 virtual ~C_CommandAction() ;
00054
00055 virtual T_exeCode execute (T_pCmd_scenario P_pCmd,
00056 T_pCallContext P_callCtxt,
00057 C_MessageFrame *P_msg,
00058 C_MessageFrame *P_ref) = 0 ;
00059
00060 protected:
00061
00062 T_action_type m_type ;
00063 char *m_args ;
00064 int m_id ;
00065 int m_mem_id ;
00066 int m_instance_id ;
00067 int m_sub_id ;
00068 int m_begin ;
00069 int m_size ;
00070 unsigned char *m_pattern ;
00071 int m_pattern_size ;
00072 int m_position ;
00073 T_pStringExpression m_string_expr ;
00074 T_CheckBehaviour m_check_behaviour ;
00075 int m_field_data_num ;
00076 C_RegExp *m_regexp_data ;
00077 T_ExternalMethod m_external_method ;
00078
00079
00080 T_Controllers m_controllers ;
00081
00082
00083
00084 } ;
00085
00086 typedef C_CommandAction *T_pC_CommandAction ;
00087
00088
00089 #endif // _C_COMMANDACTION_H
00090
00091
00092
00093