00001 /* 00002 * This program is free software; you can redistribute it and/or modify 00003 * it under the terms of the GNU General Public License as published by 00004 * the Free Software Foundation; either version 2 of the License, or 00005 * (at your option) any later version. 00006 * 00007 * This program is distributed in the hope that it will be useful, 00008 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00009 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00010 * GNU General Public License for more details. 00011 * 00012 * You should have received a copy of the GNU General Public License 00013 * along with this program; if not, write to the Free Software 00014 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00015 * 00016 * (c)Copyright 2006 Hewlett-Packard Development Company, LP. 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 ; // instance number 00067 int m_sub_id ; // id used when header body access 00068 int m_begin ; // start of storage 00069 int m_size ; // size of storage 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