GridLab
Grid Application Toolkit

A simple API for Grid Applications
GAT

Menu



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

GATFileStream.c File Reference

Main .c for the GATFileStream class. More...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include "GAT.h"
#include "GATRegistry.h"
#include "GATInternal.h"
#include "GATFileStreamCPI.h"
#include "GATMetricEvent.h"

Include dependency graph for GATFileStream.c:

Include dependency graph

Go to the source code of this file.

Compounds

struct  GATFileStream_S

Functions

 GATOBJECT_DEFINE_VTABLE (GATFileStream)
 GATSTREAMABLE_DEFINE_VTABLE (GATFileStream)
 GATMONITORABLE_DEFINE_VTABLE (GATFileStream)
 GATOBJECT_DEFINE_CONVERTERS (GATFileStream)
GATResult GATFileStream_GetCPIInstanceData (GATFileStream filestream, void **data)
GATFileStream GATFileStream_Create (GATContext context, GATPreferences_const preferences, GATLocation location, GATFileStreamMode mode)
 Constructs an instance of this class.

void GATFileStream_Destroy (GATFileStream *fileStream)
 GATFileStream_Destroy The GATFileStream destructor.

GATType GATFileStream_GetType (GATFileStream_const fileStream)
 int GATFileStream_GetType(GATFileStream_const fileStream) Return the type of the GATFileStream

GATResult GATFileStream_Clone (GATFileStream_const fileStream, GATFileStream *new_object)
 int GATFileStream_Clone(GATFileStream_const fileStream, GATFileStream *new_fileStream) Clone the given GATFileStream

GATResult GATFileStream_Equals (GATFileStream_const lhs, GATFileStream_const rhs, GATBool *isequal)
 int GATFileStream_Equals(GATFileStream_const lhs, GATFileStream_const rhs, GATBool *isequal) Compares two GATFileStream objects

GATResult GATFileStream_GetInterface (GATFileStream_const fileStream, GATInterface iftype, void const **ifp)
 int GATFileStream_GetInterface(GATFileStream_const fileStream, GATInterface iftype, void const **ifp) Get an interface supported by a GATFileStream

GATResult GATFileStream_AddMetricListener (GATFileStream fileStream, GATMetricListener listener, void *listener_data, GATMetric metric, GATuint32 *cookie)
 GATFileStream_AddMetricListener.

GATResult GATFileStream_RegisterPolling (GATFileStream fileStream, GATMetric metric, GATMetricEvent *event, GATuint32 *cookie)
 GATFileStream_RegisterPolling.

GATResult GATFileStream_RemoveRegisteredMetric (GATFileStream fileStream, GATMetric metric, GATuint32 cookie)
 GATFileStream_RemoveRegisteredMetric.

GATResult GATFileStream_GetMetrics (GATFileStream_const fileStream, GATList_GATMetric *metrics)
 GATFileStream_GetMetrics.

GATResult GATFileStream_Read (GATFileStream object, void *buffer, GATuint32 size, GATuint32 *read_bytes)
GATResult GATFileStream_Write (GATFileStream object, void const *buffer, GATuint32 size, GATuint32 *written_bytes)
GATResult GATFileStream_Seek (GATFileStream object, GATOrigin origin, GATint32 offset, GATuint32 *new_position)
GATResult GATFileStream_Close (GATFileStream object)

Variables

const char * rcsid = "$Header: /export/cvs-gridlab/wp-1/Codes/GATEngine/C-reference/src/GATFileStream.c,v 1.11 2004/04/09 12:29:18 hartmutkaiser Exp $"
GATFileStream_vtable GATFileStream__vtable
GATFileStream_IStreamable_vtable GATFileStream_IStreamable__vtable
GATFileStream_IMonitorable_vtable GATFileStream_IMonitorable__vtable


Detailed Description

Main .c for the GATFileStream class.

An GATFileStream represents a connection to another process.

Date:
Date:
2004/04/09 12:29:18

