Pointwise Plugin SDK
Macros | Typedefs | Enumerations | Functions
pwpPlatform.h File Reference

Cross Platform Functions. More...

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <stddef.h>
+ Include dependency graph for pwpPlatform.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define sysEOF   EOF
 End-of-file value. More...
 

Typedefs

typedef fpos_t sysFILEPOS
 File position data type. More...
 

Enumerations

enum  sysFILEMODE {
  pwpRead = pwpRead_,
  pwpWrite = pwpWrite_,
  pwpAppend = pwpAppend_,
  pwpRWExists = (pwpRead_ | pwpPlus_),
  pwpRWTruncate = (pwpWrite_ | pwpPlus_),
  pwpReadAppend = (pwpAppend_ | pwpPlus_),
  pwpBinary = 0x10,
  pwpFormatted = 0x20,
  pwpUnformatted = 0x40,
  pwpAscii = 0x80
}
 Bit flags used for pwpFileOpen(mode) More...
 

Functions

int pwpCwdPop (void)
 Restore the current directory. More...
 
int pwpCwdPush (const char *dir)
 Change the current directory using a stack. More...
 
int pwpFileClose (FILE *fp)
 Closes a file opened with pwpFileOpen(). More...
 
int pwpFileDelete (const char *filename)
 Delete a file. More...
 
int pwpFileEof (FILE *fp)
 Queries end-of-file status. More...
 
int pwpFileFlush (FILE *fp)
 Flush a file to disk. More...
 
int pwpFileGetpos (FILE *fp, sysFILEPOS *pos)
 Query the current file position. More...
 
int pwpFileGetSize (FILE *fp, size_t *size)
 Get the file's size in bytes. More...
 
int pwpFilenameGetSize (const char *filename, size_t *size)
 Get the file's size in bytes. More...
 
FILE * pwpFileOpen (const char *filename, int mode)
 Opens a file for I/O. More...
 
size_t pwpFileRead (void *buf, size_t size, size_t count, FILE *fp)
 Read an collection of data items from a file. More...
 
void pwpFileRewind (FILE *fp)
 Reset position to the beginning of the file. More...
 
int pwpFileSetpos (FILE *fp, const sysFILEPOS *pos)
 Set the current file position. More...
 
size_t pwpFileWrite (const void *buf, size_t size, size_t count, FILE *fp)
 Write an collection of data items to a file. More...
 
size_t pwpFileWriteStr (const char *str, FILE *fp)
 Write a null-terminated string to a file. More...
 
int pwpSetCurDir (const char *dir)
 Change the current directory. More...
 

Detailed Description

Cross Platform Functions.

Certain operations and data-types required by a plugin are platform dependent. To simplify access to these operations, the following set of cross-platform functions have been implemented in the SDK.

If a plugin uses these functions and data-types, it should compile and run on all Pointwise-supported platforms.

Definition in file pwpPlatform.h.

Macro Definition Documentation

◆ sysEOF

#define sysEOF   EOF

End-of-file value.

Definition at line 50 of file pwpPlatform.h.

Typedef Documentation

◆ sysFILEPOS

File position data type.

Definition at line 51 of file pwpPlatform.h.

Enumeration Type Documentation

◆ sysFILEMODE

Bit flags used for pwpFileOpen(mode)

To compose a full mode value, combine one mode flag with one format flag.

Enumerator
pwpRead 

mode: Read access

pwpWrite 

mode: Write access

pwpAppend 

mode: Append access

pwpRWExists 

mode: Read/Write access. File must exist.

pwpRWTruncate 

mode: Read/Write access. File will be truncated.

pwpReadAppend 

mode: Read with Write append access.

pwpBinary 

format: Generic binary.

pwpFormatted 

format: Formatted FORTRAN (ASCII).

pwpUnformatted 

format: Unformatted FORTRAN (binary records).

pwpAscii 

format: Generic ASCII.

Definition at line 60 of file pwpPlatform.h.

Function Documentation

◆ pwpCwdPop()

int pwpCwdPop ( void  )

Restore the current directory.

This call is only valid after calling pwpCwdPush().

Returns
0 on success, -1 on error.
See also
pwpCwdPush(), pwpSetCurDir()

Definition at line 486 of file pwpPlatform.cxx.

References pwpCwdPush().

Referenced by caeuFileClose(), caeuFileOpen(), PwpCwd::popDir(), and PwCaeGridWrite().

◆ pwpCwdPush()

int pwpCwdPush ( const char *  dir)

Change the current directory using a stack.

Before changing the cwd, the current directory is pushed onto a stack and can be restored by calling pwpCwdPop().

Parameters
dirThe directory to change to.
Returns
0 on success, -1 on error.
See also
pwpCwdPop(), pwpSetCurDir()

Definition at line 461 of file pwpPlatform.cxx.

References pwpSetCurDir(), strOK, and sysGetCwd.

Referenced by caeuFileOpen(), fileDestCwdPush(), PwpCwd::pushDir(), and pwpCwdPop().

◆ pwpFileClose()

int pwpFileClose ( FILE *  fp)

Closes a file opened with pwpFileOpen().

Parameters
fpA file pointer obtained from pwpFileOpen().
Returns
0 on success, sysEOF on error.
See also
pwpFileOpen()

Definition at line 285 of file pwpPlatform.cxx.

References sysEOF.

Referenced by caeuFileClose(), and PwpFile::close().

◆ pwpFileDelete()

int pwpFileDelete ( const char *  filename)

Delete a file.

Parameters
filenameThe name of an existing file to delete.

Definition at line 429 of file pwpPlatform.cxx.

References strOK.

Referenced by caeuFileClose(), and PwpFile::unlink().

