plptools
Loading...
Searching...
No Matches
rfsv16 Class Reference

This is the implementation of the rfsv protocol for Psion series 3 (SIBO) variant. More...

#include <rfsv16.h>

Inheritance diagram for rfsv16:
Collaboration diagram for rfsv16:

Public Member Functions

Enum< rfsv::errsfopen (const uint32_t, const char *const, uint32_t &)
 Opens a file. More...
 
Enum< rfsv::errsmktemp (uint32_t &, std::string &)
 Creates a unique temporary file. More...
 
Enum< rfsv::errsfcreatefile (const uint32_t, const char *const, uint32_t &)
 Creates a named file. More...
 
Enum< rfsv::errsfreplacefile (const uint32_t, const char *const, uint32_t &)
 Creates an named file, overwriting an existing file. More...
 
Enum< rfsv::errsfclose (const uint32_t)
 Close a file on the Psion whih was previously opened/created by using fopen , fcreatefile , freplacefile or mktemp . More...
 
Enum< rfsv::errsdir (const char *const, PlpDir &)
 Reads a directory on the Psion. More...
 
Enum< rfsv::errspathtest (const char *const)
 Checks to see if the directory component of a path or file name exists and is valid. More...
 
Enum< rfsv::errsfgetmtime (const char *const, PsiTime &)
 Retrieves the modification time of a file on the Psion. More...
 
Enum< rfsv::errsfsetmtime (const char *const, const PsiTime)
 Sets the modification time of a file on the Psion. More...
 
Enum< rfsv::errsfgetattr (const char *const, uint32_t &)
 Retrieves attributes of a file on the Psion. More...
 
Enum< rfsv::errsfgeteattr (const char *const, PlpDirent &)
 Retrieves attributes, size and modification time of a file on the Psion. More...
 
Enum< rfsv::errsfsetattr (const char *const, const uint32_t seta, const uint32_t unseta)
 
Enum< rfsv::errsdircount (const char *const, uint32_t &)
 Counts number of entries in a directory. More...
 
Enum< rfsv::errsdevlist (uint32_t &)
 Retrieves available drives on the Psion. More...
 
Enum< rfsv::errsdevinfo (const char, PlpDrive &)
 Retrieves details about a drive. More...
 
Enum< rfsv::errsfread (const uint32_t, unsigned char *const, const uint32_t, uint32_t &)
 Reads from a file on the Psion. More...
 
Enum< rfsv::errsfwrite (const uint32_t, const unsigned char *const, const uint32_t, uint32_t &)
 Write to a file on the Psion. More...
 
Enum< rfsv::errscopyFromPsion (const char *const, const char *const, void *, cpCallback_t)
 Copies a file from the Psion to the local machine. More...
 
Enum< rfsv::errscopyFromPsion (const char *from, int fd, cpCallback_t cb)
 Copies a file from the Psion to the local machine. More...
 
Enum< rfsv::errscopyToPsion (const char *const, const char *const, void *, cpCallback_t)
 Copies a file from local machine to the Psion. More...
 
Enum< rfsv::errscopyOnPsion (const char *, const char *, void *, cpCallback_t)
 Copies a file from the Psion to the Psion. More...
 
Enum< rfsv::errsfsetsize (const uint32_t, const uint32_t)
 Resizes an open file on the Psion. More...
 
Enum< rfsv::errsfseek (const uint32_t, const int32_t, const uint32_t, uint32_t &)
 Sets the current file position of a file on the Psion. More...
 
Enum< rfsv::errsmkdir (const char *const)
 Creates a directory on the Psion. More...
 
Enum< rfsv::errsrmdir (const char *const)
 Removes a directory on the Psion. More...
 
Enum< rfsv::errsrename (const char *const, const char *const)
 Renames a file on the Psion. More...
 
Enum< rfsv::errsremove (const char *const)
 Removes a file on the Psion. More...
 
Enum< rfsv::errsopendir (const uint32_t, const char *const, rfsvDirhandle &)
 Open a directory for reading with readdir. More...
 
Enum< rfsv::errsreaddir (rfsvDirhandle &, PlpDirent &)
 Read directory entries. More...
 
Enum< rfsv::errsclosedir (rfsvDirhandle &)
 Close a directory, previously opened with opendir. More...
 
