class rpcs

Remote procedure call services via PLP More...

Contains pure virtuals
Definition#include <rpcs.h>
Inherited byrpcs16, rpcs32
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Types

Public Methods

Protected Types

Protected Methods

Protected Members


Detailed Description

Remote procedure call services via PLP

rpcs provides an interface for communicating with the Psion's remote procedure call service. The generic facilities for both, EPOC and SIBO are implemented here, while the facilities, unique to each of those variants are implemented in rpcs32 or rpcs16 respectively. These normally are instantiated by using rpcsfactory .

enum machs {PSI_MACH_UNKNOWN = 0, PSI_MACH_PC = 1, PSI_MACH_MC = 2, PSI_MACH_HC = 3, PSI_MACH_S3 = 4, PSI_MACH_S3A = 5, PSI_MACH_WORKABOUT = 6, PSI_MACH_SIENNA = 7, PSI_MACH_S3C = 8, PSI_MACH_S5 = 32, PSI_MACH_WINC = 33, }

The known machine types.

enum languages {PSI_LANG_TEST = 0, PSI_LANG_en_GB = 1, PSI_LANG_fr_FR = 2, PSI_LANG_de_DE = 3, PSI_LANG_es_ES = 4, PSI_LANG_it_IT = 5, PSI_LANG_sv_SE = 6, PSI_LANG_da_DK = 7, PSI_LANG_no_NO = 8, PSI_LANG_fi_FI = 9, PSI_LANG_en_US = 10, PSI_LANG_fr_CH = 11, PSI_LANG_de_CH = 12, PSI_LANG_pt_PT = 13, PSI_LANG_tr_TR = 14, PSI_LANG_is_IS = 15, PSI_LANG_ru_RU = 16, PSI_LANG_hu_HU = 17, PSI_LANG_nl_NL = 18, PSI_LANG_nl_BE = 19, PSI_LANG_en_AU = 20, PSI_LANG_fr_BE = 21, PSI_LANG_de_AT = 22, PSI_LANG_en_NZ = 23, PSI_LANG_fr_CA = 24, PSI_LANG_cs_CZ = 25, PSI_LANG_sk_SK = 26, PSI_LANG_pl_PL = 27, PSI_LANG_sl_SI = 28, }

The known interface languages.

enum batterystates {PSI_BATT_DEAD = 0, PSI_BATT_VERYLOW = 1, PSI_BATT_LOW = 2, PSI_BATT_GOOD = 3, }

The known battery states.

typedef struct machineInfo_t

This struct holds the data returned by rpcs::getMachineInfo.

rpcs ()

[virtual]

Virtual destructor.

void  reset ()

Initializes a connection to the remote machine.

void  reconnect ()

Attempts to re-establish a remote connection by first closing the socket, then connecting again to the ncpd daemon and finally calling reset.

Enum<rfsv::errs>  getStatus ()

Retrieves the current status of the connection.

Returns: The connection status.

Enum<rfsv::errs>  getNCPversion (int &major, int &minor)

Retrieves the version of the NCP protocol on the remote side.

This function is working with both SIBO and EPOC devices.

Parameters:

Returns: A psion error code. 0 = Ok.

Enum<rfsv::errs>  execProgram (const char *program, const char *args)

Starts execution of a program on the remote machine.

This function is working with both SIBO and EPOC devices.

Parameters:

Returns: A psion error code. 0 = Ok.

Enum<rfsv::errs>  stopProgram (const char *)

Requests termination of a program running on the remote machine.

This function is working with both SIBO and EPOC devices.

Returns: A psion error code. 0 = Ok.

Enum<rfsv::errs>  queryProgram (const char *)

Enum<rfsv::errs>  formatOpen (const char drive, int &handle, int &count)

Starts formatting a drive.

This function is working with both SIBO and EPOC devices. After calling formatOpen, formatRead should be called n times with the returned handle where n is the value of the returned parameter count.

Parameters:

Returns: A psion error code. 0 = Ok.

Enum<rfsv::errs>  formatRead (int handle)

Continues a running format.

This function is working with both SIBO and EPOC devices. Call this function with the handle, returned by formatOpen.

Returns: A psion error code. 0 = Ok.

