00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_OM_PI_H
00018 #define AXIS2_OM_PI_H
00019
00025 #include <axis2_om_node.h>
00026 #include <axis2_om_output.h>
00027
00028 #ifdef __cplusplus
00029 extern "C"
00030 {
00031 #endif
00032
00033 struct axis2_om_processing_instruction;
00034 struct axis2_om_processing_instruction_ops;
00035
00036
00048 AXIS2_DECLARE_DATA typedef struct axis2_om_processing_instruction_ops
00049 {
00056 axis2_status_t (AXIS2_CALL *free)
00057 (struct axis2_om_processing_instruction * om_pi,
00058 axis2_env_t **env);
00066 axis2_status_t (AXIS2_CALL *set_value)
00067 (struct axis2_om_processing_instruction *om_pi,
00068 axis2_env_t **env,
00069 const axis2_char_t* value);
00079 axis2_status_t (AXIS2_CALL *set_target)
00080 (struct axis2_om_processing_instruction *om_pi,
00081 axis2_env_t **env,
00082 const axis2_char_t* target);
00089 axis2_char_t* (AXIS2_CALL *get_target)
00090 (struct axis2_om_processing_instruction *om_pi,
00091 axis2_env_t **env);
00098 axis2_char_t* (AXIS2_CALL *get_value)
00099 (struct axis2_om_processing_instruction *om_pi,
00100 axis2_env_t **env);
00101
00110 axis2_status_t (AXIS2_CALL *serialize)
00111 (struct axis2_om_processing_instruction *om_pi,
00112 axis2_env_t **env, axis2_om_output_t *om_output);
00113
00114
00115 } axis2_om_processing_instruction_ops_t;
00116
00121 typedef struct axis2_om_processing_instruction
00122 {
00124 axis2_om_processing_instruction_ops_t *ops;
00125
00126 } axis2_om_processing_instruction_t;
00127
00139 AXIS2_DECLARE(axis2_om_processing_instruction_t *)
00140 axis2_om_processing_instruction_create (axis2_env_t **env,
00141 axis2_om_node_t * parent,
00142 const axis2_char_t * target,
00143 const axis2_char_t * value,
00144 axis2_om_node_t ** node);
00145
00146
00148 #define AXIS2_OM_PROCESSING_INSTRUCTION_FREE(pi, env) \
00149 ((pi)->ops->free(pi, env))
00151 #define AXIS2_OM_PROCESSING_INSTRUCION_SET_VALUE(pi, env, value) \
00152 ((pi)->ops->set_value(pi,env,value))
00154 #define AXIS2_OM_PROCESSING_INSTRUCTION_GET_VALUE(pi, env) \
00155 ((pi)->ops->get_value(pi, env))
00157 #define AXIS2_OM_PROCESSING_INSTRUCION_SET_TARGET(pi, env, value) \
00158 ((pi)->ops->set_target(pi, env, value))
00160 #define AXIS2_OM_PROCESSING_INSTRUCTION_GET_TARGET(pi, env) \
00161 ((pi)->ops->get_target(pi, env))
00163 #define AXIS2_OM_PROCESSING_INSTRUCTION_SERIALIZE(pi, env, om_output) \
00164 ((pi)->ops->serialize(pi, env, om_output))
00165
00167 #ifdef __cplusplus
00168 }
00169 #endif
00170
00171 #endif