Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

PStructuredFile Class Reference

#include <sfile.h>

Inheritance diagram for PStructuredFile:

PFile PChannel PObject List of all members.

Structure definition functions

enum  ElementType {
  Character, Integer16, Integer32, Integer64,
  Float32, Float64, Float80, NumElementTypes
}
 All element types in a structure. More...

PINDEX GetStructureSize ()
void SetStructure (Element *structure, PINDEX numElements)

Public Types


Public Member Functions

Construction
 PStructuredFile ()
 PStructuredFile (OpenMode mode, int opts=ModeDefault)
 PStructuredFile (const PFilePath &name, OpenMode mode=ReadWrite, int opts=ModeDefault)
Structured I/O functions
BOOL Read (void *buffer)
BOOL Write (const void *buffer)

Protected Attributes

PINDEX structureSize
 Number of bytes in structure.

Elementstructure
 Array of elements in the structure.

PINDEX numElements
 Number of elements in the array.


Detailed Description

A class representing a a structured file that is portable accross CPU architectures (as in the XDR protocol).

This differs from object serialisation in that the access is always to a disk file and is random access. It would primarily be used for database type applications.


Member Enumeration Documentation

enum PStructuredFile::ElementType
 

All element types in a structure.

Enumeration values:
Character  Element is a single character.
Integer16  Element is a 16 bit integer.
Integer32  Element is a 32 bit integer.
Integer64  Element is a 64 bit integer.
Float32  Element is a 32 bit IEE floating point number.
Float64  Element is a 64 bit IEE floating point number.
Float80  Element is a 80 bit IEE floating point number.
NumElementTypes 


Constructor & Destructor Documentation

PStructuredFile::PStructuredFile  ) 
 

Create a structured file object but do not open it. It does not initially have a valid file name. However, an attempt to open the file using the #PFile::Open()# function will generate a unique temporary file.

The initial structure size is one byte.

PStructuredFile::PStructuredFile OpenMode  mode,
int  opts = ModeDefault
 

Create a unique temporary file name, and open the file in the specified mode and using the specified options. Note that opening a new, unique, temporary file name in ReadOnly mode will always fail. This would only be usefull in a mode and options that will create the file.

The #PChannel::IsOpen()# function may be used after object construction to determine if the file was successfully opened.

Parameters:
opts  Mode in which to open the file. OpenOptions enum# for open operation.

PStructuredFile::PStructuredFile const PFilePath name,
OpenMode  mode = ReadWrite,
int  opts = ModeDefault
 

Create a structured file object with the specified name and open it in the specified mode and with the specified options.

The #PChannel::IsOpen()# function may be used after object construction to determine if the file was successfully opened.

Parameters:
mode  Name of file to open.
opts  Mode in which to open the file. OpenOptions enum# for open operation.


Member Function Documentation

PINDEX PStructuredFile::GetStructureSize  )  [inline]
 

Get the size of each structure in the file.

Returns:
number of bytes in a structure.

BOOL PStructuredFile::Read void *  buffer  ) 
 

Read a sequence of bytes into the specified buffer, translating the structure according to the specification made in the #SetStructure()# function.

Returns:
TRUE if the structure was successfully read.
Parameters:
buffer  Pointer to structure to receive data.

void PStructuredFile::SetStructure Element structure,
PINDEX  numElements
 

Set the structure of each record in the file.

Parameters:
numElements  Array of structure elements Number of structure elements in structure.

BOOL PStructuredFile::Write const void *  buffer  ) 
 

Write a sequence of bytes into the specified buffer, translating the structure according to the specification made in the #SetStructure()# function.

Returns:
TRUE if the structure was successfully written.
Parameters:
buffer  Pointer to structure to write data from.


Member Data Documentation

PINDEX PStructuredFile::numElements [protected]
 

Number of elements in the array.

Element* PStructuredFile::structure [protected]
 

Array of elements in the structure.

PINDEX PStructuredFile::structureSize [protected]
 

Number of bytes in structure.


The documentation for this class was generated from the following file:
Generated on Sat Jul 24 15:36:00 2004 for PWLib by doxygen 1.3.7