r3file

r3iff
r3r4iff

r3file

Class

oops/r3file.h

Library

r3oops

Description:

File Class

See Also

oops/r3root.h

Super Class

r3Root

R3CLID_ROOT

JavaScript

r3File

Class Identifier

R3CLID_FILE - 5

Methods

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,

Attributes

FileName, Mode, Buffer, TcpPort, OpenPort, NonBlocking, TimeOut,

R3FM_READ

Method

READ

Identifier

R3FM_READ

Return

R3BOOL, TRUE if succeeded

Param 3:

R3TAG*, R3FIA_Buffer, R3FIA_Size

JavaScript

rc = obj.READ(p3);

Description

Read from file

R3FM_READLONG

Method

READLONG

Identifier

R3FM_READLONG

JavaScript

obj.READLONG();

Description

Read long (32 bit) integer.

R3FM_READWORD

Method

READWORD

Identifier

R3FM_READWORD

JavaScript

obj.READWORD();

Description

Read 16 bit integer

R3FM_READFLOAT

Method

READFLOAT

Identifier

R3FM_READFLOAT

Param 3:

R3FLOAT, buffer for reading

JavaScript

obj.READFLOAT(p3);

Description

Read double precision float

R3FM_READSTR

Method

READSTR

Identifier

R3FM_READSTR

Return

R3SIZE, actual bytes read

Param 3:

R3TAG*, R3FIA_Buffer R3FIA_Size

JavaScript

rc = obj.READSTR(p3);

Description

Read string from a file

R3FM_WRITE

Method

WRITE

Identifier

R3FM_WRITE

Return

R3SIZE, actual bytes written

Param 3:

R3TAG*, R3FIA_Buffer R3FIA_Size

JavaScript

rc = obj.WRITE(p3);

Description

Write data

R3FM_WRITELONG

Method

WRITELONG

Identifier

R3FM_WRITELONG

Param 3:

R3LONG, long to be written

JavaScript

obj.WRITELONG(p3);

Description

Write 32 bit integer

R3FM_WRITEWORD

Method

WRITEWORD

Identifier

R3FM_WRITEWORD

Param 3:

R3WORD, variable to be written

JavaScript

obj.WRITEWORD(p3);

Description

Write 16 bit integer

R3FM_WRITEFLOAT

Method

WRITEFLOAT

Identifier

R3FM_WRITEFLOAT

Param 3:

R3FLOAT, address of the floating point variable to be written

JavaScript

obj.WRITEFLOAT(p3);

Description

Write double precision float

R3FM_WRITESTR

Method

WRITESTR

Identifier

R3FM_WRITESTR

Return

R3SIZE, number of bytes written

Param 3:

R3TAG*, R3FIA_Buffer R3FIA_Size

JavaScript

rc = obj.WRITESTR(p3);

Description

Write string

R3FM_SEEK

Method

SEEK

Identifier

R3FM_SEEK

Param 3:

R3TAG*, R3FIA_Offset, R3FIA_Seek

JavaScript

obj.SEEK(p3);

Description

Seek file. See seek codes below for values for R3FIA_Seek tag.

R3FM_REMOVE

Method

REMOVE

Identifier

R3FM_REMOVE

Return

R3BOOL

JavaScript

rc = obj.REMOVE();

Description

Remove file associated with the file object

R3FM_TELL

Method

TELL

Identifier

R3FM_TELL

Return

R3SIZE, current position

JavaScript

rc = obj.TELL();

Description

Tell current position

R3FM_GETS

Method

GETS

Identifier

R3FM_GETS

Return

char*, pointer to string buffer or NULL if read failed.

Param 3:

R3TAG*, R3FIA_Buffer, R3FIA_Size

JavaScript

rc = obj.GETS(p3);

Description

Read string from a file

R3FM_SCAN

Method

SCAN

Identifier

R3FM_SCAN

Return

R3INT, number of matches

Param 1:

char*, format string

Param 3:

R3TAG*, buffers for format string given with F3FIA_Scan