Enum< rfsv::errssetVolumeName (const char, const char *const)
 Set the name of a Psion Volume (Drive). More...
 
uint32_t opMode (const uint32_t)
 Converts an open-mode (A combination of the PSI_O_ constants.) from generic representation to the machine-specific representation. More...
 
int getProtocolVersion ()
 Retrieves the protocol version. More...
 
- Public Member Functions inherited from rfsv
virtual ~rfsv ()
 
void reset ()
 
void reconnect ()
 
Enum< errsgetStatus ()
 Retrieves the current connection status. More...
 
virtual Enum< errsfopen (const uint32_t attr, const char *const name, uint32_t &handle)=0
 Opens a file. More...
 
virtual Enum< errsmktemp (uint32_t &handle, std::string &name)=0
 Creates a unique temporary file. More...
 
virtual Enum< errsfcreatefile (const uint32_t attr, const char *const name, uint32_t &handle)=0
 Creates a named file. More...
 
virtual Enum< errsfreplacefile (const uint32_t attr, const char *const name, uint32_t &handle)=0
 Creates an named file, overwriting an existing file. More...
 
virtual Enum< errsfclose (const uint32_t handle)=0
 Close a file on the Psion whih was previously opened/created by using fopen , fcreatefile , freplacefile or mktemp . More...
 
virtual Enum< errsdir (const char *const name, PlpDir &ret)=0
 Reads a directory on the Psion. More...
 
virtual Enum< errsfgetmtime (const char *const name, PsiTime &mtime)=0
 Retrieves the modification time of a file on the Psion. More...
 
virtual Enum< errsfsetmtime (const char *const name, const PsiTime mtime)=0
 Sets the modification time of a file on the Psion. More...
 
virtual Enum< errsfgetattr (const char *const name, uint32_t &attr)=0
 Retrieves attributes of a file on the Psion. More...
 
virtual Enum< errspathtest (const char *const name)=0
 Checks to see if the directory component of a path or file name exists and is valid. More...
 
virtual Enum< errsfgeteattr (const char *const name, PlpDirent &e)=0
 Retrieves attributes, size and modification time of a file on the Psion. More...
 
virtual Enum< errsfsetattr (const char *const name, const uint32_t seta, const uint32_t unseta)=0
 
virtual Enum< errsdircount (const char *const name, uint32_t &count)=0
 Counts number of entries in a directory. More...
 
virtual Enum< errsdevlist (uint32_t &devbits)=0
 Retrieves available drives on the Psion. More...
 
virtual Enum< errsdevinfo (const char drive, PlpDrive &dinfo)=0
 Retrieves details about a drive. More...
 
virtual Enum< errsfread (const uint32_t handle, unsigned char *const buffer, const uint32_t len, uint32_t &count)=0
 Reads from a file on the Psion. More...
 
virtual Enum< errsfwrite (const uint32_t handle, const unsigned char *const buffer, const uint32_t len, uint32_t &count)=0
 Write to a file on the Psion. More...
 
virtual Enum< errscopyFromPsion (const char *from, const char *to, void *, cpCallback_t func)=0
 Copies a file from the Psion to the local machine. More...
 
virtual Enum< rfsv::errscopyFromPsion (const char *from, int fd, cpCallback_t cb)=0
 Copies a file from the Psion to the local machine. More...
 
virtual Enum< errscopyToPsion (const char *const from, const char *const to, void *, cpCallback_t func)=0
 Copies a file from local machine to the Psion. More...
 
virtual Enum< errscopyOnPsion (const char *const from, const char *const to, void *, cpCallback_t func)=0
 Copies a file from the Psion to the Psion. More...
 
virtual Enum< errsfsetsize (const uint32_t handle, const uint32_t size)=0
 Resizes an open file on the Psion. More...
 
virtual Enum< errsfseek (const uint32_t handle, const int32_t offset, const uint32_t mode, uint32_t &resultpos)=0
 Sets the current file position of a file on the Psion. More...
 
virtual Enum< errsmkdir (const char *const name)=0
 Creates a directory on the Psion. More...
 
virtual Enum< errsrmdir (const char *const name)=0
 Removes a directory on the Psion. More...
 
virtual Enum< errsrename (const char *const oldname, const char *const newname)=0
 Renames a file on the Psion. More...
 
