00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef XML_SCHEMA_OBJ_COLLECTION_H
00018 #define XML_SCHEMA_OBJ_COLLECTION_H
00019
00027 #include <axis2_allocator.h>
00028 #include <axis2_env.h>
00029 #include <axis2_error.h>
00030 #include <axis2_string.h>
00031 #include <axis2_array_list.h>
00032 #include <axis2_hash.h>
00033 #include <xml_schema_obj.h>
00034
00035 #ifdef __cplusplus
00036 extern "C"
00037 {
00038 #endif
00039
00040 typedef struct xml_schema_obj_collection
00041 xml_schema_obj_collection_t;
00042 typedef struct xml_schema_obj_collection_ops
00043 xml_schema_obj_collection_ops_t;
00044
00050 struct xml_schema_obj_collection_ops
00051 {
00056 axis2_status_t (AXIS2_CALL *
00057 free) (xml_schema_obj_collection_t *obj_collection,
00058 const axis2_env_t *env);
00059
00060 int (AXIS2_CALL *
00061 get_count) (xml_schema_obj_collection_t *obj_collection,
00062 const axis2_env_t *env);
00063
00064 xml_schema_obj_t *(AXIS2_CALL *
00065 get_item) (xml_schema_obj_collection_t *obj_collection,
00066 const axis2_env_t *env,
00067 int i);
00068
00069 axis2_status_t (AXIS2_CALL *
00070 set_item) (xml_schema_obj_collection_t *obj_collection,
00071 const axis2_env_t *env,
00072 int i,
00073 void *item);
00074
00075 axis2_status_t (AXIS2_CALL *
00076 add) (xml_schema_obj_collection_t *obj_collection,
00077 const axis2_env_t *env,
00078 void *item);
00079
00080 axis2_bool_t (AXIS2_CALL *
00081 contains)(xml_schema_obj_collection_t *obj_collection,
00082 const axis2_env_t *env,
00083 void *item);
00084
00085 axis2_status_t (AXIS2_CALL *
00086 index_of) (xml_schema_obj_collection_t *obj_collection,
00087 const axis2_env_t *env,
00088 void *item);
00089
00090 void* (AXIS2_CALL *
00091 remove_at)(xml_schema_obj_collection_t *obj_collection,
00092 const axis2_env_t *env,
00093 int i);
00094
00095 axis2_array_list_t* (AXIS2_CALL *
00096 to_array)(xml_schema_obj_collection_t *obj_collection,
00097 const axis2_env_t *env);
00098
00099 };
00100
00101 struct xml_schema_obj_collection
00102 {
00103 xml_schema_obj_collection_ops_t *ops;
00104 };
00105
00106 AXIS2_EXTERN xml_schema_obj_collection_t * AXIS2_CALL
00107 xml_schema_obj_collection_create(const axis2_env_t *env);
00108
00109
00110 #define XML_SCHEMA_OBJ_COLLECTION_FREE(obj_collection, env) \
00111 ((obj_collection)->ops->free (obj_collection, env))
00112
00113 #define XML_SCHEMA_OBJ_COLLECTION_GET_COUNT(obj_collection, env) \
00114 ((obj_collection)->ops->get_count (obj_collection, env))
00115
00116 #define XML_SCHEMA_OBJ_COLLECTION_GET_ITEM(obj_collection, env, i) \
00117 ((obj_collection)->ops->get_item (obj_collection, env, i))
00118
00119 #define XML_SCHEMA_OBJ_COLLECTION_SET_ITEM(obj_collection, env, i, item) \
00120 ((obj_collection)->ops->set_item (obj_collection, env, i, item))
00121
00122 #define XML_SCHEMA_OBJ_COLLECTION_ADD(obj_collection, env, item) \
00123 ((obj_collection)->ops->add (obj_collection, env, item))
00124
00125 #define XML_SCHEMA_OBJ_COLLECTION_CONTAINS(obj_collection, env, item) \
00126 ((obj_collection)->ops->contains (obj_collection, env, item))
00127
00128 #define XML_SCHEMA_OBJ_COLLECTION_INDEX_OF(obj_collection, env, item) \
00129 ((obj_collection)->ops->index_of (obj_collection, env, item))
00130
00131 #define XML_SCHEMA_OBJ_COLLECTION_REMOVE_AT(obj_collection, env, i) \
00132 ((obj_collection)->ops->remove_at (obj_collection, env, i))
00133
00134 #define XML_SCHEMA_OBJ_COLLECTION_TO_ARRAY(obj_collection, env) \
00135 ((obj_collection)->ops->to_array(obj_collection, env))
00136
00138 #ifdef __cplusplus
00139 }
00140 #endif
00141 #endif