Pointwise CAE 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

FILE * pwpFileOpen (const char *filename, int mode)
 Opens a file for I/O. More...
 
int pwpFileClose (FILE *fp)
 Closes a file opened with pwpFileOpen(). 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 pwpFileSetpos (FILE *fp, const sysFILEPOS *pos)
 Set the current file position. More...
 
size_t pwpFileRead (void *buf, size_t size, size_t count, FILE *fp)
 Read an collection of data items from a file. 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...
 
void pwpFileRewind (FILE *fp)
 Reset position to the beginning of the file. More...
 
int pwpFileDelete (const char *filename)
 Delete a file. More...
 
int pwpCwdPush (const char *dir)
 Change the current directory. More...
 
int pwpCwdPop (void)
 Restore 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 52 of file pwpPlatform.h.

Referenced by pwpFileClose().

Typedef Documentation

◆ sysFILEPOS

File position data type.

Definition at line 53 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 62 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()

Definition at line 212 of file pwpPlatform.cxx.

References dirStack, and stackCnt.

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

◆ pwpCwdPush()

int pwpCwdPush ( const char *  dir)

Change the current directory.

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()

Definition at line 192 of file pwpPlatform.cxx.

References dirStack, FILENAME_MAX, MAXSTACK, and stackCnt.

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

◆ 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 91 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 176 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 102 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 109 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 116 of file pwpPlatform.cxx.

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

◆ 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 47 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 138 of file pwpPlatform.cxx.

Referenced by 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 167 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 127 of file pwpPlatform.cxx.

Referenced by PwuUnfRecEnd(), 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 149 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 160 of file pwpPlatform.cxx.

References pwpFileWrite().