GridLab
Grid Application Toolkit

A simple API for Grid Applications
GAT

Menu



Main Page   Alphabetical List   Compound List   File List   Compound Members   File Members  

adaptor.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <GATCPI.h>

Include dependency graph for filestream/adaptor.c:

Include dependency graph

Go to the source code of this file.

Compounds

struct  GATFileStreamInstance_Data

Defines

#define __countof(x)   (sizeof(x)/sizeof(x[0]))
#define METRIC_FILESTREAM_READ   0
#define METRIC_FILESTREAM_WRITE   1
#define METRIC_FILESTREAM_SEEK   2
#define METRIC_FILESTREAM_CLOSE   3

Typedefs

typedef GATFileStreamInstance_Data GATFileStreamInstance_Data

Functions

void filestream_adaptor_FileStreamCPI_Destroy (void *data)
 filestream_adaptor_FileStreamCPI_Destroy Destroy the adaptor-provided data object on GATFileStreamCPI destruction.

GATResult filestream_adaptor_FileStreamCPI_CreateInstance (void *adaptor_data, GATFileStreamCPI_Instance *data)
 filestream_adaptor_FileStreamCPI_CreateInstance Create a new CPI object instance.

void filestream_adaptor_FileStreamCPI_DestroyInstance (void *adaptor_data, GATFileStreamCPI_Instance *data)
 filestream_adaptor_FileStreamCPI_DestroyInstance Destroy a CPI object instance.

GATResult filestream_adaptor_FileStreamCPI_CloneInstance (void *adaptor_data, GATFileStreamCPI_Instance const *data, GATFileStreamCPI_Instance *new_data)
 filestream_adaptor_FileStreamCPI_CloneInstance Clone a CPI object instance.

GATResult filestream_adaptor_FileStreamCPI_EqualsInstance (void *adaptor_data, GATFileStreamCPI_Instance const *lhs, GATFileStreamCPI_Instance const *rhs, GATBool *isequal)
 filestream_adaptor_FileStreamCPI_EqualsInstance Clone a CPI object instance.

GATResult filestream_adaptor_FileStreamCPI_Read (void *data, GATFileStreamCPI_Instance const *instance_data, void *buffer, GATuint32 size, GATuint32 *readBytes)
 filestream_adaptor_FileStreamCPI_Read Reads data from a FileStream.

GATResult filestream_adaptor_FileStreamCPI_Write (void *data, GATFileStreamCPI_Instance const *instance_data, void const *buffer, GATuint32 size, GATuint32 *writtenBytes)
 filestream_adaptor_FileStreamCPI_Write Writes data to a FileStream.

GATResult filestream_adaptor_FileStreamCPI_Seek (void *data, GATFileStreamCPI_Instance const *instance_data, GATOrigin origin, GATint32 offset, GATuint32 *new_position)
 filestream_adaptor_FileStreamCPI_Seek Seeks on a FileStream.

GATResult filestream_adaptor_FileStreamCPI_Close (void *data, GATFileStreamCPI_Instance *instance_data)
 filestream_adaptor_FileStreamCPI_Close Closes a FileStream Adaptor implementation of FileStream close capability.

GATResult filestream_adaptor_FileStreamCPI_GetMetrics (void *data, GATFileStreamCPI_Instance const *instance_data, GATList_GATMetric *metrics)
 filestream_adaptor_FileStreamCPI_GetMetrics

GATResult filestream_adaptor_FileStreamCPI_GetMetricEvent (void *data, GATFileStreamCPI_Instance const *instance_data, GATMetric metric, GATMetricEvent *event)
 filestream_adaptor_FileStreamCPI_GetMetricEvent

GATResult filestream_adaptor_FireReadEvent (GATContext context, GATMonitorable_Impl monitorable, GATObject_const source, char const *name)
 filestream_adaptor_FireReadEvent