Enum<rfsv::errs>  getUniqueID (const char *, long &)

Enum<rfsv::errs>  getOwnerInfo (bufferArray &)

Retrieve owner information of the remote machine.

This function is working with both SIBO and EPOC devices.

Parameters:

Returns: A psion error code. 0 = Ok.

Enum<rfsv::errs>  getMachineType (Enum<machs> &type)

Retrieves the type of machine on the remote side as defined in machs.

This function is working with both SIBO and EPOC devices

Parameters:

Returns: A psion error code. 0 = Ok.

Enum<rfsv::errs>  fuser (const char *name, char *buf, int maxlen)

Retrieves the name of a process, having a given file opened on the remote side.

This function is working with both SIBO and EPOC devices

Parameters:

Enum<rfsv::errs>  quitServer (void)

Requests the remote server to terminate.

This function is working with both SIBO and EPOC devices. There is usually no need to call this function, because the remote server is automatically stopped on disconnect.

Returns: A psion error code. 0 = Ok.

Enum<rfsv::errs>  queryDrive (const char, bufferArray &)

[pure virtual]

Enum<rfsv::errs>  getCmdLine (const char *process, bufferStore &ret)

[pure virtual]

Retrieves the command line of a running process.

This function works with EPOC only. Using it with SIBO machines, returns always an error code E_PSI_NOT_SIBO.

Parameters:

Returns: Psion error code. 0 = Ok.

Enum<rfsv::errs>  getMachineInfo (machineInfo &)

[virtual]

Retrieve general Information about the connected machine.

This function works with EPOC only. Using it with SIBO machines, returns always an error code E_PSI_NOT_SIBO.

Parameters:

Returns: Psion error code. 0 = Ok.

Enum<rfsv::errs>  closeHandle (int)

[virtual]

Enum<rfsv::errs>  regOpenIter (void)

[virtual]

Enum<rfsv::errs>  regReadIter (void)

[virtual]

Enum<rfsv::errs>  regWrite (void)

[virtual]

Enum<rfsv::errs>  regRead (void)

[virtual]

Enum<rfsv::errs>  regDelete (void)

[virtual]

Enum<rfsv::errs>  setTime (void)

[virtual]

Enum<rfsv::errs>  configOpen (void)

[virtual]

Enum<rfsv::errs>  configRead (void)

[virtual]

Enum<rfsv::errs>  configWrite (void)

[virtual]

Enum<rfsv::errs>  queryOpen (void)

[virtual]

Enum<rfsv::errs>  queryRead (void)

[virtual]

ppsocket * skt

[protected]

The socket, used for communication with ncpd.

Enum<rfsv::errs> status

[protected]

The current status of the connection.

enum commands {QUERY_NCP = 0x00, EXEC_PROG = 0x01, QUERY_DRIVE = 0x02, STOP_PROG = 0x03, QUERY_PROG = 0x04, FORMAT_OPEN = 0x05, FORMAT_READ = 0x06, GET_UNIQUEID = 0x07, GET_OWNERINFO = 0x08, GET_MACHINETYPE = 0x09, GET_CMDLINE = 0x0a, FUSER = 0x0b, GET_MACHINE_INFO = 0x64, REG_OPEN_ITER = 0x66, REG_READ_ITER = 0x67, REG_WRITE = 0x68, REG_READ = 0x69, REG_DELETE = 0x6a, SET_TIME = 0x6b, CONFIG_OPEN = 0x6c, CONFIG_READ = 0x6d, CONFIG_WRITE = 0x6e, QUERY_OPEN = 0x6f, QUERY_READ = 0x70, QUIT_SERVER = 0xff }

[protected]

The possible commands.

bool  sendCommand (enum commands cc, bufferStore &data)

[protected]

Sends a command to the remote side.

If communication fails, a reconnect is triggered and a second attempt to transmit the request is attempted. If that second attempt fails, the function returns an error an sets rpcs::status to E_PSI_FILE_DISC.

Parameters:

Returns: true on success, false on failure.

Enum<rfsv::errs>  getResponse (bufferStore &data, bool statusIsFirstByte)

[protected]

const char * getConnectName ()

[protected]