PStructuredFile Class Reference

#include <sfile.h>

Inheritance diagram for PStructuredFile:

PFile PChannel PObject

List of all members.

Classes

struct  Element
 Elements in the structure definition. More...

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.

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)


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

All element types in a structure.

Enumerator:
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:
mode Mode in which to open the file.
opts 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:
name Name of file to open.
mode Mode in which to open the file.
opts 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.

References structureSize.

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:
structure Array of structure elements
numElements 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.

Array of elements in the structure.

PINDEX PStructuredFile::structureSize [protected]

Number of bytes in structure.

Referenced by GetStructureSize().


The documentation for this class was generated from the following file:

Generated on Thu Aug 20 12:07:41 2009 for PWLib by  doxygen 1.5.9