r3file
oops/r3file.h
r3oops
File Class
r3Root
R3CLID_ROOT
r3File
R3CLID_FILE - 5
READ, READLONG, READWORD, READFLOAT, READSTR, WRITE, WRITELONG, WRITEWORD, WRITEFLOAT, WRITESTR, SEEK, REMOVE, TELL, GETS, SCAN, FLUSH, FERROR, PUTC, FREAD, FWRITE, GETC, PUTS, CREATEFILEERRORSTRING, ACCEPTSOCKET, CLOSEACCEPTEDSOCKET, WRITEFLOAT32, READFLOAT32, GETSTATUS, RENAME, REMOVE, GETHOSTNAME, MAKEDIR, COPYFILE, WRITEBYTE, READBYTE, REMOVEDIR, CLEANUPDIR, OPEN, CLOSE, WRITELONGLONG, READLONGLONG, GETHOSTIP, GETHOSTBYNAME, WAITSOCKET, GETHOSTBYADDR, WRITESIZE, READSIZE, WRITEFILENAME, READFILENAME,
FileName, Mode, Buffer, TcpPort, OpenPort, NonBlocking, TimeOut,
R3FM_READ
READ
R3FM_READ
R3BOOL, TRUE if succeeded
R3TAG*, R3FIA_Buffer, R3FIA_Size
rc = obj.READ(p3);
Read from file
R3FM_READLONG
READLONG
R3FM_READLONG
obj.READLONG();
Read long (32 bit) integer.
R3FM_READWORD
READWORD
R3FM_READWORD
obj.READWORD();
Read 16 bit integer
R3FM_READFLOAT
READFLOAT
R3FM_READFLOAT
R3FLOAT, buffer for reading
obj.READFLOAT(p3);
Read double precision float
R3FM_READSTR
READSTR
R3FM_READSTR
R3SIZE, actual bytes read
R3TAG*, R3FIA_Buffer R3FIA_Size
rc = obj.READSTR(p3);
Read string from a file
R3FM_WRITE
WRITE
R3FM_WRITE
R3SIZE, actual bytes written
R3TAG*, R3FIA_Buffer R3FIA_Size
rc = obj.WRITE(p3);
Write data
R3FM_WRITELONG
WRITELONG
R3FM_WRITELONG
R3LONG, long to be written
obj.WRITELONG(p3);
Write 32 bit integer
R3FM_WRITEWORD
WRITEWORD
R3FM_WRITEWORD
R3WORD, variable to be written
obj.WRITEWORD(p3);
Write 16 bit integer
R3FM_WRITEFLOAT
WRITEFLOAT
R3FM_WRITEFLOAT
R3FLOAT, address of the floating point variable to be written
obj.WRITEFLOAT(p3);
Write double precision float
R3FM_WRITESTR
WRITESTR
R3FM_WRITESTR
R3SIZE, number of bytes written
R3TAG*, R3FIA_Buffer R3FIA_Size
rc = obj.WRITESTR(p3);
Write string
R3FM_SEEK
SEEK
R3FM_SEEK
R3TAG*, R3FIA_Offset, R3FIA_Seek
obj.SEEK(p3);
Seek file. See seek codes below for values for R3FIA_Seek tag.
R3FM_REMOVE
REMOVE
R3FM_REMOVE
R3BOOL
rc = obj.REMOVE();
Remove file associated with the file object
R3FM_TELL
TELL
R3FM_TELL
R3SIZE, current position
rc = obj.TELL();
Tell current position
R3FM_GETS
GETS
R3FM_GETS
char*, pointer to string buffer or NULL if read failed.
R3TAG*, R3FIA_Buffer, R3FIA_Size
rc = obj.GETS(p3);
Read string from a file
R3FM_SCAN
SCAN
R3FM_SCAN
R3INT, number of matches
char*, format string
R3TAG*, buffers for format string given with F3FIA_Scan
rc = obj.SCAN(p1, p3);
Read formatted
R3FM_FLUSH
FLUSH
R3FM_FLUSH
obj.FLUSH();
Flush file associated with object
R3FM_FERROR
FERROR
R3FM_FERROR
R3INT, error code
rc = obj.FERROR();
Return error code
R3FM_PUTC
PUTC
R3FM_PUTC
R3BOOL
R3INT, character to be written
rc = obj.PUTC(p3);
Write character
R3FM_FREAD
FREAD
R3FM_FREAD
R3SIZE, actual bytes read
R3INT, size of iten
R3INT, number of items
char*, buffer
rc = obj.FREAD(p1, p2, p3);
Read from file
R3FM_FWRITE
FWRITE
R3FM_FWRITE
R3SIZE, actual bytes written
R3INT, size of item
R3INT, number of items to be written
char*, buffer containing data
rc = obj.FWRITE(p1, p2, p3);
Write to a file
R3FM_GETC
GETC
R3FM_GETC
R3INT, character
rc = obj.GETC();
Read single character from file
R3FM_PUTS
PUTS
R3FM_PUTS
char*, string to be written
obj.PUTS(p3);
Write null terminated string to a file
R3FCM_CREATEFILEERRORSTRING
CREATEFILEERRORSTRING
R3FCM_CREATEFILEERRORSTRING
R3INT, error code
char, string where error string is created
char, filename
obj.CREATEFILEERRORSTRING(p1, p2, p3);
Creates a error string for a file error code. This is a class method.
R3FM_ACCEPTSOCKET
ACCEPTSOCKET
R3FM_ACCEPTSOCKET
obj.ACCEPTSOCKET();
Wait for connection with 'accept()'
R3FM_CLOSEACCEPTEDSOCKET
CLOSEACCEPTEDSOCKET
R3FM_CLOSEACCEPTEDSOCKET
obj.CLOSEACCEPTEDSOCKET();
Close the accepted socket so a new connection can be made
R3FM_WRITEFLOAT32
WRITEFLOAT32
R3FM_WRITEFLOAT32
obj.WRITEFLOAT32();
Write single precision float
R3FM_READFLOAT32
READFLOAT32
R3FM_READFLOAT32
obj.READFLOAT32();
Read single precision float
R3FCM_GETSTATUS
GETSTATUS
R3FCM_GETSTATUS
R3BOOL, true if status was succesfully fetched
char*, file name
rc = obj.GETSTATUS(p1, 0);
Class message: Get file status
R3FCM_RENAME
RENAME
R3FCM_RENAME
char*, file or directory name to be renamed
char*, new name. Must not refer to existing file
obj.RENAME(p1, p3);
Rename a file
R3FCM_REMOVE
REMOVE
R3FCM_REMOVE
char*, filename;
obj.REMOVE(p3);
Remove a file.
R3FCM_GETHOSTNAME
GETHOSTNAME
R3FCM_GETHOSTNAME
R3BOOL, true if sucesfully fetched
R3INT, max length of the buffer to store the hostname
char*, buffer for the host name to be fetched
rc = obj.GETHOSTNAME(p1, p3);
Fetch the host name of the current workstation
R3FCM_MAKEDIR
MAKEDIR
R3FCM_MAKEDIR
R3BOOL, true if succeeded
char*, name of the directory to be created
rc = obj.MAKEDIR(p3);
Create a new directory
R3FCM_COPYFILE
COPYFILE
R3FCM_COPYFILE
R3BOOL, true if succeeded
char*, name of the file to be copied from
char*, name of the file to be copied to
rc = obj.COPYFILE(p1, p3);
Copies a file
R3FM_WRITEBYTE
WRITEBYTE
R3FM_WRITEBYTE
R3BYTE, variable to be written
obj.WRITEBYTE(p3);
Write 8 bit integer
R3FM_READBYTE
READBYTE
R3FM_READBYTE
R3BYTE*
obj.READBYTE(p3);
Read 8 bit integer
R3FCM_REMOVEDIR
REMOVEDIR
R3FCM_REMOVEDIR
char*, name of the folder to be removed
obj.REMOVEDIR(p3);
Remove a directory. The directory must be empty.
R3FCM_CLEANUPDIR
CLEANUPDIR
R3FCM_CLEANUPDIR
char*, name of the folder
int, age in seconds. Files modified/created longer than this will be deleted
obj.CLEANUPDIR(p1, p3);
Remove all files older than a given age from a directory.
R3FM_OPEN
OPEN
R3FM_OPEN
R3BOOL, true if succeeded
rc = obj.OPEN();
Open the actual file, if not already opened. FileName * and Mode attributes must have been set.
R3FM_CLOSE
CLOSE
R3FM_CLOSE
obj.CLOSE();
Close the actual file.
R3FM_WRITELONGLONG
WRITELONGLONG
R3FM_WRITELONGLONG
obj.WRITELONGLONG();
Write 64 bit integer
R3FM_READLONGLONG
READLONGLONG
R3FM_READLONGLONG
obj.READLONGLONG();
Read long long (64 bit) integer.
R3FCM_GETHOSTIP
GETHOSTIP
R3FCM_GETHOSTIP
R3UINT, ip address
char*, host name
rc = obj.GETHOSTIP(p3);
Given a host name return the IP
R3FCM_GETHOSTBYNAME
GETHOSTBYNAME
R3FCM_GETHOSTBYNAME
R3BOOL, true if sucesfully fetched
char*, host name (such as www.realsoft.com)
int, size of the result buffer
char*, result
rc = obj.GETHOSTBYNAME(p1, p2, p3);
Fetch the canonical name of the given host.
R3FM_WAITSOCKET
WAITSOCKET
R3FM_WAITSOCKET
R3BOOL, true if socket has data, FALSE if timeout
R3INT, 0 = read, 1 = write
R3INT, timeout in seconds
rc = obj.WAITSOCKET(p1, p3);
Return after given timeout or when the socket has outstanding incoming * data or when the socket accepts further data for transmission.
R3FCM_GETHOSTBYADDR
GETHOSTBYADDR
R3FCM_GETHOSTBYADDR
R3BOOL, true if sucesfully fetched
R3UINT, ip
int, size of the result buffer
char*, result
rc = obj.GETHOSTBYADDR(p1, p2, p3);
Fetch the canonical name of the given host.
R3FM_WRITESIZE
WRITESIZE
R3FM_WRITESIZE
R3SIZE, size to be written
obj.WRITESIZE(p3);
Write size (32 or 64 bit integer, depending on the platform).
R3FM_READSIZE
READSIZE
R3FM_READSIZE
R3BOOL, true if succeeded.
rc = obj.READSIZE();
Read 32/64 bit integer. If running 32 bit and * the data in the file is 64 bit and does not fit into 32 bit * integer, then FALSE is returned and the error code is R3FERR_TOOBIG.
R3FM_WRITEFILENAME
WRITEFILENAME
R3FM_WRITEFILENAME
R3BOOL, true if succeeded
char*, file name, max lenght R3LEN_DOSNAME
rc = obj.WRITEFILENAME(p3);
Write file name to a file
R3FM_READFILENAME
READFILENAME
R3FM_READFILENAME
R3BOOL, true if succeeded
char*, file name, buffer must be at least R3LEN_DOSNAME bytes long
rc = obj.READFILENAME(p3);
Write file name to a file
FileName
FileName
R3FIA_FileName
String
char*
file name
jsobj.SetFileName(value);
value = jsobj.GetFileName();
char* value = ...;
R3SetAttrs(r3obj, R3FIA_FileName, value, R3TAG_END);
char* value;
R3GetAttrs(r3obj, R3FIA_FileName, &value, R3TAG_END);
Mode
Mode
R3FIA_Mode
String
char*
as defined in stdio.h
jsobj.SetMode(value);
char* value = ...;
R3SetAttrs(r3obj, R3FIA_Mode, value, R3TAG_END);
Buffer
Buffer
R3FIA_Buffer
String
char*
data to be read/written
jsobj.SetBuffer(value);
value = jsobj.GetBuffer();
char* value = ...;
R3SetAttrs(r3obj, R3FIA_Buffer, value, R3TAG_END);
char* value;
R3GetAttrs(r3obj, R3FIA_Buffer, &value, R3TAG_END);
TcpPort
TcpPort
R3FIA_TcpPort
Integer
int
tcp port number for socket
value = jsobj.GetTcpPort();
int value;
R3GetAttrs(r3obj, R3FIA_TcpPort, &value, R3TAG_END);
OpenPort
OpenPort
R3FIA_OpenPort
Integer
int
the filedescriptior when createing a file object for a socket already open, If the socket is accepted the accepted socket is given and then it is the responsibility of the caller to handle the socket
value = jsobj.GetOpenPort();
int value;
R3GetAttrs(r3obj, R3FIA_OpenPort, &value, R3TAG_END);
NonBlocking
NonBlocking
R3FIA_NonBlocking
Boolean
R3BOOL
true for non-blocking socket
jsobj.SetNonBlocking(value);
value = jsobj.GetNonBlocking();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3FIA_NonBlocking, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3FIA_NonBlocking, &value, R3TAG_END);
TimeOut
TimeOut
R3FIA_TimeOut
Integer
R3INT
time out in seconds
jsobj.SetTimeOut(value);
R3INT value = ...;
R3SetAttrs(r3obj, R3FIA_TimeOut, value, R3TAG_END);
Values for R3FIA_Seek.
Error numbers
Miscsc
Structure for GETSTATUS method
in bytes
seconds since ..
for future expand
fetch the directory part
fetch the file name part
create a file name from given path and file
see if the given path is absolute