virtual Enum< errsremove (const char *const name)=0
 Removes a file on the Psion. More...
 
virtual Enum< errsopendir (const uint32_t attr, const char *const name, rfsvDirhandle &handle)=0
 Open a directory for reading with readdir. More...
 
virtual Enum< errsreaddir (rfsvDirhandle &handle, PlpDirent &entry)=0
 Read directory entries. More...
 
virtual Enum< errsclosedir (rfsvDirhandle &handle)=0
 Close a directory, previously opened with opendir. More...
 
virtual Enum< errssetVolumeName (const char drive, const char *const name)=0
 Set the name of a Psion Volume (Drive). More...
 
std::string attr2String (const uint32_t attr)
 Converts a file attribute rfsv::file_attribs to human readable format, usable for showing them in directory listings. More...
 
virtual uint32_t opMode (const uint32_t mode)=0
 Converts an open-mode (A combination of the PSI_O_ constants.) from generic representation to the machine-specific representation. More...
 
int getSpeed ()
 Retrieve speed of serial link. More...
 
virtual int getProtocolVersion ()=0
 Retrieves the protocol version. More...
 

Private Types

enum  commands {
  SIBO_FOPEN = 0 , SIBO_FCLOSE = 2 , SIBO_FREAD = 4 , SIBO_FDIRREAD = 6 ,
  SIBO_FDEVICEREAD = 8 , SIBO_FWRITE = 10 , SIBO_FSEEK = 12 , SIBO_FFLUSH = 14 ,
  SIBO_FSETEOF = 16 , SIBO_RENAME = 18 , SIBO_DELETE = 20 , SIBO_FINFO = 22 ,
  SIBO_SFSTAT = 24 , SIBO_PARSE = 26 , SIBO_MKDIR = 28 , SIBO_OPENUNIQUE = 30 ,
  SIBO_STATUSDEVICE = 32 , SIBO_PATHTEST = 34 , SIBO_STATUSSYSTEM = 36 , SIBO_CHANGEDIR = 38 ,
  SIBO_SFDATE = 40 , SIBO_RESPONSE = 42
}
 
enum  fopen_attrib {
  P_FOPEN = 0x0000 , P_FCREATE = 0x0001 , P_FREPLACE = 0x0002 , P_FAPPEND = 0x0003 ,
  P_FUNIQUE = 0x0004 , P_FSTREAM = 0x0000 , P_FSTREAM_TEXT = 0x0010 , P_FTEXT = 0x0020 ,
  P_FDIR = 0x0030 , P_FFORMAT = 0x0040 , P_FDEVICE = 0x0050 , P_FNODE = 0x0060 ,
  P_FUPDATE = 0x0100 , P_FRANDOM = 0x0200 , P_FSHARE = 0x0400
}
 
enum  status_enum {
  P_FAWRITE = 0x0001 , P_FAHIDDEN = 0x0002 , P_FASYSTEM = 0x0004 , P_FAVOLUME = 0x0008 ,
  P_FADIR = 0x0010 , P_FAMOD = 0x0020 , P_FAREAD = 0x0100 , P_FAEXEC = 0x0200 ,
  P_FASTREAM = 0x0400 , P_FATEXT = 0x0800 , P_FAMASK = 0x0f3f
}
 

Private Member Functions

 rfsv16 (TCPSocket *)
 Private constructor. More...
 
Enum< rfsv::errsfopendir (const char *const, uint32_t &)
 
uint32_t attr2std (const uint32_t)
 
uint32_t std2attr (const uint32_t)
 
bool sendCommand (enum commands, bufferStore &)
 
Enum< rfsv::errsgetResponse (bufferStore &)
 

Friends

class rfsvfactory
 rfsvfactory may call our constructor. More...
 

Additional Inherited Members

- Public Types inherited from rfsv
enum  seek_mode { PSI_SEEK_SET = 1 , PSI_SEEK_CUR = 2 , PSI_SEEK_END = 3 }
 The kown modes for seek. More...
 
enum  open_flags { PSI_O_RDONLY = 0000 , PSI_O_WRONLY = 0001 , PSI_O_RDWR = 0002 }
 The known modes for file open. More...
 