GATResult filestream_adaptor_FireWriteEvent (GATContext context, GATMonitorable_Impl monitorable, GATObject_const source, char const *name)
 filestream_adaptor_FireWriteEvent

GATResult filestream_adaptor_FireSeekEvent (GATContext context, GATMonitorable_Impl monitorable, GATObject_const source, char const *name)
 filestream_adaptor_FireSeekEvent

GATResult filestream_adaptor_FireCloseEvent (GATContext context, GATMonitorable_Impl monitorable, GATObject_const source, char const *name)
 filestream_adaptor_FireCloseEvent

GATResult filestream_adaptor_register (GATContext error_context, GATRegistry registry, GATTable_const system_config, GATTable_const instance_config, void *token)
 filestream_adaptor_register Registers all CPIs this adaptor provides.


Variables

const char * rcsid = "$Header: /export/cvs-gridlab/wp-1/Codes/GATEngine/C-reference/adaptors/filestream/adaptor.c,v 1.6 2004/04/22 10:25:05 hartmutkaiser Exp $"
GATStaticMetric metric_data []


Define Documentation

#define __countof      (sizeof(x)/sizeof(x[0]))
 

Definition at line 32 of file filestream/adaptor.c.

#define METRIC_FILESTREAM_READ   0
 

Definition at line 153 of file filestream/adaptor.c.

Referenced by filestream_adaptor_FireReadEvent().

#define METRIC_FILESTREAM_WRITE   1
 

Definition at line 154 of file filestream/adaptor.c.

Referenced by filestream_adaptor_FireWriteEvent().

#define METRIC_FILESTREAM_SEEK   2
 

Definition at line 155 of file filestream/adaptor.c.

Referenced by filestream_adaptor_FireSeekEvent().

#define METRIC_FILESTREAM_CLOSE   3
 

Definition at line 156 of file filestream/adaptor.c.

Referenced by filestream_adaptor_FireCloseEvent().


Typedef Documentation

typedef struct GATFileStreamInstance_Data GATFileStreamInstance_Data
 


Function Documentation

void filestream_adaptor_FileStreamCPI_Destroy void *    data [static]
 

filestream_adaptor_FileStreamCPI_Destroy Destroy the adaptor-provided data object on GATFileStreamCPI destruction.

When the GATFileStreamCPI object created in this adaptor's _register function is destroyed, this function is invoked to allow the adaptor to cleanup.

Parameters:
data  Adaptor-provided data object.

Definition at line 265 of file filestream/adaptor.c.

References data.

Referenced by filestream_adaptor_register().

GATResult filestream_adaptor_FileStreamCPI_CreateInstance void *    adaptor_data,
GATFileStreamCPI_Instance   data
 

filestream_adaptor_FileStreamCPI_CreateInstance Create a new CPI object instance.

Adaptor implementation of create instance capability.

Parameters:
adaptor_data  Adaptor-provided data object.
data  The pointer to the data structure containing at least the constructor provided data items and a member instance_data, which may be used by the adaptor to store CPI instance specific data.
Returns:
An error code.

Definition at line 282 of file filestream/adaptor.c.

References GATFileStreamCPI_Instance::context, data, GAT_CREATE_STATUS, GAT_FILEOPEN_ERROR, GAT_INVALID_HANDLE, GAT_MEMORYFAILURE, GAT_RETURN_STATUS, GAT_USES_STATUS, GATFileStreamMode_Append, GATFileStreamMode_Read, GATFileStreamMode_Write, GATLocation_ToString(), GATFileStreamCPI_Instance::instance_data, GATFileStreamCPI_Instance::location, and GATFileStreamCPI_Instance::mode.

Referenced by filestream_adaptor_register().

void filestream_adaptor_FileStreamCPI_DestroyInstance void *    adaptor_data,
GATFileStreamCPI_Instance   data
 

filestream_adaptor_FileStreamCPI_DestroyInstance Destroy a CPI object instance.

Adaptor implementation of destroy instance capability.

