00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #if !defined(_GATRESOURCECPI_H_)
00018 #define _GATRESOURCECPI_H_
00019
00020 typedef struct GATResourceCPI_S *GATResourceCPI;
00021
00022 #include "GATContext.h"
00023 #include "GATPreferences.h"
00024 #include "GATMonitorable.h"
00025
00026
00027 #define GATRESOURCECPI_VERSION1 1
00028
00029
00030 #define GATRESOURCECPI_VERSION GATRESOURCECPI_VERSION1
00031
00032
00033
00034
00035
00036 typedef struct
00037 {
00038 GATContext context;
00039 GATType type;
00040 GATBool isdirty;
00041 GATMonitorable_Impl monitorable;
00042 GATObject_const source;
00043 void *instance_data;
00044 } GATResourceCPI_Instance;
00045
00046
00047
00048 typedef void (*GATResourceCPI_Adaptor_Destroy)(void *);
00049
00050 typedef GATResult (*GATResourceCPI_Adaptor_ServiceActions)(void *,
00051 GATResourceCPI_Instance *, GATTimePeriod_const);
00052
00053
00054 typedef void (*GATResourceCPI_Adaptor_DestroyInstance)(void *,
00055 GATResourceCPI_Instance *);
00056
00057 typedef GATResult (*GATResourceCPI_Adaptor_CreateInstance)(void *,
00058 GATResourceCPI_Instance *, void *);
00059
00060 typedef GATResult (*GATResourceCPI_Adaptor_CloneInstance)(void *,
00061 GATResourceCPI_Instance const *, GATResourceCPI_Instance *);
00062
00063 typedef GATResult (*GATResourceCPI_Adaptor_EqualsInstance)(void *,
00064 GATResourceCPI_Instance const *, GATResourceCPI_Instance const *,
00065 GATBool *);
00066
00067
00068
00069 typedef GATResult (* GATResourceCPI_Adaptor_GetResourceDescription)(void *,
00070 GATResourceCPI_Instance const *, GATResourceDescription_const *);
00071
00072 typedef GATResult (* GATResourceCPI_Adaptor_GetReservation)(void *,
00073 GATResourceCPI_Instance const *, GATReservation_const *);
00074
00075
00076
00077 typedef GATResult (* GATResourceCPI_Adaptor_GetMetrics)(void *,
00078 GATResourceCPI_Instance const *, GATList_GATMetric *);
00079
00080 typedef GATResult (* GATResourceCPI_Adaptor_GetMetricEvent)(void *,
00081 GATResourceCPI_Instance const *, GATMetric, GATMetricEvent *);
00082
00083
00084
00085 typedef GATResult (*GATResourceCPI_Adaptor_Serialise)(void *,
00086 GATResourceCPI_Instance const *, GATObject, GATBool);
00087
00088 typedef GATResult (*GATResourceCPI_Adaptor_DeSerialise)(void *, GATObject,
00089 GATResourceCPI_Instance *);
00090
00091
00092
00093 typedef struct
00094 {
00095
00096 void *data;
00097 GATResourceCPI_Adaptor_Destroy destroy;
00098 GATResourceCPI_Adaptor_ServiceActions service_actions;
00099
00100
00101 GATResourceCPI_Adaptor_CreateInstance create_instance;
00102 GATResourceCPI_Adaptor_DestroyInstance destroy_instance;
00103 GATResourceCPI_Adaptor_CloneInstance clone_instance;
00104 GATResourceCPI_Adaptor_EqualsInstance equals_instance;
00105
00106
00107 GATResourceCPI_Adaptor_GetResourceDescription get_resource_description;
00108 GATResourceCPI_Adaptor_GetReservation get_reservation;
00109
00110
00111 GATResourceCPI_Adaptor_GetMetrics get_metrics;
00112 GATResourceCPI_Adaptor_GetMetricEvent get_metric_event;
00113
00114
00115 GATResourceCPI_Adaptor_Serialise serialise;
00116 GATResourceCPI_Adaptor_DeSerialise deserialise;
00117 } GATResourceCPI_Data;
00118
00119 #ifdef __cplusplus
00120 extern "C" {
00121 #endif
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134 GATResourceCPI GATResourceCPI_Create(unsigned long int version,
00135 GATResourceCPI_Data *data);
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147 void GATResourceCPI_Destroy(GATResourceCPI *cpi);
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163 GATResult GATResourceCPI_CreateInstance(GATResourceCPI cpi,
00164 GATResourceCPI_Instance *instance_data, void *initialisation_data);
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174 void GATResourceCPI_DestroyInstance(GATResourceCPI cpi,
00175 GATResourceCPI_Instance *instance_data);
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188 GATResult GATResourceCPI_CloneInstance(GATResourceCPI cpi,
00189 GATResourceCPI_Instance const *instance_data,
00190 GATResourceCPI_Instance *new_instance_data);
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205 GATResult GATResourceCPI_EqualsInstance(GATResourceCPI cpi,
00206 GATResourceCPI_Instance const *lhs, GATResourceCPI_Instance const *rhs,
00207 GATBool *isequal);
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224 GATResult GATResourceCPI_GetResourceDescription(GATResourceCPI cpi,
00225 GATResourceCPI_Instance const *instance_data,
00226 GATResourceDescription_const *description);
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241 GATResult GATResourceCPI_GetReservation(GATResourceCPI cpi,
00242 GATResourceCPI_Instance const *instance_data,
00243 GATReservation_const *reservation);
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259 GATResult GATResourceCPI_GetMetrics(GATResourceCPI cpi,
00260 GATResourceCPI_Instance const *data, GATList_GATMetric *metrics);
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270
00271
00272
00273
00274
00275
00276 GATResult GATResourceCPI_GetMetricEvent(GATResourceCPI cpi,
00277 GATResourceCPI_Instance const *data, GATMetric metric,
00278 GATMetricEvent *event);
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290
00291
00292
00293
00294 GATResult GATResourceCPI_Serialise(GATResourceCPI cpi,
00295 GATResourceCPI_Instance const *data, GATObject stream, GATBool clear_dirty);
00296
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310 GATResult GATResourceCPI_DeSerialise(GATResourceCPI cpi, GATObject stream,
00311 GATResourceCPI_Instance *data);
00312
00313 #ifdef __cplusplus
00314 }
00315 #endif
00316
00317 #endif