enum  open_mode {
  PSI_O_CREAT = 00100 , PSI_O_EXCL = 00200 , PSI_O_TRUNC = 01000 , PSI_O_APPEND = 02000 ,
  PSI_O_SHARE = 04000
}
 The known modes for file creation. More...
 
enum  errs {
  E_PSI_GEN_NONE = 0 , E_PSI_GEN_FAIL = -1 , E_PSI_GEN_ARG = -2 , E_PSI_GEN_OS = -3 ,
  E_PSI_GEN_NSUP = -4 , E_PSI_GEN_UNDER = -5 , E_PSI_GEN_OVER = -6 , E_PSI_GEN_RANGE = -7 ,
  E_PSI_GEN_DIVIDE = -8 , E_PSI_GEN_INUSE = -9 , E_PSI_GEN_NOMEMORY = - 10 , E_PSI_GEN_NOSEGMENTS = -11 ,
  E_PSI_GEN_NOSEM = -12 , E_PSI_GEN_NOPROC = -13 , E_PSI_GEN_OPEN = -14 , E_PSI_GEN_NOTOPEN = -15 ,
  E_PSI_GEN_IMAGE = -16 , E_PSI_GEN_RECEIVER = -17 , E_PSI_GEN_DEVICE = -18 , E_PSI_GEN_FSYS = -19 ,
  E_PSI_GEN_START = -20 , E_PSI_GEN_NOFONT = -21 , E_PSI_GEN_TOOWIDE = -22 , E_PSI_GEN_TOOMANY = -23 ,
  E_PSI_FILE_EXIST = -32 , E_PSI_FILE_NXIST = -33 , E_PSI_FILE_WRITE = -34 , E_PSI_FILE_READ = -35 ,
  E_PSI_FILE_EOF = -36 , E_PSI_FILE_FULL = -37 , E_PSI_FILE_NAME = -38 , E_PSI_FILE_ACCESS = -39 ,
  E_PSI_FILE_LOCKED = -40 , E_PSI_FILE_DEVICE = -41 , E_PSI_FILE_DIR = -42 , E_PSI_FILE_RECORD = -43 ,
  E_PSI_FILE_RDONLY = -44 , E_PSI_FILE_INV = -45 , E_PSI_FILE_PENDING = -46 , E_PSI_FILE_VOLUME = -47 ,
  E_PSI_FILE_CANCEL = -48 , E_PSI_FILE_ALLOC = -49 , E_PSI_FILE_DISC = -50 , E_PSI_FILE_CONNECT = -51 ,
  E_PSI_FILE_RETRAN = -52 , E_PSI_FILE_LINE = -53 , E_PSI_FILE_INACT = -54 , E_PSI_FILE_PARITY = -55 ,
  E_PSI_FILE_FRAME = -56 , E_PSI_FILE_OVERRUN = -57 , E_PSI_MDM_CONFAIL = -58 , E_PSI_MDM_BUSY = -59 ,
  E_PSI_MDM_NOANS = -60 , E_PSI_MDM_BLACKLIST = -61 , E_PSI_FILE_NOTREADY = -62 , E_PSI_FILE_UNKNOWN = -63 ,
  E_PSI_FILE_DIRFULL = -64 , E_PSI_FILE_PROTECT = -65 , E_PSI_FILE_CORRUPT = -66 , E_PSI_FILE_ABORT = -67 ,
  E_PSI_FILE_ERASE = -68 , E_PSI_FILE_INVALID = -69 , E_PSI_GEN_POWER = -100 , E_PSI_FILE_TOOBIG = -101 ,
  E_PSI_GEN_DESCR = -102 , E_PSI_GEN_LIB = -103 , E_PSI_FILE_NDISC = -104 , E_PSI_FILE_DRIVER = -105 ,
  E_PSI_FILE_COMPLETION = -106 , E_PSI_GEN_BUSY = -107 , E_PSI_GEN_TERMINATED = -108 , E_PSI_GEN_DIED = -109 ,
  E_PSI_FILE_HANDLE = -110 , E_PSI_NOT_SIBO = -200 , E_PSI_INTERNAL = -201
}
 The known error codes. More...
 
