public class Rmif
extends java.lang.Object
0 31
+------+------+------+------+ ---
| func | flag | info | rep | |
+------+------+------+------+ | Main Header (8 bytes)
| seq | try | rpt | adj | |
+------+------+------+------+ ---
| | |
: adjunct header : | Adjunct Header
| (optional) | | (max of 127 bytes)
+---------------------------+ ---
| | |
: data : | Data
| | | (max of 32 KiB bytes)
+---------------------------+ ---
Main Header:
byte func - Function opcode (see list below).
byte flag - Format flag (see below).
byte info - Info field (used for link test).
byte rep - Numeric representation, byte order ('I'=IEEE, 'E'=EEEI).
byte seq - Sequence number for RDP (0-127). Sequence numbers less
than 0 indicate protocol (other than RDP), times -1:
-1*UDP = -1
-1*TCP = -2 (future support)
-1*IDP = -3 (future support)
byte try - Number of retries (initially 0).
byte rpt - Packet report (reserved for future use, always 0).
byte adj - Bytes in adjunct header (0-127). Values less than 0 (i.e.
-1 to -128) should not be used and are reserved.
Format Flag (clarification added in NeXtMidas 2.3.0):
Lower 4 bits indicate data type (these are mutually exclusive):
TYPE_RAW = 0 - Raw data (type unknown / not set).
TYPE_BINARY = 1 - Data is binary.
TYPE_XML = 2 - Data is XML.
TYPE_ASCII = 3 - Data is ASCII.
[Types 4-15 are reserved for future use]
Upper 4 bits indicate fields in the adjunct header:
This specifies the first N 8-byte values in the adjunct header
using a bit mask. If multiple fields are included in the bit
mask they appear in the adjunct header increasing order (e.g.
ADJ_TIME comes before ADJ_OFFSET). Any remaining space in the
adjunct header (adj-N*8 bytes) is user-specific:
ADJ_TIME = 0x10 - TimeStamp (double)
ADJ_OFFSET = 0x20 - FileOffset (double)
[reserved] = 0x40 - [reserved for future use]
ADJ_USER = 0x80 - UserType (char[8])
It is common for user-defined adjuncts to be immediately preceded
by an UserType specifier which is an 8-byte Fortran string (padded
with spaces) indicating the type of user data. The UserType string
is user-defined, except names beginning with "NXM" or "XM" are
reserved.
Adjunct Header:
byte[n] - Any adjunct fields, often used for time code
or offset information. (See note about format
flag.)
Data:
byte[n] - Remainder of packet, the included data.
Function Purpose
-----------------------------------------------------------------
SET=101, GET=102, For results/message/parameter access.
RET=103, ACK=104, For results/message/parameter access.
OPEN=105, CLOSE=106, Open/close channel.
SEND=107, RECV=108, Message access.
PING=109, PONG=110, Keep alive checks.
DHDR=111, DBUF=112, File data access.
ADDR=113, MODIFY=114, Address, modify.
OPENED=115, CLOSED=116, Response to OPEN,CLOSE.
DBUFC=117, DBUFD=118, File data buffer, Compressed Direct.
DBUFZ=119, DBUFX=120, File data buffer, Zipped eXtended.
GETPROP=121, RETPROP=122, Published keyname access.
RECEIPT=123, LINKTEST=124, Low-level RDP hooks.
MFTP=125, Midas File Transfer Protocol command.
DROPPED=0; Dropped remote state.
rmif| Modifier and Type | Class and Description |
|---|---|
class |
Rmif.Channel
channel from client to served property on Remote
|
class |
Rmif.FilePropertyMember
File Property Structure
|
class |
Rmif.Packet
Packet to serve to clients (for sending or receiving).
|
class |
Rmif.PipePropertyMember
Pipe Property Structure
|
class |
Rmif.Property
property to serve to clients
|
class |
Rmif.Remote
local reference to remote process
|
class |
Rmif.RemoteAddress
A remote address.
|
| Modifier and Type | Field and Description |
|---|---|
static byte |
ACK
Packet message functions (see
Rmif for details). |
static byte |
ADDR
Packet message functions (see
Rmif for details). |
static byte |
ADJ
Packet header byte offsets (see
Rmif for details). |
static byte |
ADJ_OFFSET
Adjunct header type flag (see
Rmif for details). |
static byte |
ADJ_TIME
Adjunct header type flag (see
Rmif for details). |
static byte |
ADJ_USER
Adjunct header type flag (see
Rmif for details). |
nxm.sys.lib.KeyVector |
channels
Deprecated.
Since NeXtMidas 2.5.0: Use
getChannels(). |
static byte |
CLOSE
Packet message functions (see
Rmif for details). |
static byte |
CLOSED
Packet message functions (see
Rmif for details). |
static byte |
DATA
Packet header byte offsets (see
Rmif for details). |
static byte |
DBUF
Packet message functions (see
Rmif for details). |
static byte |
DBUFC
Packet message functions (see
Rmif for details). |
static byte |
DBUFD
Packet message functions (see
Rmif for details). |
static byte |
DBUFX
Packet message functions (see
Rmif for details). |
static byte |
DBUFZ
Packet message functions (see
Rmif for details). |
static byte |
DC_BAND
packet DBUF compression modes
|
static byte |
DC_CONST
packet DBUF compression modes
|
static byte |
DC_PACK
packet DBUF compression modes
|
static byte |
DC_RAW
packet DBUF compression modes
|
static byte |
DHDR
Packet message functions (see
Rmif for details). |
static byte |
DROPPED
Packet message functions (see
Rmif for details). |
static byte |
FILE
property types (see
typeList) |
static byte |
FLAG
Packet header byte offsets (see
Rmif for details). |
static byte |
FUNC
Packet header byte offsets (see
Rmif for details). |
static java.lang.String[] |
functionList
Array of strings for the different function types (see
Rmif for details). |
static byte |
GET
Packet message functions (see
Rmif for details). |
static byte |
GETPROP
Packet message functions (see
Rmif for details). |
static byte |
IDP
Packet transport layer reliability modes (see
Rmif for details). |
static byte |
INFO
Packet header byte offsets (see
Rmif for details). |
static byte |
KEY
property types (see
typeList) |
static byte |
LINKTEST
Packet message functions (see
Rmif for details). |
static int |
MAX_WINDOW
Max number of outstanding RDP packets per Remote
|
static int |
MAXFUNCTION
The index of the highest numbered function.
|
static byte |
MESSAGE
property types (see
typeList) |
static byte |
MFTP
Packet message functions (see
Rmif for details). |
static int |
MINFUNCTION
The index of the lowest numbered function.
|
static byte |
MODIFY
Packet message functions (see
Rmif for details). |
static int |
MULTI
channel flags types
|
int |
nchannel
Deprecated.
Since NeXtMidas 2.5.0: Use
getChannels().getSize(). |
int |
nproperty
Deprecated.
Since NeXtMidas 2.5.0: Use
getProperties().getSize(). |
static byte |
OPEN
Packet message functions (see
Rmif for details). |
static byte |
OPENED
Packet message functions (see
Rmif for details). |
static byte |
PING
Packet message functions (see
Rmif for details). |
static byte |
PIPE
property types (see
typeList) |
static byte |
PONG
Packet message functions (see
Rmif for details). |
nxm.sys.lib.KeyVector |
properties
Deprecated.
Since NeXtMidas 2.5.0: Use
getProperties(). |
static java.lang.String |
protocolList
List of packet transport protocols (starts at 0, not 1)
|
static byte |
RDP
Packet transport layer reliability modes (see
Rmif for details). |
static byte |
RECEIPT
Packet message functions (see
Rmif for details). |
static byte |
RECV
Packet message functions (see
Rmif for details). |
nxm.sys.lib.KeyVector |
remotes
Deprecated.
Since NeXtMidas 2.5.0: Use
getRemotes(). |
static byte |
REP
Packet header byte offsets (see
Rmif for details). |
static byte |
RESULT
property types (see
typeList) |
static byte |
RET
Packet message functions (see
Rmif for details). |
static byte |
RETPROP
Packet message functions (see
Rmif for details). |
static byte |
RPT
Packet header byte offsets (see
Rmif for details). |
static byte |
SEND
Packet message functions (see
Rmif for details). |
static byte |
SEQ
Packet header byte offsets (see
Rmif for details). |
static byte |
SET
Packet message functions (see
Rmif for details). |
static byte |
TCP
Packet transport layer reliability modes (see
Rmif for details). |
static byte |
TRY
Packet header byte offsets (see
Rmif for details). |
static byte |
TYPE_ASCII
Data type indicator (see
Rmif for details). |
static byte |
TYPE_BINARY
Data type indicator (see
Rmif for details). |
static byte |
TYPE_RAW
Data type indicator (see
Rmif for details). |
static byte |
TYPE_XML
Data type indicator (see
Rmif for details). |
static java.lang.String |
typeList
Property types:
"Pipe,Result,Key,Message,File" |
static byte |
UDP
Packet transport layer reliability modes (see
Rmif for details). |
| Constructor and Description |
|---|
Rmif(nxm.sys.inc.MessageHandler handler)
Create without an owner or Midas.
|
Rmif(nxm.sys.lib.Midas M,
nxm.sys.inc.MessageHandler owner,
nxm.sys.inc.MessageHandler handler)
Create an Rmif.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addChannel(Rmif.Remote r,
int ic,
java.lang.String name)
Adds a channel.
|
void |
addChannel(Rmif.Remote r,
int ic,
java.lang.String name,
int flags)
Adds a channel to a Remote.
|
void |
addProperty(java.lang.String name)
Adds a property.
|
Rmif.Remote |
addRemote(nxm.sys.lib.Table targs)
Adds a new remote.
|
int |
checkRemotes()
check the remote link for RDP book-keeping
|
void |
close()
Close remotes, close sockets, disconnect.
|
void |
closeChannel(int ic)
Closes a channel.
|
void |
closeChannel(java.lang.String name)
Closes a channel.
|
void |
closeRemote(Rmif.Remote r)
Close the given remote, removing it from the context registry in the process.
|
void |
delProperty(int ip)
Deletes a property.
|
static java.lang.String |
functionName(byte func)
Converts from function ID to name (see
functionList). |
boolean |
getCaseSensitive()
Keep tables keys case sensitive.
|
Rmif.Channel |
getChannel(int i)
Return the channel at the given integer index from the set of channels
|
nxm.sys.lib.KeyVector |
getChannels()
return the KeyVector of channels
|
boolean |
getDebug()
Indicates if internal debug is enabled.
|
double |
getLinkBW()
return total link bandwidth since last poll in bytes/sec
|
int |
getLinkLatency()
return average link latency in milliseconds
|
nxm.sys.lib.TextFile |
getLogFile()
Get the log file in use.
|
int |
getMaxErrorsToNotServeProperty()
Get maximum number of errors when serving a property (pipe,result, etc.) to client before removing it
to prevent flood of errors on server side.
|
int |
getMaxQueue()
Gets the default maximum number of packets on the RDP queue used by new remote connections.
|
nxm.sys.inc.MessageHandler |
getMessageHandler()
Get the current message handler for messages received from remotes.
|
int |
getPort()
Return the local port that the instance is connected to (returns -1 if not connected).
|
nxm.sys.lib.KeyVector |
getProperties()
return the KeyVector of properties
|
Rmif.Property |
getProperty(int i)
Return the property at the given integer index from the set of properties
|
Rmif.Property |
getProperty(java.lang.String name)
Return the property by name
|
Rmif.Remote |
getRemote(int i)
Return the remote at the given integer index from the set of remotes
|
Rmif.Remote |
getRemote(java.lang.Object obj)
Converts the given object to a remote.
|
Rmif.Remote |
getRemote(nxm.sys.lib.Table targs)
Get a remote based on the ID in a table
|
Rmif.Remote |
getRemoteForAddress(Rmif.RemoteAddress ra)
get temporary Remote for writing to an unOpened Remote
|
nxm.sys.lib.KeyVector |
getRemotes()
return the KeyVector of remotes
|
boolean |
getReOpen()
Indicates if automatic reopen of connections is enabled.
|
boolean |
getRequireOpen()
Get if requiring unknown remote to first OPEN a connection to this RMIF otherwise,
unsolicited packets will be ignored and a QUIET CLOSE packet may be sent back.
|
int |
getRetry()
Gets the default value for the max retries for RDP packets.
|
java.lang.String |
getTag()
brief description of command
|
double |
getTimeCloseOut()
Get the time to wait for remote connections to close (in seconds).
|
double |
getTimeLost()
Get default time before declaring a RDP packet lost (seconds) for new Remote(s).
|
double |
getTimeOut()
Get the socket timeout in seconds.
|
double |
getTimePing()
Get the time between pings (in seconds).
|
boolean |
getVerbose()
Indicates if verbose output is enabled.
|
int |
getWindow()
Gets the default max window size used by new remote connections.
|
void |
hardKillForTestingOnly()
DO NOT call this method.
|
void |
open(int port,
int prange)
Create and set up the DatagramSocket, allocate buffers and start read/write threads.
|
void |
open(java.lang.String host,
int port,
int prange)
Create and set up the DatagramSocket, allocate buffers and start read/write threads.
|
Rmif.Remote |
openRemote(nxm.sys.lib.Table args)
Adds a new remote and opens it.
|
static java.lang.String |
propTypeName(int type)
Converts property type ID to string (see
typeList). |
static java.lang.String |
protocolName(int protocol)
Converts from protocol ID to name.
|
static java.lang.String |
protocolNameForSeq(int seq)
Converts from packet sequence number to protocol name (see
Rmif for details). |
void |
removeRemote(Rmif.Remote r)
Closes the given remote and removes it from the set of remotes.
|
void |
removeRemote(nxm.sys.lib.Table targs)
Closes the given remote and removes it from the set of remotes.
|
void |
sendPacket(byte func,
int info,
byte[] buffer,
int boff,
int bytes,
Rmif.Remote r,
int flags,
double adjval)
Send an RMIF message packet with the given fields through the specified
remote.
|
void |
sendPacket(byte func,
int info,
byte[] bytes,
Rmif.Remote r,
int flags)
Send an RMIF message packet with the given fields through the specified remote.
|
void |
sendPacket(byte func,
int info,
Rmif.Remote r,
int flags)
Send an RMIF message packet with the given fields through the specified remote.
|
int |
sendPacketRaw(byte[] buf,
int off,
int len,
java.net.InetAddress addr,
int port)
Send raw byte data to a destination.
|
int |
serveFileProperty(Rmif.Property p)
Deprecated.
Since NeXtMidas 2.5.0: Internal use only; use
serveProperties(). |
void |
servePacket(byte func,
int info,
byte[] bytes,
int flags)
Serves a packet.
|
int |
servePipeProperty(Rmif.Property p)
Deprecated.
Since NeXtMidas 2.5.0: Internal use only; use
serveProperties(). |
int |
serveProperties()
serve all properties loop
|
int |
serveResultProperty(Rmif.Property p)
Deprecated.
Since NeXtMidas 2.5.0: Internal use only; use
serveProperties(). |
void |
setCaseSensitive(boolean cs)
Keep tables keys case sensitive.
|
void |
setDebug(boolean debug)
Enable/disable internal debug.
|
void |
setLogFile(nxm.sys.lib.TextFile logfile)
Set the log file to use.
|
void |
setMaxErrorsToNotServeProperty(int newValue)
Set maximum number of errors when serving a property (pipe,result, etc.) to client before removing it
to prevent flood of errors on server side.
|
void |
setMaxQueue(int value)
Sets the default value for maximum number of packets on the RDP queue.
|
nxm.sys.inc.MessageHandler |
setMessageHandler(nxm.sys.inc.MessageHandler mh)
Set the message handler for messages received from remotes.
|
void |
setReOpen(boolean reOpen)
Enable/disable automatic reopen of connections.
|
void |
setRequireOpen(boolean val)
Set to true to require unknown remote to first OPEN a connection to this RMIF otherwise,
unsolicited packets will be ignored and a QUIET CLOSE packet may be sent back.
|
void |
setRetry(int value)
Sets the default value for the max retries for RDP packets.
|
void |
setTimeCloseOut(double time)
Set the time to wait for remote connections to close (in seconds).
|
void |
setTimeDrop(double time)
Set the time before dropping a connection (in seconds).
|
void |
setTimeLost(double time)
Set default time before declaring a RDP packet lost (seconds) for new Remote(s).
|
void |
setTimeOut(double time)
Set the socket timeout in seconds.
|
void |
setTimeOutR(double time)
Deprecated.
Since NeXtMidas 2.5.0: This is not used.
|
void |
setTimePing(double time)
Set the time between pings (in seconds).
|
void |
setVerbose(boolean verbose)
Enable/disable verbose output.
|
void |
setWindow(int value)
Sets the default value for the max window size used.
|
void |
testLink(Rmif.Remote r,
int mode)
Tests the UDP connection between this system and the given remote.
|
void |
testLinkReport(Rmif.Remote r,
int len,
byte[] buf,
int off)
Deprecated.
Since NeXtMidas 2.5.0: Internal use only; use
testLink(Rmif.Remote,int). |
public static final byte SET
Rmif for details).public static final byte GET
Rmif for details).public static final byte RET
Rmif for details).public static final byte ACK
Rmif for details).public static final byte OPEN
Rmif for details).public static final byte CLOSE
Rmif for details).public static final byte SEND
Rmif for details).public static final byte RECV
Rmif for details).public static final byte PING
Rmif for details).public static final byte PONG
Rmif for details).public static final byte DHDR
Rmif for details).public static final byte DBUF
Rmif for details).public static final byte ADDR
Rmif for details).public static final byte MODIFY
Rmif for details).public static final byte OPENED
Rmif for details).public static final byte CLOSED
Rmif for details).public static final byte DBUFC
Rmif for details).public static final byte DBUFD
Rmif for details).public static final byte DBUFZ
Rmif for details).public static final byte DBUFX
Rmif for details).public static final byte GETPROP
Rmif for details).public static final byte RETPROP
Rmif for details).public static final byte RECEIPT
Rmif for details).public static final byte LINKTEST
Rmif for details).public static final byte MFTP
Rmif for details).public static final byte DROPPED
Rmif for details).public static java.lang.String[] functionList
Rmif for details).public static final int MINFUNCTION
public static final int MAXFUNCTION
public static final byte FUNC
Rmif for details).public static final byte FLAG
Rmif for details).public static final byte INFO
Rmif for details).public static final byte REP
Rmif for details).public static final byte SEQ
Rmif for details).public static final byte TRY
Rmif for details).public static final byte RPT
Rmif for details).public static final byte ADJ
Rmif for details).public static final byte DATA
Rmif for details).public static final byte RDP
Rmif for details).public static final byte UDP
Rmif for details).public static final byte TCP
Rmif for details).public static final byte IDP
Rmif for details).public static final java.lang.String protocolList
public static final byte TYPE_RAW
Rmif for details).public static final byte TYPE_BINARY
Rmif for details).public static final byte TYPE_XML
Rmif for details).public static final byte TYPE_ASCII
Rmif for details).public static final byte ADJ_TIME
Rmif for details).public static final byte ADJ_OFFSET
Rmif for details).public static final byte ADJ_USER
Rmif for details).public static final byte PIPE
typeList)public static final byte RESULT
typeList)public static final byte KEY
typeList)public static final byte MESSAGE
typeList)public static final byte FILE
typeList)public static final java.lang.String typeList
"Pipe,Result,Key,Message,File"public static final byte DC_RAW
public static final byte DC_BAND
public static final byte DC_CONST
public static final byte DC_PACK
public static final int MULTI
public static final int MAX_WINDOW
@Deprecated public int nchannel
getChannels().getSize().@Deprecated public int nproperty
getProperties().getSize().@Deprecated public nxm.sys.lib.KeyVector remotes
getRemotes().@Deprecated public nxm.sys.lib.KeyVector properties
getProperties().@Deprecated public nxm.sys.lib.KeyVector channels
getChannels().public Rmif(nxm.sys.inc.MessageHandler handler)
handler - The Message Handler (for messages received from remotes).public Rmif(nxm.sys.lib.Midas M,
nxm.sys.inc.MessageHandler owner,
nxm.sys.inc.MessageHandler handler)
RMIF primitive.M - Midas reference, created if null.owner - Used as the reference (and for status messages).handler - The Message Handler (for messages received from remotes).public void open(java.lang.String host,
int port,
int prange)
host - Socket host to bind on (if host == "" then use the wildcard address (0.0.0.0),
an IP address chosen by the kernel).port - Socket port (port < 0: use any local port).prange - The port range to try.public void open(int port,
int prange)
port - Socket port (port < 0: use any local port).prange - The port range to try.public void close()
public void hardKillForTestingOnly()
public void setLogFile(nxm.sys.lib.TextFile logfile)
logfile - comment herepublic nxm.sys.lib.TextFile getLogFile()
public void setVerbose(boolean verbose)
verbose - comment herepublic boolean getVerbose()
public void setDebug(boolean debug)
debug - comment herepublic boolean getDebug()
public void setReOpen(boolean reOpen)
reOpen - comment herepublic boolean getReOpen()
public void setRequireOpen(boolean val)
val - set to true to prevent crosstalk issue, false (default) to allow packets from
unknown remote's to get forwarded to the upper level (i.e. the macro).public boolean getRequireOpen()
public void setTimeOut(double time)
time - comment herepublic double getTimeOut()
public void setTimeLost(double time)
time - comment herepublic double getTimeLost()
@Deprecated public void setTimeOutR(double time)
time - comment herepublic void setTimeCloseOut(double time)
time - comment herepublic double getTimeCloseOut()
public void setTimeDrop(double time)
time - comment herepublic void setTimePing(double time)
time - comment herepublic double getTimePing()
public void setRetry(int value)
value - comment hereRmif.Remote.setRetry(int)public int getRetry()
Rmif.Remote.getRetry()public boolean getCaseSensitive()
public void setCaseSensitive(boolean cs)
cs - comment herepublic void setWindow(int value)
MAX_WINDOW default is 12. New remote connections will be
initialized with this value.value - comment hereRmif.Remote.setWindow(int)public int getWindow()
Rmif.Remote.getWindow()public void setMaxQueue(int value)
value - comment hereRmif.Remote.setMaxQueue(int)public int getMaxQueue()
Rmif.Remote.getMaxQueue()public nxm.sys.lib.KeyVector getRemotes()
public Rmif.Remote getRemote(int i)
i - comment herepublic nxm.sys.lib.KeyVector getProperties()
public Rmif.Property getProperty(int i)
i - comment herepublic Rmif.Property getProperty(java.lang.String name)
name - comment herepublic nxm.sys.lib.KeyVector getChannels()
public Rmif.Channel getChannel(int i)
i - comment herepublic int getPort()
public void testLink(Rmif.Remote r, int mode)
mode = 0 - Test sending and receiving (same as testLink(r,8); testLink(r,-8);
testLink(r,1024); testLink(r,-1024);)
mode = -N - Test receiving with a packet that is 2^N bytes long.
mode = N - Test sending with a packet that is 2^N bytes long.
r - The remote to test.mode - The test mode.@Deprecated public void testLinkReport(Rmif.Remote r, int len, byte[] buf, int off)
testLink(Rmif.Remote,int).r - comment herelen - comment herebuf - comment hereoff - comment herepublic Rmif.Remote getRemoteForAddress(Rmif.RemoteAddress ra)
ra - comment herepublic void sendPacket(byte func,
int info,
byte[] buffer,
int boff,
int bytes,
Rmif.Remote r,
int flags,
double adjval)
func - The function value to send.info - The info value to send.buffer - The data to send.boff - The byte offset in buffer where data starts.bytes - The number of bytes to send.r - The remote containing the connection parameters to send to.flags - Controls how the data is to be sent.adjval - comment herepublic void sendPacket(byte func,
int info,
byte[] bytes,
Rmif.Remote r,
int flags)
bytes==null, this is the same as
sendPacket(func,info,null,0,0,r,flags,0.0); otherwise it matches
sendPacket(func,info,bytes,0,bytes.length,r,flags,0.0).func - The function value to send.info - The info value to send.bytes - The data to send.r - The remote containing the connection parameters to send to.flags - Controls how the data is to be sent.public void sendPacket(byte func,
int info,
Rmif.Remote r,
int flags)
sendPacket(func,info,null,0,0,r,flags,0.0)func - The function value to send.info - The info value to send.r - The remote containing the connection parameters to send to.flags - Controls how the data is to be sent.public int sendPacketRaw(byte[] buf,
int off,
int len,
java.net.InetAddress addr,
int port)
buf - The buffer containing the data to send.off - The offset into the buffer of the data start.len - The number of bytes to send.addr - The remote address to send the data through.port - The remote port to send the data through.public int checkRemotes()
public double getLinkBW()
public int getLinkLatency()
public void addProperty(java.lang.String name)
_pipe Data pipe (same name on client/server)
_local=_remote Data pipe (different name on client/server)
{_local=_remote} Data pipe (alternate syntax)
Q:<name> Message Queue
F:<name> File (MFTP)
<name> Result
name - comment heredelProperty(int)public void delProperty(int ip)
ip - Property index in the KeyVector (see getProperties()).addProperty(String)public Rmif.Remote addRemote(nxm.sys.lib.Table targs)
targs - Table of arguments used to initialize a new remote connection.openRemote(Table)public Rmif.Remote openRemote(nxm.sys.lib.Table args)
addRemote(args) and then opens the
the connection.args - Table of arguments used to initialize a new remote connection.addRemote(Table)public Rmif.Remote getRemote(java.lang.Object obj)
obj - The object to convert to a remote.public Rmif.Remote getRemote(nxm.sys.lib.Table targs)
targs - comment herepublic void removeRemote(nxm.sys.lib.Table targs)
removeRemote(getRemote(targs)).targs - The remote to remove.removeRemote(Rmif.Remote)public void removeRemote(Rmif.Remote r)
closeRemote(Rmif.Remote) to close the remote if it is still open.r - The remote to remove.closeRemote(Rmif.Remote)public void closeRemote(Rmif.Remote r)
CLOSED but it will NOT
have been removed from the set of remotes (this allows it to be reopened later). Use
removeRemote(Rmif.Remote) to remove a remote from the set of remotes.r - The remote to close.removeRemote(Rmif.Remote)public void addChannel(Rmif.Remote r, int ic, java.lang.String name)
addChannel(r,ic,name,0).r - Remote connection.ic - Channel number.name - Channel name.public void addChannel(Rmif.Remote r, int ic, java.lang.String name, int flags)
r - Remote connection.ic - Channel number (use ic=-1 to automatically assign next available number).name - Channel name (e.g. "SET", "GET", "RET", "ACK".flags - Channel flags (see Rmif.Channel).public void closeChannel(int ic)
ic - Channel number.public void closeChannel(java.lang.String name)
name - Channel name.public static java.lang.String functionName(byte func)
functionList).func - comment herepublic static java.lang.String protocolName(int protocol)
protocol - comment herepublic static java.lang.String protocolNameForSeq(int seq)
Rmif for details).seq - comment herepublic static java.lang.String propTypeName(int type)
typeList).type - comment herepublic java.lang.String getTag()
public int serveProperties()
public void servePacket(byte func,
int info,
byte[] bytes,
int flags)
sendPacket(byte,int,byte[],int,int,Rmif.Remote,int,double).@Deprecated public int servePipeProperty(Rmif.Property p)
serveProperties().p - comment here@Deprecated public int serveResultProperty(Rmif.Property p)
serveProperties().p - comment here@Deprecated public int serveFileProperty(Rmif.Property p)
serveProperties().p - comment herepublic nxm.sys.inc.MessageHandler setMessageHandler(nxm.sys.inc.MessageHandler mh)
mh - The Message Handler (for messages received from remotes).public nxm.sys.inc.MessageHandler getMessageHandler()
public int getMaxErrorsToNotServeProperty()
public void setMaxErrorsToNotServeProperty(int newValue)
serveProperties().newValue - comment here