00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 static const char *rcsid = "$Header: /export/cvs-gridlab/wp-1/Codes/GATEngine/C-reference/adaptors/resourcebroker/GATResourceCPIInstanceData.c,v 1.5 2004/04/02 12:31:57 hartmutkaiser Exp $";
00020
00021
00022 #include <string.h>
00023
00024
00025 #include "GATResourceCPIInstanceData.h"
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 GATResourceCPIInstance_Data *
00047 GATResourceCPIInstance_Data_Create(GATResourceDescription_const rd)
00048 {
00049 GATResult retval = GAT_SUCCESS;
00050 GATResourceCPIInstance_Data *result =
00051 (GATResourceCPIInstance_Data *)malloc(sizeof(struct GATResourceCPIInstance_Data));
00052
00053 if (NULL != result)
00054 {
00055 GATType type = GATResourceDescription_GetType(rd);
00056
00057 memset(result, 0, sizeof(struct GATResourceCPIInstance_Data));
00058 retval = GATResourceDescription_Clone(type, rd, &result->rd);
00059 if (GAT_FAILED(retval))
00060 {
00061 free(result);
00062 result = NULL;
00063 }
00064 }
00065 return result;
00066 }
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076 void
00077 GATResourceCPIInstance_Data_Destroy(
00078 GATResourceCPIInstance_Data **instance_data)
00079 {
00080 if (NULL != instance_data && NULL != *instance_data)
00081 {
00082 GATResourceDescription_Destroy(&(*instance_data)->rd);
00083 free(*instance_data);
00084 *instance_data = NULL;
00085 }
00086 }
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099 GATResult
00100 GATResourceCPIInstance_Data_Clone(
00101 GATResourceCPIInstance_Data const *instance_data,
00102 GATResourceCPIInstance_Data **new_instance_data)
00103 {
00104 GATResult retval = GAT_INVALID_PARAMETER;
00105 if (NULL != new_instance_data)
00106 {
00107 GATResourceCPIInstance_Data *new_data =
00108 (GATResourceCPIInstance_Data *)malloc(sizeof(struct GATResourceCPIInstance_Data));
00109
00110 if (NULL != new_data)
00111 {
00112 GATType type = GATResourceDescription_GetType(instance_data->rd);
00113
00114 retval = GATResourceDescription_Clone(type, instance_data->rd,
00115 &new_data->rd);
00116
00117 if (GAT_FAILED(retval))
00118 {
00119 free(new_data);
00120 }
00121 else
00122 {
00123 *new_instance_data = new_data;
00124 }
00125 }
00126 else
00127 {
00128 retval = GAT_MEMORYFAILURE;
00129 }
00130 }
00131 return retval;
00132 }
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146 GATResult
00147 GATResourceCPIInstance_Data_Equals(
00148 GATResourceCPIInstance_Data const *lhs,
00149 GATResourceCPIInstance_Data const *rhs, GATBool *isequal)
00150 {
00151 GATResult retval = GAT_INVALID_HANDLE;
00152 if (NULL != lhs && NULL != rhs)
00153 {
00154 retval = GATResourceDescription_Equals(lhs->rd, rhs->rd, isequal);
00155 }
00156 return retval;
00157 }
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171 GATResult
00172 GATResourceCPIInstance_Data_GetResourceDescription(
00173 GATResourceCPIInstance_Data const *instance_data,
00174 GATResourceDescription_const *description)
00175 {
00176 GATResult retval = GAT_INVALID_HANDLE;
00177 if (NULL != instance_data)
00178 {
00179 if (NULL != description)
00180 {
00181 *description = instance_data->rd;
00182 retval = GAT_SUCCESS;
00183 }
00184 else
00185 {
00186 retval = GAT_INVALID_PARAMETER;
00187 }
00188 }
00189 return retval;
00190 }
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206 GATResult
00207 GATResourceCPIInstance_Data_Serialize(
00208 GATResourceCPIInstance_Data const *instance_data, GATObject stream,
00209 GATBool clear_dirty)
00210 {
00211 GATResult retval = GAT_INVALID_HANDLE;
00212 if (NULL != instance_data)
00213 {
00214 retval = GATResourceDescription_Serialise(instance_data->rd, stream,
00215 clear_dirty);
00216 }
00217 return retval;
00218 }
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234 GATResult
00235 GATResourceCPIInstance_Data_DeSerialize(GATContext context, GATObject stream,
00236 GATResourceCPIInstance_Data **instance_data)
00237 {
00238 GATResult retval = GAT_INVALID_HANDLE;
00239 if (NULL != instance_data)
00240 {
00241 GATResourceCPIInstance_Data *new_data =
00242 (GATResourceCPIInstance_Data *)malloc(sizeof(struct GATResourceCPIInstance_Data));
00243
00244 if (NULL != new_data)
00245 {
00246 memset(new_data, 0, sizeof(struct GATResourceCPIInstance_Data));
00247 new_data->rd = GATResourceDescription_DeSerialise(context, stream,
00248 &retval);
00249 if (GAT_SUCCEEDED(retval))
00250 {
00251 *instance_data = new_data;
00252 }
00253 else
00254 {
00255 GATResourceCPIInstance_Data_Destroy(&new_data);
00256 *instance_data = NULL;
00257 }
00258 }
00259 else
00260 {
00261 retval = GAT_MEMORYFAILURE;
00262 }
00263 }
00264 return retval;
00265 }