Parameters:
data  Adaptor-provided data object.
instance_data  The instance data of the CPI object to destroy.

Definition at line 338 of file filestream/adaptor.c.

References GATFileStreamCPI_Instance::context, data, GAT_STORE_STATUS, GAT_USES_STATUS, and GATFileStreamCPI_Instance::instance_data.

Referenced by filestream_adaptor_register().

GATResult filestream_adaptor_FileStreamCPI_CloneInstance void *    adaptor_data,
GATFileStreamCPI_Instance const *    instance_data,
GATFileStreamCPI_Instance   new_instance_data
 

filestream_adaptor_FileStreamCPI_CloneInstance Clone a CPI object instance.

Adaptor implementation of the clone instance capability.

Parameters:
data  Adaptor-provided data object.
instance_data  The instance data of this CPI object
new_instance_data  The pointer to the variable, where the instance data of the cloned CPI object is to be returned to.
Returns:
An error code.

Definition at line 368 of file filestream/adaptor.c.

References GAT_CREATE_STATUS, GAT_INVALID_HANDLE, GAT_INVALID_PARAMETER, GAT_RETURN_STATUS, GAT_USES_STATUS, and GATFileStreamCPI_Instance::instance_data.

Referenced by filestream_adaptor_register().

GATResult filestream_adaptor_FileStreamCPI_EqualsInstance void *    data,
GATFileStreamCPI_Instance const *    lhs,
GATFileStreamCPI_Instance const *    rhs,
GATBool   isequal
 

filestream_adaptor_FileStreamCPI_EqualsInstance Clone a CPI object instance.

Adaptor implementation of the clone instance capability.

Parameters:
data  Adaptor-provided data object.
lhs  The instance data of the left CPI object.
lhs  The instance data of the right CPI object.
isequal  The pointer to the variable, where the result is to be returned to.
Returns:
An error code.

Definition at line 404 of file filestream/adaptor.c.

References GATFileStreamCPI_Instance::context, data, GAT_CREATE_STATUS, GAT_INVALID_HANDLE, GAT_INVALID_PARAMETER, GAT_RETURN_STATUS, GAT_USES_STATUS, GATBool, GATFalse, GATTrue, and GATFileStreamCPI_Instance::instance_data.

Referenced by filestream_adaptor_register().

GATResult filestream_adaptor_FileStreamCPI_Read void *    data,
GATFileStreamCPI_Instance const *    instance_data,
void *    buffer,
GATuint32    size,
GATuint32   readBytes
[static]
 

filestream_adaptor_FileStreamCPI_Read Reads data from a FileStream.

Adaptor implementation of FileStream read capability.

Parameters:
data  Adaptor-provided data object.
instance_data  The instance data of this CPI object
buffer  The buffer into which data is read
size  The size of the buffer
readBytes  the number of bytes read
Returns:
An error code.

Definition at line 446 of file filestream/adaptor.c.

References GATFileStreamCPI_Instance::context, data, filestream_adaptor_FireReadEvent(), GAT_CREATE_STATUS, GAT_INVALID_HANDLE, GAT_INVALID_PARAMETER, GAT_RETURN_STATUS, GAT_USES_STATUS, GATuint32, GATFileStreamCPI_Instance::instance_data, GATFileStreamCPI_Instance::monitorable, POSIX_TO_GAT, size, and GATFileStreamCPI_Instance::source.

Referenced by filestream_adaptor_register().

GATResult filestream_adaptor_FileStreamCPI_Write void *    data,
GATFileStreamCPI_Instance const *    instance_data,
void const *    buffer,
GATuint32    size,
GATuint32   writtenBytes
[static]
 

filestream_adaptor_FileStreamCPI_Write Writes data to a FileStream.

Adaptor implementation of FileStream write capability.

Parameters:
data  Adaptor-provided data object.
instance_data  The instance data of this CPI object
buffer  The buffer from which data is written
size  The size of the buffer
writtenBytes  the number of bytes written
Returns:
An error code.

