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

 RFSV16 (std::unique_ptr< TCPSocket > socket)
 
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, Drive &)
 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...
 
char defaultInternalDriveLetter ()
 
- 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...
 
Enum< errsdir (const std::string &path, bool recursive, std::vector< PlpDirent > &files)
 
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, Drive &dinfo)=0
 Retrieves details about a drive. More...
 
Enum< errsdrives (std::vector< Drive > &drives)
 
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 *context, 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...
 
virtual char defaultInternalDriveLetter ()=0
 

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

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

Additional Inherited Members

- Public Types inherited from RFSV
enum  seek_mode { PSI_SEEK_SET = 1 , PSI_SEEK_CUR = 2 , PSI_SEEK_END = 3 }
 The known 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 RFSVconnect (const std::string &host, int port, Enum< ConnectionError > *error)
 
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
std::unique_ptr< TCPSocketsocket_
 
Enum< errsstatus_
 
int32_t operationId_
 

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 76 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 101 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 119 of file rfsv16.h.

Constructor & Destructor Documentation

◆ RFSV16()

RFSV16::RFSV16 ( std::unique_ptr< TCPSocket socket)

Definition at line 46 of file rfsv16.cc.

Member Function Documentation

◆ attr2std()

uint32_t RFSV16::attr2std ( const uint32_t  attr)
private

Definition at line 894 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 121 of file rfsv16.cc.

◆ copyFromPsion() [1/2]

Enum< RFSV::errs > RFSV16::copyFromPsion ( const char * const  from,
const char * const  to,
void *  context,
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.
contextCallback context passed to the callback function func.
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 565 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 599 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 661 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 628 of file rfsv16.cc.

◆ defaultInternalDriveLetter()

char RFSV16::defaultInternalDriveLetter ( )
inlinevirtual

Implements RFSV.

Definition at line 73 of file rfsv16.h.

◆ devinfo()

Enum< RFSV::errs > RFSV16::devinfo ( const char  drive,
Drive 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 Drive 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 384 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 311 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 161 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 294 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 102 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 90 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 228 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 246 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 192 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 53 of file rfsv16.cc.

◆ fopendir()

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

Definition at line 98 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 491 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 94 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 723 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 280 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 212 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 708 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 529 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 72 of file rfsv16.h.

◆ getResponse()

Enum< RFSV::errs > RFSV16::getResponse ( BufferStore data)
private

Definition at line 469 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 828 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 72 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 111 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 179 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 700 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 125 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 875 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 865 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 444 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 884 of file rfsv16.cc.

◆ std2attr()

uint32_t RFSV16::std2attr ( const uint32_t  attr)
private

Definition at line 940 of file rfsv16.cc.


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