enum  file_attribs {
  PSI_A_RDONLY = 0x0001 , PSI_A_HIDDEN = 0x0002 , PSI_A_SYSTEM = 0x0004 , PSI_A_DIR = 0x0008 ,
  PSI_A_ARCHIVE = 0x0010 , PSI_A_VOLUME = 0x0020 , PSI_A_NORMAL = 0x0040 , PSI_A_TEMP = 0x0080 ,
  PSI_A_COMPRESSED = 0x0100 , PSI_A_READ = 0x0200 , PSI_A_EXEC = 0x0400 , PSI_A_STREAM = 0x0800 ,
  PSI_A_TEXT = 0x1000
}
 The known file attributes. More...
 
- Static Public Member Functions inherited from rfsv
static std::string convertSlash (const std::string &name)
 Utility method, converts '/' to '\'. More...
 
- Protected Member Functions inherited from rfsv
const char * getConnectName ()
 Retrieves the PLP protocol name. More...
 
- Protected Attributes inherited from rfsv
TCPSocketskt
 
Enum< errsstatus
 
int32_t serNum
 

Detailed Description

This is the implementation of the rfsv protocol for Psion series 3 (SIBO) variant.

You normally never create objects of this class directly. Thus the constructor is private. Use rfsvfactory for creating an instance of rfsv . For a complete documentation, see rfsv .

Definition at line 35 of file rfsv16.h.

Member Enumeration Documentation

◆ commands

enum rfsv16::commands
private
Enumerator
SIBO_FOPEN 
SIBO_FCLOSE 
SIBO_FREAD 
SIBO_FDIRREAD 
SIBO_FDEVICEREAD 
SIBO_FWRITE 
SIBO_FSEEK 
SIBO_FFLUSH 
SIBO_FSETEOF 
SIBO_RENAME 
SIBO_DELETE 
SIBO_FINFO 
SIBO_SFSTAT 
SIBO_PARSE 
SIBO_MKDIR 
SIBO_OPENUNIQUE 
SIBO_STATUSDEVICE 
SIBO_PATHTEST 
SIBO_STATUSSYSTEM 
SIBO_CHANGEDIR 
SIBO_SFDATE 
SIBO_RESPONSE 

Definition at line 79 of file rfsv16.h.

◆ fopen_attrib

enum rfsv16::fopen_attrib
private
Enumerator
P_FOPEN 
P_FCREATE 
P_FREPLACE 
P_FAPPEND 
P_FUNIQUE 
P_FSTREAM 
P_FSTREAM_TEXT 
P_FTEXT 
P_FDIR 
P_FFORMAT 
P_FDEVICE 
P_FNODE 
P_FUPDATE 
P_FRANDOM 
P_FSHARE 

Definition at line 104 of file rfsv16.h.

◆ status_enum

enum rfsv16::status_enum
private
Enumerator
P_FAWRITE 
P_FAHIDDEN 
P_FASYSTEM 
P_FAVOLUME 
P_FADIR 
P_FAMOD 
P_FAREAD 
P_FAEXEC 
P_FASTREAM 
P_FATEXT 
P_FAMASK 

Definition at line 122 of file rfsv16.h.

Constructor & Destructor Documentation

◆ rfsv16()

rfsv16::rfsv16 ( TCPSocket _skt)
private

Private constructor.

Shall be called by rfsvfactory only.

Definition at line 42 of file rfsv16.cc.

Member Function Documentation

◆ attr2std()

uint32_t rfsv16::attr2std ( const uint32_t  attr)
private

Definition at line 900 of file rfsv16.cc.

◆ closedir()

Enum< rfsv::errs > rfsv16::closedir ( rfsvDirhandle handle)
virtual

Close a directory, previously opened with opendir.

Parameters
handleA handle, obtained by calling opendir .
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 126 of file rfsv16.cc.

◆ copyFromPsion() [1/2]

Enum< rfsv::errs > rfsv16::copyFromPsion ( const char * const  from,
const char * const  to,
void *  ,
cpCallback_t  func 
)
virtual

Copies a file from the Psion to the local machine.

Parameters
fromName of the file on the Psion to be copied.
toName of the destination file on the local machine.
funcPointer to a function which gets called on every read. This function can be used to show some progress etc. May be set to NULL, where no callback is performed. If the callback function returns 0, the operation is aborted and E_PSI_FILE_CANCEL is returned.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 573 of file rfsv16.cc.

◆ copyFromPsion() [2/2]

