00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #if !defined(_GATREQUESTCPI_H_)
00021 #define _GATREQUESTCPI_H_
00022
00023 typedef struct GATRequestCPI_S *GATRequestCPI;
00024
00025 #include "GATContext.h"
00026 #include "GATPreferences.h"
00027 #include "GATRequest.h"
00028
00029
00030 #define GATREQUESTCPI_VERSION1 1
00031
00032
00033 #define GATREQUESTCPI_VERSION GATREQUESTCPI_VERSION1
00034
00035
00036
00037
00038
00039 typedef struct GATRequestCPI_Instance_S
00040 {
00041 GATContext context;
00042
00043 GATRequestType type;
00044 char *request_name;
00045 GATRequestListener listener;
00046 void *client_contextdata;
00047 GATTable parameters;
00048
00049 GATRequest_const source;
00050 GATRequestNotifier_const notifier;
00051 void *instance_data;
00052 } GATRequestCPI_Instance;
00053
00054
00055
00056 typedef void (*GATRequestCPI_Adaptor_Destroy)(void *);
00057
00058 typedef GATResult (*GATRequestCPI_Adaptor_ServiceActions)(void *,
00059 GATRequestCPI_Instance *, GATTimePeriod_const);
00060
00061
00062 typedef void (*GATRequestCPI_Adaptor_DestroyInstance)(void *,
00063 GATRequestCPI_Instance *);
00064
00065 typedef GATResult (*GATRequestCPI_Adaptor_CreateInstance)(void *,
00066 GATRequestCPI_Instance *, void *);
00067
00068 typedef GATResult (*GATRequestCPI_Adaptor_CloneInstance)(void *,
00069 GATRequestCPI_Instance const *, GATRequestCPI_Instance *);
00070
00071 typedef GATResult (*GATRequestCPI_Adaptor_EqualsInstance)(void *,
00072 GATRequestCPI_Instance const *, GATRequestCPI_Instance const *,
00073 GATBool *);
00074
00075
00076
00077 typedef GATResult (*GATRequestCPI_Adaptor_InitRequestNotifier)(void *,
00078 GATRequestCPI_Instance const *, GATRequestNotifier_const *);
00079
00080
00081
00082 typedef struct
00083 {
00084
00085 void *data;
00086 GATRequestCPI_Adaptor_Destroy destroy;
00087
00088
00089 GATRequestCPI_Adaptor_ServiceActions service_actions;
00090 GATRequestCPI_Adaptor_CreateInstance create_instance;
00091 GATRequestCPI_Adaptor_DestroyInstance destroy_instance;
00092 GATRequestCPI_Adaptor_CloneInstance clone_instance;
00093 GATRequestCPI_Adaptor_EqualsInstance equals_instance;
00094
00095
00096 GATRequestCPI_Adaptor_InitRequestNotifier init_notifier;
00097
00098 } GATRequestCPI_Data;
00099
00100 #ifdef __cplusplus
00101 extern "C" {
00102 #endif
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115 GATRequestCPI GATRequestCPI_Create(unsigned long int version,
00116 GATRequestCPI_Data *data);
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128 void GATRequestCPI_Destroy(GATRequestCPI *cpi);
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143 GATResult GATRequestCPI_CreateInstance(GATRequestCPI cpi,
00144 GATRequestCPI_Instance *instance_data, void *initialisation_data);
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154 void GATRequestCPI_DestroyInstance(GATRequestCPI cpi,
00155 GATRequestCPI_Instance *instance_data);
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170 GATResult GATRequestCPI_EqualsInstance(GATRequestCPI cpi,
00171 GATRequestCPI_Instance const *lhs, GATRequestCPI_Instance const *rhs,
00172 GATBool *isequal);
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185 GATResult GATRequestCPI_CloneInstance(GATRequestCPI cpi,
00186 GATRequestCPI_Instance const *instance_data,
00187 GATRequestCPI_Instance *new_instance_data);
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203 GATResult GATRequestCPI_InitRequestNotifier(GATRequestCPI cpi,
00204 GATRequestCPI_Instance const *instance_data,
00205 GATRequestNotifier_const *notifier);
00206
00207 #ifdef __cplusplus
00208 }
00209 #endif
00210
00211 #endif
00212