Main Page | Modules | Class List | Directories | File List | Class Members | File Members

axis2_om_attribute.h

Go to the documentation of this file.
00001 /*
00002 * Copyright 2004,2005 The Apache Software Foundation.
00003 *
00004 * Licensed under the Apache License, Version 2.0 (the "License");
00005 * you may not use this file except in compliance with the License.
00006 * You may obtain a copy of the License at
00007 *
00008 *      http://www.apache.org/licenses/LICENSE-2.0
00009 *
00010 * Unless required by applicable law or agreed to in writing, software
00011 * distributed under the License is distributed on an "AS IS" BASIS,
00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013 * See the License for the specific language governing permissions and
00014 * limitations under the License.
00015 */
00016 
00017 #ifndef AXIS2_OM_ATTRIBUTE_H
00018 #define AXIS2_OM_ATTRIBUTE_H
00019 
00024 #include <axis2_env.h>
00025 #include <axis2_qname.h>
00026 #include <axis2_om_namespace.h>
00027 #include <axis2_om_output.h>
00028 
00029 #ifdef __cplusplus
00030 extern "C"
00031 {
00032 #endif
00033 
00034     struct axis2_om_attribute;
00035     struct axis2_om_attribute_ops;
00036 
00047  AXIS2_DECLARE_DATA   typedef struct axis2_om_attribute_ops
00048     {
00057         axis2_status_t 
00058         (AXIS2_CALL *free)(struct axis2_om_attribute *om_attribute,
00059                            axis2_env_t **env);
00060 
00069         axis2_qname_t * (AXIS2_CALL *get_qname)
00070                                 (struct axis2_om_attribute *om_attribute,
00071                                 axis2_env_t **env);
00072 
00081         int (AXIS2_CALL *serialize)(struct axis2_om_attribute *om_attribute,
00082                                     axis2_env_t **env,
00083                                     axis2_om_output_t *om_output);
00084        
00090         axis2_char_t* (AXIS2_CALL *get_localname)(
00091                                     struct axis2_om_attribute *om_attribute,
00092                                     axis2_env_t **env);
00099         axis2_char_t* (AXIS2_CALL *get_value)
00100                                     (struct axis2_om_attribute *om_attribute,
00101                                      axis2_env_t **env);
00108         axis2_om_namespace_t* (AXIS2_CALL *get_namespace)
00109                                    (struct axis2_om_attribute *om_attribute,
00110                                     axis2_env_t **env);
00111        
00118         axis2_status_t (AXIS2_CALL *set_localname)
00119                                     (struct axis2_om_attribute *om_attribute,
00120                                     axis2_env_t **env,
00121                                     const axis2_char_t *localname);
00122        
00130         axis2_status_t (AXIS2_CALL *set_value)
00131                                 (struct axis2_om_attribute *om_attribute,
00132                                 axis2_env_t **env,
00133                                 const axis2_char_t *value);
00134        
00142         axis2_status_t (AXIS2_CALL *set_namespace)
00143                                     (struct axis2_om_attribute *om_attribute,
00144                                     axis2_env_t **env,
00145                                     axis2_om_namespace_t *om_namespace);
00146                                                                                                                                                                                              
00147 
00148 
00149     } axis2_om_attribute_ops_t;
00150 
00155     typedef struct axis2_om_attribute
00156     {
00158         axis2_om_attribute_ops_t *ops;
00159        
00160     } axis2_om_attribute_t;
00161 
00171     AXIS2_DECLARE(axis2_om_attribute_t *)
00172     axis2_om_attribute_create (axis2_env_t **env,
00173                                const axis2_char_t *localname,
00174                                const axis2_char_t *value,
00175                                axis2_om_namespace_t *ns);
00176 
00177 /******************** Macros **************************************************/
00178     
00179     
00181 #define AXIS2_OM_ATTRIBUTE_FREE(om_attribute, env) \
00182         ((om_attribute)->ops->free(om_attribute, env))
00183         
00185 #define AXIS2_OM_ATTRIBUTE_GET_QNAME(om_attribute,env) \
00186         ((om_attribute)->ops->get_qname(om_attribute, env))
00187         
00189 #define AXIS2_OM_ATTRIBUTE_SERIALIZE(om_attribute, env, om_ouput) \
00190         ((om_attribute)->ops->serialize(om_attribute, env, om_output))
00192 #define AXIS2_OM_ATTRIBUTE_GET_NAMESPACE(om_attribute, env) \
00193         ((om_attribute)->ops->get_namespace(om_attribute, env))
00195 #define AXIS2_OM_ATTRIBUTE_GET_LOCALNAME(om_attribute, env) \
00196         ((om_attribute)->ops->get_localname(om_attribute, env))
00198 #define AXIS2_OM_ATTRIBUTE_GET_VALUE(om_attribute, env) \
00199         ((om_attribute)->ops->get_value(om_attribute, env))
00201 #define AXIS2_OM_ATTRIBUTE_SET_NAMESPACE(om_attribute, env,ns) \
00202         ((om_attribute)->ops->set_namespace(om_attribute, env,ns))
00204 #define AXIS2_OM_ATTRIBUTE_SET_LOCALNAME(om_attribute, env,localname) \
00205         ((om_attribute)->ops->set_localname(om_attribute, env,localname))
00207 #define AXIS2_OM_ATTRIBUTE_SET_VALUE(om_attribute, env,value) \
00208         ((om_attribute)->ops->set_value(om_attribute, env,value))
00209 
00212 #ifdef __cplusplus
00213 }
00214 #endif
00215 
00216 #endif  /* AXIS2_OM_ATTRIBUTE_H */

Generated on Wed Dec 7 07:58:24 2005 for Axis2/C by  doxygen 1.4.2