JavaScript

rc = obj.SCAN(p1, p3);

Description

Read formatted

R3FM_FLUSH

Method

FLUSH

Identifier

R3FM_FLUSH

JavaScript

obj.FLUSH();

Description

Flush file associated with object

R3FM_FERROR

Method

FERROR

Identifier

R3FM_FERROR

Return

R3INT, error code

JavaScript

rc = obj.FERROR();

Description

Return error code

R3FM_PUTC

Method

PUTC

Identifier

R3FM_PUTC

Return

R3BOOL

Param 3:

R3INT, character to be written

JavaScript

rc = obj.PUTC(p3);

Description

Write character

R3FM_FREAD

Method

FREAD

Identifier

R3FM_FREAD

Return

R3SIZE, actual bytes read

Param 1:

R3INT, size of iten

Param 2:

R3INT, number of items

Param 3:

char*, buffer

JavaScript

rc = obj.FREAD(p1, p2, p3);

Description

Read from file

R3FM_FWRITE

Method

FWRITE

Identifier

R3FM_FWRITE

Return

R3SIZE, actual bytes written

Param 1:

R3INT, size of item

Param 2:

R3INT, number of items to be written

Param 3:

char*, buffer containing data

JavaScript

rc = obj.FWRITE(p1, p2, p3);

Description

Write to a file

R3FM_GETC

Method

GETC

Identifier

R3FM_GETC

Return

R3INT, character

JavaScript

rc = obj.GETC();

Description

Read single character from file

R3FM_PUTS

Method

PUTS

Identifier

R3FM_PUTS

Param 3:

char*, string to be written

JavaScript

obj.PUTS(p3);

Description

Write null terminated string to a file

R3FCM_CREATEFILEERRORSTRING

Method

CREATEFILEERRORSTRING

Identifier

R3FCM_CREATEFILEERRORSTRING

Param 1:

R3INT, error code

Param 2:

char, string where error string is created

Param 3:

char, filename

JavaScript

obj.CREATEFILEERRORSTRING(p1, p2, p3);

Description

Creates a error string for a file error code. This is a class method.

R3FM_ACCEPTSOCKET

Method

ACCEPTSOCKET

Identifier

R3FM_ACCEPTSOCKET

JavaScript

obj.ACCEPTSOCKET();

Description

Wait for connection with 'accept()'

R3FM_CLOSEACCEPTEDSOCKET

Method

CLOSEACCEPTEDSOCKET

Identifier

R3FM_CLOSEACCEPTEDSOCKET

JavaScript

obj.CLOSEACCEPTEDSOCKET();

Description

Close the accepted socket so a new connection can be made

R3FM_WRITEFLOAT32

Method

WRITEFLOAT32

Identifier

R3FM_WRITEFLOAT32

JavaScript

obj.WRITEFLOAT32();

Description

Write single precision float

R3FM_READFLOAT32

Method

READFLOAT32

Identifier

R3FM_READFLOAT32

JavaScript

obj.READFLOAT32();

Description

Read single precision float

R3FCM_GETSTATUS

Method

GETSTATUS

Identifier

R3FCM_GETSTATUS

Return

R3BOOL, true if status was succesfully fetched

Param 1:

char*, file name

JavaScript

rc = obj.GETSTATUS(p1, 0);

Description

Class message: Get file status

R3FCM_RENAME

Method

RENAME

Identifier

R3FCM_RENAME

Param 1:

char*, file or directory name to be renamed

Param 3:

char*, new name. Must not refer to existing file

JavaScript

obj.RENAME(p1, p3);

Description

Rename a file

R3FCM_REMOVE

Method

REMOVE

Identifier

R3FCM_REMOVE

Param 3:

char*, filename;

JavaScript

obj.REMOVE(p3);

Description

Remove a file.

R3FCM_GETHOSTNAME

Method

GETHOSTNAME

Identifier

R3FCM_GETHOSTNAME

Return

R3BOOL, true if sucesfully fetched