Definition at line 491 of file filestream/adaptor.c.

References GATFileStreamCPI_Instance::context, data, filestream_adaptor_FireWriteEvent(), GAT_CREATE_STATUS, GAT_INVALID_HANDLE, GAT_INVALID_PARAMETER, GAT_RETURN_STATUS, GAT_USES_STATUS, GATuint32, GATFileStreamCPI_Instance::instance_data, GATFileStreamCPI_Instance::monitorable, POSIX_TO_GAT, size, and GATFileStreamCPI_Instance::source.

Referenced by filestream_adaptor_register().

GATResult filestream_adaptor_FileStreamCPI_Seek void *    data,
GATFileStreamCPI_Instance const *    instance_data,
GATOrigin    origin,
GATint32    offset,
GATuint32   new_position
[static]
 

filestream_adaptor_FileStreamCPI_Seek Seeks on a FileStream.

Adaptor implementation of FileStream seek capability.

Parameters:
data  Adaptor-provided data object.
instance_data  The instance data of this CPI object
origin  The GATOrigin from whence to seek
offset  The offset from the origin which to seek to
new_position  The new position of the FileStream
Returns:
An error code.

Definition at line 535 of file filestream/adaptor.c.

References GATFileStreamCPI_Instance::context, data, filestream_adaptor_FireSeekEvent(), GAT_CREATE_STATUS, GAT_CURRENT_STATUS, GAT_INVALID_HANDLE, GAT_INVALID_PARAMETER, GAT_RETURN_STATUS, GAT_SUCCEEDED, GAT_USES_STATUS, GATint32, GATOrigin, GATOrigin_Current, GATOrigin_End, GATOrigin_Set, GATuint32, GATFileStreamCPI_Instance::instance_data, GATFileStreamCPI_Instance::monitorable, POSIX_TO_GAT, and GATFileStreamCPI_Instance::source.

Referenced by filestream_adaptor_register().

GATResult filestream_adaptor_FileStreamCPI_Close void *    data,
GATFileStreamCPI_Instance   instance_data
[static]
 

filestream_adaptor_FileStreamCPI_Close Closes a FileStream Adaptor implementation of FileStream close capability.

Parameters:
data  Adaptor-provided data object.
instance_data  The instance data of this CPI object
Returns:
An error code.

Definition at line 609 of file filestream/adaptor.c.

References GATFileStreamCPI_Instance::context, data, filestream_adaptor_FireCloseEvent(), GAT_CREATE_STATUS, GAT_INVALID_HANDLE, GAT_RETURN_STATUS, GAT_USES_STATUS, GATFileStreamCPI_Instance::instance_data, GATFileStreamCPI_Instance::monitorable, POSIX_TO_GAT, and GATFileStreamCPI_Instance::source.

Referenced by filestream_adaptor_register().

GATResult filestream_adaptor_FileStreamCPI_GetMetrics void *    data,
GATFileStreamCPI_Instance const *    instance_data,
GATList_GATMetric *    metrics
[static]
 

filestream_adaptor_FileStreamCPI_GetMetrics

The function filestream_adaptor_FileStreamCPI_GetMetrics should return a list of GATMetric objects supported by this adaptor. I.e. the adaptor is capable to fire GATMetricEvents for the returned metrics. This list should include all the supported metrics, event like and continuous ones.

Parameters:
data  Adaptor-provided data object.
instance_data  Instance data for the CPI provider object.
metrics  The pointer to the variable, which receives the returned list of metrics.
Returns:
An error code.

Definition at line 651 of file filestream/adaptor.c.

References __countof, data, and GATMetric_CreateListOfMetrics().

Referenced by filestream_adaptor_register().

GATResult filestream_adaptor_FileStreamCPI_GetMetricEvent void *    data,
GATFileStreamCPI_Instance const *    instance_data,
GATMetric    metric,
GATMetricEvent   event
[static]
 

