Main Page   Class Hierarchy   Compound List   File List   Compound 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 Methods

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 Fri Aug 13 15:50:10 2004 for PWLib by doxygen1.2.18