00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _GATFILECPI_H_
00021 #define _GATFILECPI_H_ 1
00022
00023 typedef struct GATFileCPI_S *GATFileCPI;
00024
00025 #include "GATContext.h"
00026 #include "GATPreferences.h"
00027 #include "GATLocation.h"
00028 #include "GATMetricEvent.h"
00029 #include "GATMetric.h"
00030 #include "GATTime.h"
00031 #include "GATFile.h"
00032 #include "GATMonitorable.h"
00033
00034
00035 #define GATFILECPI_VERSION1 1
00036
00037
00038 #define GATFILECPI_VERSION GATFILECPI_VERSION1
00039
00040
00041
00042
00043
00044 typedef struct
00045 {
00046 GATContext context;
00047 GATLocation location;
00048 GATBool isdirty;
00049 GATMonitorable_Impl monitorable;
00050 GATObject_const source;
00051 void *instance_data;
00052 } GATFileCPI_Instance;
00053
00054
00055 typedef void (*GATFileCPI_Adaptor_Destroy)(void *);
00056
00057 typedef GATResult (*GATFileCPI_Adaptor_ServiceActions)(void *,
00058 GATFileCPI_Instance *, GATTimePeriod_const);
00059
00060
00061 typedef void (*GATFileCPI_Adaptor_DestroyInstance)(void *,
00062 GATFileCPI_Instance *);
00063
00064 typedef GATResult (*GATFileCPI_Adaptor_CreateInstance)(void *,
00065 GATFileCPI_Instance *);
00066
00067 typedef GATResult (*GATFileCPI_Adaptor_CloneInstance)(void *,
00068 GATFileCPI_Instance const *, GATFileCPI_Instance *);
00069
00070 typedef GATResult (*GATFileCPI_Adaptor_EqualsInstance)(void *,
00071 GATFileCPI_Instance const *, GATFileCPI_Instance const *, GATBool *);
00072
00073
00074
00075 typedef GATResult (*GATFileCPI_Adaptor_Serialise)(void *,
00076 GATFileCPI_Instance const *, GATObject, GATBool);
00077
00078 typedef GATResult (*GATFileCPI_Adaptor_DeSerialise)(void *, GATObject,
00079 GATFileCPI_Instance *);
00080
00081
00082
00083 typedef GATResult (*GATFileCPI_Adaptor_Copy)(void *, GATFileCPI_Instance const *,
00084 GATLocation_const, GATFileMode);
00085
00086 typedef GATResult (*GATFileCPI_Adaptor_Move)(void *, GATFileCPI_Instance const *,
00087 GATLocation_const, GATFileMode);
00088
00089 typedef GATResult (*GATFileCPI_Adaptor_Delete)(void *, GATFileCPI_Instance const *);
00090
00091 typedef GATResult (*GATFileCPI_Adaptor_IsReadable)(void *,
00092 GATFileCPI_Instance const *);
00093
00094 typedef GATResult (*GATFileCPI_Adaptor_IsWritable)(void *,
00095 GATFileCPI_Instance const *);
00096
00097 typedef GATResult (*GATFileCPI_Adaptor_GetLength)(void *, GATFileCPI_Instance const *,
00098 unsigned long *);
00099
00100 typedef GATResult (*GATFileCPI_Adaptor_LastWriteTime)(void *,
00101 GATFileCPI_Instance const *, GATTime *);
00102
00103
00104 typedef GATResult (* GATFileCPI_Adaptor_GetMetrics)(void *,
00105 GATFileCPI_Instance const *, GATList_GATMetric *);
00106
00107 typedef GATResult (* GATFileCPI_Adaptor_GetMetricEvent)(void *,
00108 GATFileCPI_Instance const *, GATMetric, GATMetricEvent *);
00109
00110 typedef struct
00111 {
00112
00113 void *data;
00114 GATFileCPI_Adaptor_Destroy destroy;
00115
00116
00117 GATFileCPI_Adaptor_ServiceActions service_actions;
00118 GATFileCPI_Adaptor_CreateInstance create_instance;
00119 GATFileCPI_Adaptor_DestroyInstance destroy_instance;
00120 GATFileCPI_Adaptor_CloneInstance clone_instance;
00121 GATFileCPI_Adaptor_EqualsInstance equals_instance;
00122
00123
00124 GATFileCPI_Adaptor_Serialise serialise;
00125 GATFileCPI_Adaptor_DeSerialise deserialise;
00126
00127
00128 GATFileCPI_Adaptor_Copy copy;
00129 GATFileCPI_Adaptor_Move move;
00130 GATFileCPI_Adaptor_Delete remove;
00131 GATFileCPI_Adaptor_IsReadable isreadable;
00132 GATFileCPI_Adaptor_IsWritable iswritable;
00133 GATFileCPI_Adaptor_GetLength length;
00134 GATFileCPI_Adaptor_LastWriteTime lastwritetime;
00135
00136
00137 GATFileCPI_Adaptor_GetMetrics get_metrics;
00138 GATFileCPI_Adaptor_GetMetricEvent get_metric_event;
00139 } GATFileCPI_Data;
00140
00141 #ifdef __cplusplus
00142 extern "C" {
00143 #endif
00144
00145
00146 GATFileCPI GATFileCPI_Create(unsigned long int version,
00147 GATFileCPI_Data *data);
00148
00149
00150 void GATFileCPI_Destroy(GATFileCPI *cpi);
00151
00152
00153 GATResult GATFileCPI_CreateInstance(GATFileCPI cpi,
00154 GATFileCPI_Instance *instance_data);
00155
00156 void GATFileCPI_DestroyInstance(GATFileCPI cpi,
00157 GATFileCPI_Instance *instance_data);
00158
00159 GATResult GATFileCPI_CloneInstance(GATFileCPI cpi,
00160 GATFileCPI_Instance const *instance_data,
00161 GATFileCPI_Instance *new_instance_data);
00162
00163 GATResult GATFileCPI_EqualsInstance(GATFileCPI cpi, GATFileCPI_Instance const *lhs,
00164 GATFileCPI_Instance const *rhs, GATBool *isequal);
00165
00166
00167 GATResult GATFileCPI_Serialise(GATFileCPI cpi, GATFileCPI_Instance const *data,
00168 GATObject stream, GATBool clear_dirty);
00169
00170 GATResult GATFileCPI_DeSerialise(GATFileCPI cpi, GATObject stream,
00171 GATFileCPI_Instance *data);
00172
00173
00174 GATResult GATFileCPI_Copy(GATFileCPI cpi, GATFileCPI_Instance const *data,
00175 GATLocation_const targetLocation, GATFileMode mode);
00176
00177 GATResult GATFileCPI_Move(GATFileCPI cpi, GATFileCPI_Instance const *data,
00178 GATLocation_const targetLocation, GATFileMode mode);
00179
00180 GATResult GATFileCPI_Delete(GATFileCPI cpi, GATFileCPI_Instance const *data);
00181
00182 GATResult GATFileCPI_IsReadable(GATFileCPI cpi, GATFileCPI_Instance const *data);
00183
00184 GATResult GATFileCPI_IsWritable(GATFileCPI cpi, GATFileCPI_Instance const *data);
00185
00186 GATResult GATFileCPI_GetLength(GATFileCPI cpi, GATFileCPI_Instance const *data,
00187 unsigned long *length);
00188
00189 GATResult GATFileCPI_LastWriteTime(GATFileCPI cpi, GATFileCPI_Instance const *data,
00190 GATTime *lw_time);
00191
00192
00193 GATResult GATFileCPI_GetMetrics(GATFileCPI cpi, GATFileCPI_Instance const *data,
00194 GATList_GATMetric *metrics);
00195
00196 GATResult GATFileCPI_GetMetricEvent(GATFileCPI cpi, GATFileCPI_Instance const *data,
00197 GATMetric metric, GATMetricEvent *event);
00198
00199 #ifdef __cplusplus
00200 }
00201 #endif
00202
00203 #endif