filestream_adaptor_FileStreamCPI_GetMetricEvent

The function filestream_adaptor_FileStreamCPI_GetMetricEvent should return the GATMetricEvent associated with the given continuous metric. This function gets called for continuous metrics only, since returning the metric event object to the caller is th only way for the client to get access to it.

Parameters:
data  Adaptor-provided data object.
instance_data  Instance data for the CPI provider object.
metric  The metric instance describing the metric event to return. This metric should be equivalent to one of the metrics returned by our own GetMetrics CPI function (see above). If this is another (not known to us metric), an error should be returned.
event  The pointer to the variable, which receives the metric event to return.
Returns:
An error code.

Definition at line 678 of file filestream/adaptor.c.

References data, GAT_SUCCESS, GATMetric, and GATResult.

Referenced by filestream_adaptor_register().

GATResult filestream_adaptor_FireReadEvent GATContext    context,
GATMonitorable_Impl    monitorable,
GATObject_const    source,
char const *    name
[static]
 

filestream_adaptor_FireReadEvent

The function filestream_adaptor_FireReadEvent fires a 'filestream read' event to all registered metric listeners.

Definition at line 694 of file filestream/adaptor.c.

References GAT_CREATE_STATUS, GAT_CURRENT_STATUS, GAT_INVALID_PARAMETER, GAT_MEMORYFAILURE, GAT_RETURN_STATUS, GAT_SUCCEEDED, GAT_USES_STATUS, GATMetric, GATMetric_CreateMetric(), GATMetric_Destroy(), GATMetricEvent_Create_EventLike(), GATMetricEvent_Destroy(), GATMonitorable_Impl_FireEvent(), GATObject_const, GATuint32, METRIC_FILESTREAM_READ, and name.

Referenced by filestream_adaptor_FileStreamCPI_Read().

GATResult filestream_adaptor_FireWriteEvent GATContext    context,
GATMonitorable_Impl    monitorable,
GATObject_const    source,
char const *    name
[static]
 

filestream_adaptor_FireWriteEvent

The function filestream_adaptor_FireWriteEvent fires a 'filestream write' event to all registered metric listeners.

Definition at line 736 of file filestream/adaptor.c.

References GAT_CREATE_STATUS, GAT_CURRENT_STATUS, GAT_INVALID_PARAMETER, GAT_MEMORYFAILURE, GAT_RETURN_STATUS, GAT_SUCCEEDED, GAT_USES_STATUS, GATMetric, GATMetric_CreateMetric(), GATMetric_Destroy(), GATMetricEvent_Create_EventLike(), GATMetricEvent_Destroy(), GATMonitorable_Impl_FireEvent(), GATObject_const, GATuint32, METRIC_FILESTREAM_WRITE, and name.

Referenced by filestream_adaptor_FileStreamCPI_Write().

GATResult filestream_adaptor_FireSeekEvent GATContext    context,
GATMonitorable_Impl    monitorable,
GATObject_const    source,
char const *    name
[static]
 

filestream_adaptor_FireSeekEvent

The function filestream_adaptor_FireSeekEvent fires a 'filestream seek' event to all registered metric listeners.

Definition at line 778 of file filestream/adaptor.c.

References GAT_CREATE_STATUS, GAT_CURRENT_STATUS, GAT_INVALID_PARAMETER, GAT_MEMORYFAILURE, GAT_RETURN_STATUS, GAT_SUCCEEDED, GAT_USES_STATUS, GATMetric, GATMetric_CreateMetric(), GATMetric_Destroy(), GATMetricEvent_Create_EventLike(), GATMetricEvent_Destroy(), GATMonitorable_Impl_FireEvent(), GATObject_const, GATuint32, METRIC_FILESTREAM_SEEK, and name.

Referenced by filestream_adaptor_FileStreamCPI_Seek().