Enum< rfsv::errs > rfsv16::copyFromPsion ( const char *  from,
int  fd,
cpCallback_t  cb 
)
virtual

Copies a file from the Psion to the local machine.

Implements rfsv.

Definition at line 606 of file rfsv16.cc.

◆ copyOnPsion()

Enum< rfsv::errs > rfsv16::copyOnPsion ( const char *  from,
const char *  to,
void *  ,
cpCallback_t  func 
)
virtual

Copies a file from the Psion to the Psion.

On the EPOC variants, this runs much faster than reading data from the Psion and then writing it back to the Psion, since data transfer is handled locally on the Psion.

Parameters
fromName of the file to be copied.
toName of the destination file.
funcPointer to a function which gets called on every read. This function can be used to show some progress etc. May be set to NULL, where no callback is performed. If the callback function returns 0, the operation is aborted and E_PSI_FILE_CANCEL is returned.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 666 of file rfsv16.cc.

◆ copyToPsion()

Enum< rfsv::errs > rfsv16::copyToPsion ( const char * const  from,
const char * const  to,
void *  ,
cpCallback_t  func 
)
virtual

Copies a file from local machine to the Psion.

Parameters
fromName of the file on the local machine to be copied.
toName of the destination file on the Psion.
funcPointer to a function which gets called on every read. This function can be used to show some progress etc. May be set to NULL, where no callback is performed. If the callback function returns 0, the operation is aborted and E_PSI_FILE_CANCEL is returned.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 634 of file rfsv16.cc.

◆ devinfo()

Enum< rfsv::errs > rfsv16::devinfo ( const char  drive,
PlpDrive dinfo 
)
virtual

Retrieves details about a drive.

Parameters
driveThe drive character of the drive to get details from (e.g: 'C', 'D' etc.). (0 represents A:, 1 is B: and so on ...)
dinfoA PlpDrive object which is filled with the drive's information upon return.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 394 of file rfsv16.cc.

◆ devlist()

Enum< rfsv::errs > rfsv16::devlist ( uint32_t &  devbits)
virtual

Retrieves available drives on the Psion.

devbits On return, for every exiting drive, a bit is set in this variable. The lowest bit represents drive A:.

Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 322 of file rfsv16.cc.

◆ dir()

Enum< rfsv::errs > rfsv16::dir ( const char * const  name,
PlpDir ret 
)
virtual

Reads a directory on the Psion.

The returned STL deque of PlpDirent contains all requested directory entries.

Parameters
nameThe name of the directory
retAn STL deque of PlpDirent entries.
Returns
A Psion error code (One of enum rfsv::errs ).

Implements rfsv.

Definition at line 165 of file rfsv16.cc.

◆ dircount()

Enum< rfsv::errs > rfsv16::dircount ( const char * const  name,
uint32_t &  count 
)
virtual

Counts number of entries in a directory.

Parameters
nameThe directory whose entries are to be counted.
countThe number of entries is returned here.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 305 of file rfsv16.cc.

◆ fclose()

Enum< rfsv::errs > rfsv16::fclose ( const uint32_t  handle)
virtual

Close a file on the Psion whih was previously opened/created by using fopen , fcreatefile , freplacefile or mktemp .

Parameters
handleA valid file handle.

Implements rfsv.

Definition at line 107 of file rfsv16.cc.

◆ fcreatefile()

Enum< rfsv::errs > rfsv16::fcreatefile ( const uint32_t  attr,
const char * const  name,
uint32_t &  handle 
)
virtual

Creates a named file.

Parameters
attrThe open mode. Use opMode to convert a combination of open_flags and open_mode to the machine-specific representation.
nameThe name of the file to create.
handleThe handle for usage with fread , fwrite , fseek or fclose is returned here.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 89 of file rfsv16.cc.

◆ fgetattr()

Enum< rfsv::errs > rfsv16::fgetattr ( const char * const  name,
uint32_t &  attr 
)
virtual

Retrieves attributes of a file on the Psion.

Parameters
nameName of the file whose attributes ar to be retrieved.
attrThe file's attributes are returned here.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 235 of file rfsv16.cc.

◆ fgeteattr()

Enum< rfsv::errs > rfsv16::fgeteattr ( const char * const  name,
PlpDirent e 
)
virtual