Param 1:

R3INT, max length of the buffer to store the hostname

Param 3:

char*, buffer for the host name to be fetched

JavaScript

rc = obj.GETHOSTNAME(p1, p3);

Description

Fetch the host name of the current workstation

R3FCM_MAKEDIR

Method

MAKEDIR

Identifier

R3FCM_MAKEDIR

Return

R3BOOL, true if succeeded

Param 3:

char*, name of the directory to be created

JavaScript

rc = obj.MAKEDIR(p3);

Description

Create a new directory

R3FCM_COPYFILE

Method

COPYFILE

Identifier

R3FCM_COPYFILE

Return

R3BOOL, true if succeeded

Param 1:

char*, name of the file to be copied from

Param 3:

char*, name of the file to be copied to

JavaScript

rc = obj.COPYFILE(p1, p3);

Description

Copies a file

R3FM_WRITEBYTE

Method

WRITEBYTE

Identifier

R3FM_WRITEBYTE

Param 3:

R3BYTE, variable to be written

JavaScript

obj.WRITEBYTE(p3);

Description

Write 8 bit integer

R3FM_READBYTE

Method

READBYTE

Identifier

R3FM_READBYTE

Param 3:

R3BYTE*

JavaScript

obj.READBYTE(p3);

Description

Read 8 bit integer

R3FCM_REMOVEDIR

Method

REMOVEDIR

Identifier

R3FCM_REMOVEDIR

Param 3:

char*, name of the folder to be removed

JavaScript

obj.REMOVEDIR(p3);

Description

Remove a directory. The directory must be empty.

R3FCM_CLEANUPDIR

Method

CLEANUPDIR

Identifier

R3FCM_CLEANUPDIR

Param 1:

char*, name of the folder

Param 3:

int, age in seconds. Files modified/created longer than this will be deleted

JavaScript

obj.CLEANUPDIR(p1, p3);

Description

Remove all files older than a given age from a directory.

R3FM_OPEN

Method

OPEN

Identifier

R3FM_OPEN

Return

R3BOOL, true if succeeded

JavaScript

rc = obj.OPEN();

Description

Open the actual file, if not already opened. FileName * and Mode attributes must have been set.

R3FM_CLOSE

Method

CLOSE

Identifier

R3FM_CLOSE

JavaScript

obj.CLOSE();

Description

Close the actual file.

R3FM_WRITELONGLONG

Method

WRITELONGLONG

Identifier

R3FM_WRITELONGLONG

JavaScript

obj.WRITELONGLONG();

Description

Write 64 bit integer

R3FM_READLONGLONG

Method

READLONGLONG

Identifier

R3FM_READLONGLONG

JavaScript

obj.READLONGLONG();

Description

Read long long (64 bit) integer.

R3FCM_GETHOSTIP

Method

GETHOSTIP

Identifier

R3FCM_GETHOSTIP

Return

R3UINT, ip address

Param 3:

char*, host name

JavaScript

rc = obj.GETHOSTIP(p3);

Description

Given a host name return the IP

R3FCM_GETHOSTBYNAME

Method

GETHOSTBYNAME

Identifier

R3FCM_GETHOSTBYNAME

Return

R3BOOL, true if sucesfully fetched

Param 1:

char*, host name (such as www.realsoft.com)

Param 2:

int, size of the result buffer

Param 3:

char*, result

JavaScript

rc = obj.GETHOSTBYNAME(p1, p2, p3);

Description

Fetch the canonical name of the given host.

R3FM_WAITSOCKET

Method

WAITSOCKET

Identifier

R3FM_WAITSOCKET

Return

R3BOOL, true if socket has data, FALSE if timeout

Param 1:

R3INT, 0 = read, 1 = write

Param 3:

R3INT, timeout in seconds

JavaScript

rc = obj.WAITSOCKET(p1, p3);

Description

Return after given timeout or when the socket has outstanding incoming * data or when the socket accepts further data for transmission.

R3FCM_GETHOSTBYADDR