GATResult filestream_adaptor_FireCloseEvent GATContext    context,
GATMonitorable_Impl    monitorable,
GATObject_const    source,
char const *    name
[static]
 

filestream_adaptor_FireCloseEvent

The function filestream_adaptor_FireCloseEvent fires a 'filestream close' event to all registered metric listeners.

Definition at line 820 of file filestream/adaptor.c.

References GAT_CREATE_STATUS, GAT_CURRENT_STATUS, GAT_INVALID_PARAMETER, GAT_MEMORYFAILURE, GAT_RETURN_STATUS, GAT_SUCCEEDED, GAT_USES_STATUS, GATMetric, GATMetric_CreateMetric(), GATMetric_Destroy(), GATMetricEvent_Create_EventLike(), GATMetricEvent_Destroy(), GATMonitorable_Impl_FireEvent(), GATObject_const, GATuint32, METRIC_FILESTREAM_CLOSE, and name.

Referenced by filestream_adaptor_FileStreamCPI_Close().

GATResult filestream_adaptor_register GATContext    error_context,
GATRegistry    registry,
GATTable_const    system_config,
GATTable_const    instance_config,
void *    token
 

filestream_adaptor_register Registers all CPIs this adaptor provides.

This function is invoked by the loader in the GATEngine when an instance of this adaptor is loaded. Each instance has its own private configuration table.

For every CPI provided the adapter has to hand all the corresponding function pointers to the engine to allow to be called back under certain circumstances. Additionally the adaptor may allocate some private data for every loaded instance. This data is handed back to the adaptor as the first parameter to each of the subsequently called functions.

Parameters:
registry  The registry the adaptor should register its CPIs with.
system_config  The system configuration table.
instance_config  The configuration table for this instance.
token  An arbitrary token used by the loader to identify this adaptor instance
Returns:
An error code.

Definition at line 182 of file filestream/adaptor.c.

References GATFileStreamCPI_Data::clone_instance, GATFileStreamCPI_Data::close, cpi, GATFileStreamCPI_Data::create_instance, GATFileStreamCPI_Data::data, GATFileStreamCPI_Data::destroy, GATFileStreamCPI_Data::destroy_instance, GATFileStreamCPI_Data::equals_instance, filestream_adaptor_FileStreamCPI_CloneInstance(), filestream_adaptor_FileStreamCPI_Close(), filestream_adaptor_FileStreamCPI_CreateInstance(), filestream_adaptor_FileStreamCPI_Destroy(), filestream_adaptor_FileStreamCPI_DestroyInstance(), filestream_adaptor_FileStreamCPI_EqualsInstance(), filestream_adaptor_FileStreamCPI_GetMetricEvent(), filestream_adaptor_FileStreamCPI_GetMetrics(), filestream_adaptor_FileStreamCPI_Read(), filestream_adaptor_FileStreamCPI_Seek(), filestream_adaptor_FileStreamCPI_Write(), GAT_MEMORYFAILURE, GAT_SUCCESS, GAT_UNKNOWN_VERSION, GATFileStreamCPI_Create(), GATFileStreamCPI_Destroy(), GATFILESTREAMCPI_VERSION, GATPreferences_Add(), GATPreferences_Create(), GATPreferences_Destroy(), GATResult, GATTable_const, GATVERSION_ISCOMPATIBLE, GATFileStreamCPI_Data::get_metric_event, GATFileStreamCPI_Data::get_metrics, GATFileStreamCPI_Data::read, GATFileStreamCPI_Data::seek, token, and GATFileStreamCPI_Data::write.


Variable Documentation

const char* rcsid = "$Header: /export/cvs-gridlab/wp-1/Codes/GATEngine/C-reference/adaptors/filestream/adaptor.c,v 1.6 2004/04/22 10:25:05 hartmutkaiser Exp $" [static]
 

Definition at line 20 of file filestream/adaptor.c.

GATStaticMetric metric_data[] [static]
 

Definition at line 113 of file filestream/adaptor.c.