Retrieves attributes, size and modification time of a file on the Psion.

Parameters
nameThe name of the file.
ePlpDirent object, filled with the information on return.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 254 of file rfsv16.cc.

◆ fgetmtime()

Enum< rfsv::errs > rfsv16::fgetmtime ( const char * const  name,
PsiTime mtime 
)
virtual

Retrieves the modification time of a file on the Psion.

Parameters
nameName of the file.
mtimeModification time is returned here.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 197 of file rfsv16.cc.

◆ fopen()

Enum< rfsv::errs > rfsv16::fopen ( const uint32_t  attr,
const char * const  name,
uint32_t &  handle 
)
virtual

Opens a file.

Parameters
attrThe open mode. Use opMode to convert a combination of open_flags and open_mode to the machine-specific representation.
nameThe name of the file to open.
handleThe handle for usage with fread , fwrite , fseek or fclose is returned here.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 50 of file rfsv16.cc.

◆ fopendir()

Enum< rfsv::errs > rfsv16::fopendir ( const char * const  name,
uint32_t &  handle 
)
private

Definition at line 101 of file rfsv16.cc.

◆ fread()

Enum< rfsv::errs > rfsv16::fread ( const uint32_t  handle,
unsigned char * const  buffer,
const uint32_t  len,
uint32_t &  count 
)
virtual

Reads from a file on the Psion.

Parameters
handleHandle of the file to read from.
bufferThe area where to store the data read.
lenThe number of bytes to read.
countThe number of bytes actually read is returned here.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 502 of file rfsv16.cc.

◆ freplacefile()

Enum< rfsv::errs > rfsv16::freplacefile ( const uint32_t  attr,
const char * const  name,
uint32_t &  handle 
)
virtual

Creates an named file, overwriting an existing file.

Parameters
attrThe open mode. Use opMode to convert a combination of open_flags and open_mode to the machine-specific representation.
nameThe name of the file to create.
handleThe handle for usage with fread , fwrite , fseek or fclose is returned here.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 95 of file rfsv16.cc.

◆ fseek()

Enum< rfsv::errs > rfsv16::fseek ( const uint32_t  handle,
const int32_t  offset,
const uint32_t  mode,
uint32_t &  resultpos 
)
virtual

Sets the current file position of a file on the Psion.

Parameters
handleThe file handle.
offsetPosition to be seeked to.
modeThe mode for seeking.
resultposThe final file position after seeking is returned here.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 729 of file rfsv16.cc.

◆ fsetattr()

Enum< rfsv::errs > rfsv16::fsetattr ( const char * const  name,
const uint32_t  seta,
const uint32_t  unseta 
)
virtual
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 290 of file rfsv16.cc.

◆ fsetmtime()

Enum< rfsv::errs > rfsv16::fsetmtime ( const char * const  name,
const  mtime 
)
virtual

Sets the modification time of a file on the Psion.

Parameters
nameName of the file whose modification time should be set.
mtimeThe desired modification time.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 218 of file rfsv16.cc.

◆ fsetsize()

Enum< rfsv::errs > rfsv16::fsetsize ( const uint32_t  handle,
const uint32_t  size 
)
virtual

Resizes an open file on the Psion.

If the new size is greater than the file's current size, the contents of the added data is undefined. If The new size is smaller, the file is truncated.

Parameters
handleHandle of the file to be resized.
sizeNew size for that file.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 713 of file rfsv16.cc.

◆ fwrite()

Enum< rfsv::errs > rfsv16::fwrite ( const uint32_t  handle,
const unsigned char * const  buffer,
const uint32_t  len,
uint32_t &  count 
)
virtual

Write to a file on the Psion.

Parameters
handleHandle of the file to read from.
bufferThe area to be written.
lenThe number of bytes to write.
countThe number of bytes actually written is returned here.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 540 of file rfsv16.cc.

◆ getProtocolVersion()

int rfsv16::getProtocolVersion ( )
inlinevirtual

Retrieves the protocol version.

Returns
Either 3 or 5 representing Series 3 (SIBO) or Series 5 (EPOC)

Implements rfsv.

Definition at line 76 of file rfsv16.h.

◆ getResponse()

Enum< rfsv::errs > rfsv16::getResponse ( bufferStore data)
private

Definition at line 478 of file rfsv16.cc.