◆ pwpFileEof()

int pwpFileEof ( FILE *  fp)

Queries end-of-file status.

Parameters
fpA file pointer obtained from pwpFileOpen().
Returns
!0 if fp is at end-of-file.

Definition at line 296 of file pwpPlatform.cxx.

Referenced by PwpFile::isEof().

◆ pwpFileFlush()

int pwpFileFlush ( FILE *  fp)

Flush a file to disk.

Parameters
fpA file pointer obtained from pwpFileOpen().
Returns
0 on success, sysEOF on error.

Definition at line 303 of file pwpPlatform.cxx.

Referenced by PwpFile::flush().

◆ pwpFileGetpos()

int pwpFileGetpos ( FILE *  fp,
sysFILEPOS pos 
)

Query the current file position.

Parameters
fpA file pointer obtained from pwpFileOpen().
posPointer to a sysFILEPOS object.
Returns
0 on success, !0 on error.
See also
pwpFileSetpos()

Definition at line 310 of file pwpPlatform.cxx.

Referenced by PwpFile::getPos(), PwuUnfRecBegin(), and PwuUnfRecEnd().

◆ pwpFileGetSize()

int pwpFileGetSize ( FILE *  fp,
size_t *  size 
)

Get the file's size in bytes.

Parameters
fpA valid file pointer obtained from pwpFileOpen().
sizePointer to the size variable.
Returns
0 on success, !0 on error.

Definition at line 332 of file pwpPlatform.cxx.

References ASSERT_COMPILE(), sysFileno, and sysFstat.

Referenced by PwpFile::getSize().

◆ pwpFilenameGetSize()

int pwpFilenameGetSize ( const char *  filename,
size_t *  size 
)

Get the file's size in bytes.

Parameters
filenameThe name of an existing file.
sizePointer to the size variable.
Returns
0 on success, !0 on error.

Definition at line 353 of file pwpPlatform.cxx.

Referenced by PwpFile::getSize().

◆ pwpFileOpen()

FILE* pwpFileOpen ( const char *  filename,
int  mode 
)

Opens a file for I/O.

Parameters
filenameThe name of file to open.
modeControls how the file is opened. This value is built from the bitwise OR of 2 sysFILEMODE flags.
Returns
Pointer to the file or 0 if file could not be opened.
See also
sysFILEMODE, pwpFileClose()

Definition at line 230 of file pwpPlatform.cxx.

References chrAPPEND, isMODE, pwpAppend, pwpAscii, pwpBinary, pwpFormatted, pwpRead, pwpUnformatted, pwpWrite, strOK, sysBinaryMode, and sysTextMode.

Referenced by PwpFile::open(), and openFileName().

◆ pwpFileRead()

size_t pwpFileRead ( void *  buf,
size_t  size,
size_t  count,
FILE *  fp 
)

Read an collection of data items from a file.

Parameters
bufPointer to the read buffer.
sizeThe size of each item.
countThe number of items to read.
fpA file pointer obtained from pwpFileOpen().
Returns
The number of full items read. Will be < count on an error.

Definition at line 391 of file pwpPlatform.cxx.

Referenced by PwpFile::checkAscii(), and PwpFile::read().

◆ pwpFileRewind()

void pwpFileRewind ( FILE *  fp)

Reset position to the beginning of the file.

Parameters
fpA file pointer obtained from pwpFileOpen().
See also
pwpFileSetpos(), pwpFileGetpos()

Definition at line 420 of file pwpPlatform.cxx.

Referenced by PwpFile::rewind().

◆ pwpFileSetpos()

int pwpFileSetpos ( FILE *  fp,
const sysFILEPOS pos 
)

Set the current file position.

Parameters
fpA file pointer obtained from pwpFileOpen().
posPointer to an sysFILEPOS object obtained from a call to pwpFileGetpos().
Returns
0 on success, !0 on error.
See also
pwpFileGetpos()

Definition at line 321 of file pwpPlatform.cxx.

Referenced by PwuUnfRecEnd(), PwpFile::setIntPos(), and PwpFile::setPos().

◆ pwpFileWrite()

size_t pwpFileWrite ( const void *  buf,
size_t  size,
size_t  count,
FILE *  fp 
)

Write an collection of data items to a file.

Parameters
bufPointer to the buffer to write.
sizeThe size of each item.
countThe number of items to write.
fpA file pointer obtained from pwpFileOpen().
Returns
The number of full items written. Will be < count on an error.

Definition at line 402 of file pwpPlatform.cxx.

Referenced by pwpFileWriteStr(), PwuUnfRecWriteArr(), unfHdrLenWrite(), PwpBinaryWriter::write(), PwpFile::writeAt(), PwpBinaryWriter::writeOrdered(), and PwpAnchoredFileValueWriter< ValType >::writeUnf().

◆ pwpFileWriteStr()

size_t pwpFileWriteStr ( const char *  str,
FILE *  fp 
)

Write a null-terminated string to a file.

Parameters
strThe string to write. The null-byte is not written.
fpA file pointer obtained from pwpFileOpen().
Returns
1 on success, 0 on error.

Definition at line 413 of file pwpPlatform.cxx.

References pwpFileWrite().

◆ pwpSetCurDir()

int pwpSetCurDir ( const char *  dir)

Change the current directory.

Changes the cwd without first saving current directory to stack. Typically, a plugin should instead use pwpCwdPush() and pwpCwdPop().

Parameters
dirThe directory to change to.
Returns
0 on success, -1 on error.
See also
pwpCwdPush(), pwpCwdPop()

Definition at line 450 of file pwpPlatform.cxx.

References pwpSetCurDir().

Referenced by pwpCwdPush(), and pwpSetCurDir().