Method

GETHOSTBYADDR

Identifier

R3FCM_GETHOSTBYADDR

Return

R3BOOL, true if sucesfully fetched

Param 1:

R3UINT, ip

Param 2:

int, size of the result buffer

Param 3:

char*, result

JavaScript

rc = obj.GETHOSTBYADDR(p1, p2, p3);

Description

Fetch the canonical name of the given host.

R3FM_WRITESIZE

Method

WRITESIZE

Identifier

R3FM_WRITESIZE

Param 3:

R3SIZE, size to be written

JavaScript

obj.WRITESIZE(p3);

Description

Write size (32 or 64 bit integer, depending on the platform).

R3FM_READSIZE

Method

READSIZE

Identifier

R3FM_READSIZE

Return

R3BOOL, true if succeeded.

JavaScript

rc = obj.READSIZE();

Description

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

Method

WRITEFILENAME

Identifier

R3FM_WRITEFILENAME

Return

R3BOOL, true if succeeded

Param 3:

char*, file name, max lenght R3LEN_DOSNAME

JavaScript

rc = obj.WRITEFILENAME(p3);

Description

Write file name to a file

R3FM_READFILENAME

Method

READFILENAME

Identifier

R3FM_READFILENAME

Return

R3BOOL, true if succeeded

Param 3:

char*, file name, buffer must be at least R3LEN_DOSNAME bytes long

JavaScript

rc = obj.READFILENAME(p3);

Description

Write file name to a file

FileName

Attribute

FileName

Identifier

R3FIA_FileName

JavaScript type

String

C type

char*

Description

file name

Syntax


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

Attribute

Mode

Identifier

R3FIA_Mode

JavaScript type

String

C type

char*

Description

as defined in stdio.h

Syntax


jsobj.SetMode(value);


char* value = ...;
R3SetAttrs(r3obj, R3FIA_Mode, value, R3TAG_END);

Buffer

Attribute

Buffer

Identifier

R3FIA_Buffer

JavaScript type

String

C type

char*

Description

data to be read/written

Syntax


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

Attribute

TcpPort

Identifier

R3FIA_TcpPort

JavaScript type

Integer

C type

int

Description

tcp port number for socket

Syntax


value = jsobj.GetTcpPort();


int value;
R3GetAttrs(r3obj, R3FIA_TcpPort, &value, R3TAG_END);

OpenPort

Attribute

OpenPort

Identifier

R3FIA_OpenPort

JavaScript type

Integer

C type

int

Description

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

Syntax


value = jsobj.GetOpenPort();


int value;
R3GetAttrs(r3obj, R3FIA_OpenPort, &value, R3TAG_END);

NonBlocking

Attribute

NonBlocking

Identifier

R3FIA_NonBlocking

JavaScript type

Boolean

C type

R3BOOL

Description

true for non-blocking socket

Syntax


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

Attribute

TimeOut

Identifier

R3FIA_TimeOut

JavaScript type

Integer

C type

R3INT

Description

time out in seconds

Syntax


jsobj.SetTimeOut(value);


R3INT value = ...;
R3SetAttrs(r3obj, R3FIA_TimeOut, value, R3TAG_END);

Values for R3FIA_Seek.

R3SEEK_SET
R3SEEK_CURR
R3SEEK_END

Error numbers

R3FERR_NOERROR
R3FERR_NOFILE
R3FERR_NOPERMISSION
R3FERR_ISDIR
R3FERR_READONLYFS
R3FERR_EOF
R3FERR_TOOBIG
R3FERR_NOSPACE
R3FERR_UNKNOWN
R3FERR_TIMEOUT

Miscsc

R3PATH_LENGTH
R3EDT_FILE
R3EDT_DIR
R3EDT_DEV
R3EDT_LINK

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

Tags

Tags

R3FIA_Size
R3FIA_Seek
R3FIA_Offset
R3FIA_Paths
R3FIA_FullName
R3FIA_HostName
R3FIA_TcpService