◆ mkdir()

Enum< rfsv::errs > rfsv16::mkdir ( const char * const  name)
virtual

Creates a directory on the Psion.

Parameters
nameName of the directory to be created.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 826 of file rfsv16.cc.

◆ mktemp()

Enum< rfsv::errs > rfsv16::mktemp ( uint32_t &  handle,
std::string &  name 
)
virtual

Creates a unique temporary file.

The file is opened for reading and writing.

Parameters
handleThe handle for usage with fread , fwrite , fseek or fclose is returned here.
nameThe name of the temporary file is returned here.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 70 of file rfsv16.cc.

◆ opendir()

Enum< rfsv::errs > rfsv16::opendir ( const uint32_t  attr,
const char * const  name,
rfsvDirhandle handle 
)
virtual

Open a directory for reading with readdir.

Parameters
attrA combination of PSI_A_.. flags, representing the desired types of entries to be returned when calling readdir .
nameThe name of the directory
handleA handle to be used with readdir and closedir .
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 117 of file rfsv16.cc.

◆ opMode()

uint32_t rfsv16::opMode ( const uint32_t  mode)
virtual

Converts an open-mode (A combination of the PSI_O_ constants.) from generic representation to the machine-specific representation.

Parameters
modeThe generic open mode.
Returns
The machine specific representation for use with fopen , fcreatefile and freplacefile.

Implements rfsv.

Definition at line 183 of file rfsv16.cc.

◆ pathtest()

Enum< rfsv::errs > rfsv16::pathtest ( const char * const  name)
virtual

Checks to see if the directory component of a path or file name exists and is valid.

Returns E_PSI_GEN_NONE if is valid.

Only paths up to the last trailing backslash are tested; trailing filenames are ignored. For example,

  • "C:\\" tests the validity of "C:\" - "C:\System" tests the validity of "C:\" - "C:\System\" tests the validity of "C:\System\" - "D:\Documents\hello.txt" tests the validity of "D:\Documents\"

This can be safely used to test for the existence of directories and drives on EPOC16 and EPOC32; check for E_PSI_FILE_NXIST, E_PSI_FILE_DIR, E_PSI_FILE_DEVICE, and E_PSI_FILE_NOTREADY to determine non-existence.

Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 703 of file rfsv16.cc.

◆ readdir()

Enum< rfsv::errs > rfsv16::readdir ( rfsvDirhandle handle,
PlpDirent entry 
)
virtual

Read directory entries.

This method reads entries of a directory, previously opened with opendir .

Parameters
handleA handle, obtained by calling opendir .
entryThe entry information is returned here.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 131 of file rfsv16.cc.

◆ remove()

Enum< rfsv::errs > rfsv16::remove ( const char * const  name)
virtual

Removes a file on the Psion.

Parameters
nameName of the file to be removed.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 879 of file rfsv16.cc.

◆ rename()

Enum< rfsv::errs > rfsv16::rename ( const char * const  oldname,
const char * const  newname 
)
virtual

Renames a file on the Psion.

Parameters
oldnameName of the file to be renamed.
newnameNew Name for that file.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 867 of file rfsv16.cc.

◆ rmdir()

Enum< rfsv::errs > rfsv16::rmdir ( const char * const  name)
virtual

Removes a directory on the Psion.

Parameters
nameName of the directory to be removed.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 836 of file rfsv16.cc.

◆ sendCommand()

bool rfsv16::sendCommand ( enum commands  cc,
bufferStore data 
)
private

Definition at line 453 of file rfsv16.cc.

◆ setVolumeName()

Enum< rfsv::errs > rfsv16::setVolumeName ( const char  drive,
const char * const  name 
)
virtual

Set the name of a Psion Volume (Drive).

Parameters
driveThe drive character of the Volume, whose name should be set.
nameThe new name for that drive.
Returns
A Psion error code (One of enum errs ).

Implements rfsv.

Definition at line 890 of file rfsv16.cc.

◆ std2attr()

uint32_t rfsv16::std2attr ( const uint32_t  attr)
private

Definition at line 938 of file rfsv16.cc.

Friends And Related Function Documentation

◆ rfsvfactory

friend class rfsvfactory
friend

rfsvfactory may call our constructor.

Definition at line 40 of file rfsv16.h.


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