Version:
Header:
/export/cvs-gridlab/wp-1/Codes/GATEngine/C-reference/src/GATFileStream.c,v 1.11 2004/04/09 12:29:18 hartmutkaiser Exp

Copyright (C) Kelly Davis This is part of the GAT Engine. Contributed by Kelly Davis <kdavis@aei.mpg.de>

Use, modification and distribution is subject to the Gridlab Software License. (See accompanying file GLlicense.txt or copy at http://www.gridlab.org/GLlicense.txt)

Definition in file GATFileStream.c.


Function Documentation

GATOBJECT_DEFINE_VTABLE GATFileStream   
 

GATSTREAMABLE_DEFINE_VTABLE GATFileStream   
 

GATMONITORABLE_DEFINE_VTABLE GATFileStream   
 

GATOBJECT_DEFINE_CONVERTERS GATFileStream   
 

Definition at line 41 of file GATJob.c.

GATResult GATFileStream_GetCPIInstanceData GATFileStream    filestream,
void **    data
[static]
 

Definition at line 682 of file GATFileStream.c.

References GATFileStreamCPI_Instance::context, GATFileStream_S::data, data, GAT_CREATE_STATUS, GAT_INVALID_HANDLE, GAT_INVALID_PARAMETER, GAT_RETURN_STATUS, and GAT_USES_STATUS.

GATFileStream GATFileStream_Create GATContext    context,
GATPreferences_const    preferences,
GATLocation    location,
GATFileStreamMode    mode
 

Constructs an instance of this class.

Parameters:
context  Used to broker resources.
preferences  User preferences for this instance.
location  The location of the file to open
mode  The mode in which to open the file (GATLogicalFileMode_Read, GATLogicalFileMode_Write, GATLogicalFileMode_Append, or GATLogicalFileMode_ReadWrite).

Definition at line 102 of file GATFileStream.c.

References GATFileStreamCPI_Instance::context, GATFileStream_S::cpi, GATFileStream_S::cpilist, GATFileStream_S::data, GAT_CREATE_STATUS, GAT_CURRENT_STATUS, GAT_FAILED, GAT_MEMORYFAILURE, GAT_NO_REGISTERED_CPI, GAT_NOTIMPL, GAT_STATUS_APIENTRY, GAT_STORE_STATUS, GAT_SUCCEEDED, GAT_SUCCESS, GATBool, GATContext_GetPreferences(), GATContext_internal_GetRegistry(), GATFalse, GATFileStream__vtable, GATFileStream_Destroy(), GATFileStream_IMonitorable__vtable, GATFileStream_IStreamable__vtable, GATFileStreamCPI_CreateInstance(), GATFileStreamCPI_GetMetrics(), GATFileStreamMode, GATLocation_Clone(), GATFileStream_S::GATMonitorable__vtable, GATMonitorable_Impl_Create(), GATFileStream_S::GATObject__vtable, GATPreferences_const, GATRegistry_const, GATResult, GATFileStream_S::GATStreamable__vtable, GATTrue, GATFileStreamCPI_Instance::location, GATFileStreamCPI_Instance::mode, GATFileStreamCPI_Instance::monitorable, and GATFileStreamCPI_Instance::source.

void GATFileStream_Destroy GATFileStream   fileStream
 

GATFileStream_Destroy The GATFileStream destructor.

This is the destructor for GATFileStream objects.

Parameters:
fileStream  An old GATFileStream

Definition at line 212 of file GATFileStream.c.

References GATFileStreamCPI_DestroyInstance(), GATLocation_Destroy(), and GATMonitorable_Impl_Destroy().

Referenced by GATFileStream_Clone(), and GATFileStream_Create().

GATType GATFileStream_GetType GATFileStream_const    fileStream
 

int GATFileStream_GetType(GATFileStream_const fileStream) Return the type of the GATFileStream

The function GATFileStream_GetType always returns GATType_GATFileStream.

Parameters:
fileStream  The object to inspect
Returns:
returns always #GATType_GATFileStream.

Definition at line 239 of file GATFileStream.c.

References GAT_UNUSED_PARAMETER, GATFileStream_const, GATType, and GATType_GATFileStream.

GATResult GATFileStream_Clone GATFileStream_const    fileStream,
GATFileStream   new_object
 

int GATFileStream_Clone(GATFileStream_const fileStream, GATFileStream *new_fileStream) Clone the given GATFileStream

The function GATFileStream_Clone generates a (deep) copy of the given GATFileStream.

Parameters:
new_object  The object to clone
new_fileStream  The pointer, through which the result is to be returned.
Returns:
An error type.

Definition at line 258 of file GATFileStream.c.

References assert, GATFileStreamCPI_Instance::context, GATFileStream_S::cpi, GATFileStream_S::cpilist, GATFileStream_S::data, GAT_CREATE_STATUS, GAT_CURRENT_STATUS, GAT_FAILED, GAT_INVALID_HANDLE, GAT_MEMORYFAILURE, GAT_RETURN_STATUS, GAT_STATUS_APIENTRY, GAT_SUCCEEDED, GATFileStream__vtable, GATFileStream_const, GATFileStream_Destroy(), GATFileStream_IMonitorable__vtable, GATFileStream_IStreamable__vtable, GATFileStreamCPI_CloneInstance(), GATLocation_Clone(), GATFileStream_S::GATMonitorable__vtable, GATMonitorable_Impl_Clone(), GATFileStream_S::GATObject__vtable, GATFileStream_S::GATStreamable__vtable, GATFileStreamCPI_Instance::location, GATFileStreamCPI_Instance::mode, GATFileStreamCPI_Instance::monitorable, and GATFileStreamCPI_Instance::source.

GATResult GATFileStream_Equals GATFileStream_const    lhs,
GATFileStream_const    rhs,
GATBool   isequal
 

int GATFileStream_Equals(GATFileStream_const lhs, GATFileStream_const rhs, GATBool *isequal) Compares two GATFileStream objects

The function GATFileStream_Equals compares two fileStream objects of type #GATFileStream.

Parameters:
lhs  The first fileStream object to compare
rhs  The second fileStream object to compare
isequal  The pointer to the GATBool variable, which should receive the result if the comparision
Returns:
An error code.

Definition at line 362 of file GATFileStream.c.

References GAT_CREATE_STATUS, GAT_CURRENT_STATUS, GAT_INVALID_HANDLE, GAT_RETURN_STATUS, GAT_STATUS_APIENTRY, GAT_SUCCEEDED, GATBool, GATFalse, GATFileStream_const, GATFileStreamCPI_EqualsInstance(), GATLocation_Equals(), and GATTrue.

GATResult GATFileStream_GetInterface GATFileStream_const    fileStream,
GATInterface    iftype,
void const **    ifp
 

int GATFileStream_GetInterface(GATFileStream_const fileStream, GATInterface iftype, void const **ifp) Get an interface supported by a GATFileStream

The function GATFileStream_GetInterface allows to get a pointer to an additional interface supported by this GATFileStream.

Parameters:
object  The object to be asked for the new interface.
iftype  The interface the object is to be asked for.
ifp  The pointer, through which the result is to be returned.
Returns:
An error type.

Definition at line 403 of file GATFileStream.c.

References GAT_CREATE_STATUS, GAT_INVALID_HANDLE, GAT_INVALID_PARAMETER, GAT_NO_INTERFACE, GAT_RETURN_STATUS, GAT_STATUS_APIENTRY, GATFileStream_const, GATInterface, GATInterface_IMonitorable, and GATInterface_IStreamable.

GATResult GATFileStream_AddMetricListener GATFileStream    fileStream,
GATMetricListener    listener,
void *    listener_data,
GATMetric    metric,
GATuint32   cookie
 

GATFileStream_AddMetricListener.

The function GATFileStream_AddMetricListener adds the passed instance of a GATMetricListener to the list of GATMetricListeners which are notified of fired GATMetricEvents of the type described by the provided GATMetric instance.

Parameters:
fileStream  The GATFileStream instance to add the GATMetricListener to.
listener  The GTAMetricListener to call, when the corresponding GATMetricEvent is fired.
listener_data  The client supplied data, which will be passed through to the GATMetricListener.
metric  The GATMetric instance describing the GATMetricEvent to pass to the GATMetricListener.
cookie  The returned value should be used to remove the GATMetricListener from this GATMonitorable.
Returns:
An error code.

Definition at line 458 of file GATFileStream.c.

References GATFileStreamCPI_Instance::context, GATFileStream_S::data, GAT_CREATE_STATUS, GAT_INVALID_HANDLE, GAT_NO_INTERFACE, GAT_RETURN_STATUS, GAT_STATUS_APIENTRY, GATMetric, GATMetricListener, GATMonitorable_Impl_AddMetricListener(), GATuint32, and GATFileStreamCPI_Instance::monitorable.

GATResult GATFileStream_RegisterPolling GATFileStream    fileStream,
GATMetric    metric,
GATMetricEvent   event,
GATuint32   cookie
 

GATFileStream_RegisterPolling.

The function GATFileStream_RegisterPolling registers a continuous metric with the given GATFileStream instance.

Parameters:
fileStream  The GATFileStream instance to register the metric with.
metric  The GATMetric instance describing the GATMetricEvent to pass to the GATMetricListener. This metric instance must be of type GATMeasurementType_Continuous, otherwise an error is returned.
event  The pointer to a variable, which should receive the resulting GATMetricEvent. The GATMetricEvent instance should be freed by the caller when it isn't used anymore.
cookie  The returned value should be used to remove the GATMetricListener from this GATFileStream.
Returns:
An error code.

Definition at line 499 of file GATFileStream.c.

References GATFileStreamCPI_Instance::context, GATFileStream_S::cpi, GATFileStream_S::data, GAT_CREATE_STATUS, GAT_CURRENT_STATUS, GAT_INVALID_HANDLE, GAT_NO_INTERFACE, GAT_RETURN_STATUS, GAT_STATUS_APIENTRY, GAT_SUCCEEDED, GATFileStreamCPI_GetMetricEvent(), GATMetric, GATMonitorable_Impl_RegisterPolling(), GATMonitorable_Impl_RemoveRegisteredMetric(), GATuint32, and GATFileStreamCPI_Instance::monitorable.

GATResult GATFileStream_RemoveRegisteredMetric GATFileStream    fileStream,
GATMetric    metric,
GATuint32    cookie
 

GATFileStream_RemoveRegisteredMetric.

The function GATFileStream_RemoveRegisteredMetric removes a GATMetricListener, which was previously registered with GATFileStream_AddMetricListener.

Parameters:
fileStream  The GATFileStream instance to remove the GATMetricListener from.
metric  The GATMetric instance describing the GATMetricEvent to pass to the GATMetricListener.
cookie  This value identifies the GATMetricListener to remove, it was returned from the corresponding GATMonitorable_AddMetricListener or GATMonitorable_MetricRegisterPolling functions.
Returns:
An error code.

Definition at line 548 of file GATFileStream.c.

References GATFileStreamCPI_Instance::context, GATFileStream_S::data, GAT_CREATE_STATUS, GAT_INVALID_HANDLE, GAT_NO_INTERFACE, GAT_RETURN_STATUS, GAT_STATUS_APIENTRY, GATMetric, GATMonitorable_Impl_RemoveRegisteredMetric(), GATuint32, and GATFileStreamCPI_Instance::monitorable.

GATResult GATFileStream_GetMetrics GATFileStream_const    fileStream,
GATList_GATMetric *    metrics
 

GATFileStream_GetMetrics.

The function GATFileStream_GetMetrics returns a list of metrics supported by this GATFileStream.

Parameters:
fileStream  The GATFileStream instance, for which the supported metrics should be returned.
metrics  The pointer to the variable, which receives the resulting list of metrics.
Returns:
An error code.

Definition at line 584 of file GATFileStream.c.

References GAT_CREATE_STATUS, GAT_INVALID_HANDLE, GAT_NO_INTERFACE, GAT_RETURN_STATUS, GAT_STATUS_APIENTRY, GATFileStream_const, and GATMonitorable_Impl_GetMetrics().

GATResult GATFileStream_Read GATFileStream    object,
void *    buffer,
GATuint32    size,
GATuint32   read_bytes
 

Definition at line 612 of file GATFileStream.c.

References GATFileStreamCPI_Instance::context, GATFileStream_S::cpi, GATFileStream_S::data, GAT_CREATE_STATUS, GAT_INVALID_HANDLE, GAT_RETURN_STATUS, GAT_STATUS_APIENTRY, GATFileStreamCPI_Read(), GATuint32, and size.

GATResult GATFileStream_Write GATFileStream    object,
void const *    buffer,
GATuint32    size,
GATuint32   written_bytes
 

Definition at line 627 of file GATFileStream.c.

References GATFileStreamCPI_Instance::context, GATFileStream_S::cpi, GATFileStream_S::data, GAT_CREATE_STATUS, GAT_INVALID_HANDLE, GAT_RETURN_STATUS, GAT_STATUS_APIENTRY, GATFileStreamCPI_Write(), GATuint32, and size.

GATResult GATFileStream_Seek GATFileStream    object,
GATOrigin    origin,
GATint32    offset,
GATuint32   new_position
 

Definition at line 642 of file GATFileStream.c.

References GATFileStreamCPI_Instance::context, GATFileStream_S::cpi, GATFileStream_S::data, GAT_CREATE_STATUS, GAT_INVALID_HANDLE, GAT_RETURN_STATUS, GAT_STATUS_APIENTRY, GATFileStreamCPI_Seek(), GATint32, GATOrigin, and GATuint32.

GATResult GATFileStream_Close GATFileStream    object
 

Definition at line 656 of file GATFileStream.c.

References GATFileStreamCPI_Instance::context, GATFileStream_S::cpi, GATFileStream_S::data, GAT_CREATE_STATUS, GAT_INVALID_HANDLE, GAT_RETURN_STATUS, GAT_STATUS_APIENTRY, GATFileStreamCPI_Close(), and GATResult.


Variable Documentation

const char* rcsid = "$Header: /export/cvs-gridlab/wp-1/Codes/GATEngine/C-reference/src/GATFileStream.c,v 1.11 2004/04/09 12:29:18 hartmutkaiser Exp $" [static]
 

Definition at line 19 of file GATFileStream.c.

GATFileStream_vtable GATFileStream__vtable [static]
 

Initial value:

 {
  GATFileStream_GetType,
  GATFileStream_Destroy,
  GATFileStream_Equals,
  GATFileStream_Clone,
  GATFileStream_GetInterface,
  GATFileStream_GetCPIInstanceData
}

Definition at line 66 of file GATFileStream.c.

Referenced by GATFileStream_Clone(), and GATFileStream_Create().

GATFileStream_IStreamable_vtable GATFileStream_IStreamable__vtable [static]
 

Initial value:

{
  GATFileStream_Read,
  GATFileStream_Write,
  GATFileStream_Seek,
  GATFileStream_Close
}

Definition at line 75 of file GATFileStream.c.

Referenced by GATFileStream_Clone(), and GATFileStream_Create().

GATFileStream_IMonitorable_vtable GATFileStream_IMonitorable__vtable [static]
 

Initial value:

 {
  GATFileStream_AddMetricListener,
  GATFileStream_RegisterPolling,
  GATFileStream_RemoveRegisteredMetric,
  GATFileStream_GetMetrics
}

Definition at line 83 of file GATFileStream.c.

Referenced by GATFileStream_Clone(), and GATFileStream_Create().