2005/5/9

     
 

class RemoteDmiServer

artefaktur
Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   Namespace Members   Compound Members   Related Pages  

acdkx::rdmi::RemoteDmiServer Class Reference

#include <RemoteDmiServer.h>

Inheritance diagram for acdkx::rdmi::RemoteDmiServer:

acdk::lang::Thread acdk::lang::Object acdk::lang::Runnable acdk::lang::ObjectBase acdk::lang::dmi::StdDispatch List of all members.

Public Member Functions

 RemoteDmiServer (IN(RServerImpl) server, IN(RProtocolImpl) protocol)
void startInFront ()
 run in this thread doesn't return until another thread call stopServer() or the remote requests to stop

void startInBackground ()
void shutdown ()
 only valid if running as server

void shutdownRemote ()
 only valid if running as client

acdk::lang::Object createRemoteObject (IN(RString) remoteClass, IN(RString) localInterface, const acdk::lang::dmi::ScriptVarArray &args)
acdk::lang::Object createRemoteObject (IN(RString) remoteClass, IN(RString) localInterface)
acdk::lang::Object createRemoteObject (IN(RString) remoteClass, IN(RString) localInterface, IN(acdk::lang::dmi::ScriptVar) sv0)
acdk::lang::Object createRemoteObject (IN(RString) remoteClass, IN(RString) localInterface, IN(acdk::lang::dmi::ScriptVar) sv0, IN(acdk::lang::dmi::ScriptVar) sv1)
acdk::lang::Object createRemoteObject (IN(RString) remoteClass, IN(RString) localInterface, IN(acdk::lang::dmi::ScriptVar) sv0, IN(acdk::lang::dmi::ScriptVar) sv1, IN(acdk::lang::dmi::ScriptVar) sv2)
acdk::lang::Object createRemote (IN(RString) remoteClass, IN(acdk::lang::dmi::RDmiObjectArray) rest)
acdk::lang::Object createRemoteAs (IN(RString) remoteClass, IN(RString) localInterface, IN(acdk::lang::dmi::RDmiObjectArray) rest)
acdk::lang::dmi::ScriptVar invokeStaticRemote (IN(RString) className, IN(RString) methodName, IN(acdk::lang::dmi::ScriptVarArray) rest, IN(RString) returnAsType=Nil, int returnAttr=0)
acdk::lang::dmi::RDmiObject invokeStaticRemote (IN(RString) className, IN(RString) methodName, IN(acdk::lang::dmi::RDmiObjectArray) rest)
 for scripting

acdk::lang::dmi::RDmiObject invokeStaticRemoteAs (IN(RString) className, IN(RString) methodName, IN(RString) returnAsType, int returnTypeFlags, IN(acdk::lang::dmi::RDmiObjectArray) rest)
 for scripting

acdk::lang::dmi::ScriptVar peekStatic (IN(RString) className, IN(RString) memberName, IN(RString) interfaceName=Nil, int flags=0)
acdk::lang::dmi::RDmiObject peekStaticRemote (IN(RString) className, IN(RString) memberName, IN(RString) interfaceName=Nil, int flags=0)
 same as peekStatic, but used in scripting languages

virtual void run ()
 overload this method to implement working code for this thread

void readWrite (IN(RConnection) con, InvokeCmd initCmd=Unexpected)
 will use to run readWrite cyclus

InvokeCmd dispatch2Local (InvokeCmd cmd, IN(RRemoteArgArray) recvArgs, IN(RRemoteArgArray) sendArgs, IN(RConnection) con)
 server receives message and translate it

InvokeCmd dispatch2Remote (InvokeCmd cmd, IN(RRemoteArgArray) sendArgs, IN(RRemoteArgArray) recvArgs, IN(RConnection) con)
 send a message and receive anwer

InvokeCmd dispatchNewObject (IN(RRemoteArgArray) recvArgs, IN(RRemoteArgArray) sendArgs, IN(RConnection) con)
InvokeCmd dispatchInvoke (IN(RRemoteArgArray) recvArgs, IN(RRemoteArgArray) sendArgs, IN(RConnection) con)
InvokeCmd dispatchInvokeStatic (IN(RRemoteArgArray) recvArgs, IN(RRemoteArgArray) sendArgs, IN(RConnection) con)
InvokeCmd dispatchPeek (IN(RRemoteArgArray) recvArgs, IN(RRemoteArgArray) sendArgs, IN(RConnection) con)
InvokeCmd dispatchPoke (IN(RRemoteArgArray) recvArgs, IN(RRemoteArgArray) sendArgs, IN(RConnection) con)
InvokeCmd dispatchPeekStatic (IN(RRemoteArgArray) recvArgs, IN(RRemoteArgArray) sendArgs, IN(RConnection) con)
InvokeCmd dispatchPokeStatic (IN(RRemoteArgArray) recvArgs, IN(RRemoteArgArray) sendArgs, IN(RConnection) con)
const acdk::lang::dmi::ClazzMethodInfo * remoteStandardDispatch (IN(RRemoteArg) remoteThis, IN(acdk::lang::RString) fname, acdk::lang::dmi::ScriptVar &ret, acdk::lang::dmi::ScriptVarArray &args, acdk::lang::dmi::DmiClient &dc, IN(::acdk::lang::RStringArray) namedArgs, int flags, const acdk::lang::dmi::ClazzInfo *clazzinfo, const acdk::lang::dmi::ClazzMethodInfo *methinf, IN(RRemoteArg) remoteId, IN(RConnection) con)

Public Attributes

RServerImpl _server
RProtocolImpl _protocol
bool _isServer
bool _shootDown

Private Member Functions

acdk::lang::dmi::ScriptVar _remote2local (IN(RRemoteArg) ra, IN(RConnection) con)
RRemoteArg _local2remote (const acdk::lang::dmi::ScriptVar &ra, IN(RConnection) con)
acdk::lang::Object _resolveRemoteObject (IN(RRemoteArg) ra, IN(RConnection) con, bool forceLocal=false)
RRemoteObjectId _getLocalRemoteObjectId (IN(RRemoteArg) ra)
 return a remote id, which is located on this process

RRemoteArg _createRemoteReference (IN(acdk::lang::Object) obj, IN(RString) interfaceName, IN(RConnection) con)
RRemoteArg _localObject2remoteObject (const acdk::lang::dmi::ScriptVar &sv, IN(RConnection) con)
void _send (InvokeCmd sendCmd, IN(RRemoteArgArray) sendArgs, IN(RConnection) con)
InvokeCmd _receive (IN(RRemoteArgArray) recvArgs, IN(RConnection) con, InvokeCmd initCmd)
 if initCmd != Unexpected read also cmd


Constructor & Destructor Documentation

acdkx::rdmi::RemoteDmiServer::RemoteDmiServer (  IN(RServerImpl)  server,
IN(RProtocolImpl)  protocol
)  [inline]
 


Member Function Documentation

RRemoteArg acdkx::rdmi::RemoteDmiServer::_createRemoteReference (  IN(acdk::lang::Object)  obj,
IN(RString)  interfaceName,
IN(RConnection)  con
)  [private]
 

RRemoteObjectId acdkx::rdmi::RemoteDmiServer::_getLocalRemoteObjectId (  IN(RRemoteArg)  ra  )  [private]
 

return a remote id, which is located on this process

RRemoteArg acdkx::rdmi::RemoteDmiServer::_local2remote (  const acdk::lang::dmi::ScriptVar &  ra,
IN(RConnection)  con
)  [private]
 

RRemoteArg acdkx::rdmi::RemoteDmiServer::_localObject2remoteObject (  const acdk::lang::dmi::ScriptVar &  sv,
IN(RConnection)  con
)  [private]
 

InvokeCmd acdkx::rdmi::RemoteDmiServer::_receive (  IN(RRemoteArgArray)  recvArgs,
IN(RConnection)  con,
InvokeCmd  initCmd
)  [private]
 

if initCmd != Unexpected read also cmd

acdk::lang::dmi::ScriptVar acdkx::rdmi::RemoteDmiServer::_remote2local (  IN(RRemoteArg)  ra,
IN(RConnection)  con
)  [private]
 

acdk::lang::Object acdkx::rdmi::RemoteDmiServer::_resolveRemoteObject (  IN(RRemoteArg)  ra,
IN(RConnection)  con,
bool  forceLocal = false
)  [private]
 

void acdkx::rdmi::RemoteDmiServer::_send (  InvokeCmd  sendCmd,
IN(RRemoteArgArray)  sendArgs,
IN(RConnection)  con
)  [private]
 

acdk::lang::Object acdkx::rdmi::RemoteDmiServer::createRemote (  IN(RString)  remoteClass,
IN(acdk::lang::dmi::RDmiObjectArray)  rest
)  [inline]
 

acdk::lang::Object acdkx::rdmi::RemoteDmiServer::createRemoteAs (  IN(RString)  remoteClass,
IN(RString)  localInterface,
IN(acdk::lang::dmi::RDmiObjectArray)  rest
)  [inline]
 

acdk::lang::Object acdkx::rdmi::RemoteDmiServer::createRemoteObject (  IN(RString)  remoteClass,
IN(RString)  localInterface,
IN(acdk::lang::dmi::ScriptVar)  sv0,
IN(acdk::lang::dmi::ScriptVar)  sv1,
IN(acdk::lang::dmi::ScriptVar)  sv2
)  [inline]
 

acdk::lang::Object acdkx::rdmi::RemoteDmiServer::createRemoteObject (  IN(RString)  remoteClass,
IN(RString)  localInterface,
IN(acdk::lang::dmi::ScriptVar)  sv0,
IN(acdk::lang::dmi::ScriptVar)  sv1
)  [inline]
 

acdk::lang::Object acdkx::rdmi::RemoteDmiServer::createRemoteObject (  IN(RString)  remoteClass,
IN(RString)  localInterface,
IN(acdk::lang::dmi::ScriptVar)  sv0
)  [inline]
 

acdk::lang::Object acdkx::rdmi::RemoteDmiServer::createRemoteObject (  IN(RString)  remoteClass,
IN(RString)  localInterface
)  [inline]
 

acdk::lang::Object acdkx::rdmi::RemoteDmiServer::createRemoteObject (  IN(RString)  remoteClass,
IN(RString)  localInterface,
const acdk::lang::dmi::ScriptVarArray &  args
) 
 

InvokeCmd acdkx::rdmi::RemoteDmiServer::dispatch2Local (  InvokeCmd  cmd,
IN(RRemoteArgArray)  recvArgs,
IN(RRemoteArgArray)  sendArgs,
IN(RConnection)  con
) 
 

server receives message and translate it

InvokeCmd acdkx::rdmi::RemoteDmiServer::dispatch2Remote (  InvokeCmd  cmd,
IN(RRemoteArgArray)  sendArgs,
IN(RRemoteArgArray)  recvArgs,
IN(RConnection)  con
) 
 

send a message and receive anwer

InvokeCmd acdkx::rdmi::RemoteDmiServer::dispatchInvoke (  IN(RRemoteArgArray)  recvArgs,
IN(RRemoteArgArray)  sendArgs,
IN(RConnection)  con
) 
 

InvokeCmd acdkx::rdmi::RemoteDmiServer::dispatchInvokeStatic (  IN(RRemoteArgArray)  recvArgs,
IN(RRemoteArgArray)  sendArgs,
IN(RConnection)  con
) 
 

InvokeCmd acdkx::rdmi::RemoteDmiServer::dispatchNewObject (  IN(RRemoteArgArray)  recvArgs,
IN(RRemoteArgArray)  sendArgs,
IN(RConnection)  con
) 
 

InvokeCmd acdkx::rdmi::RemoteDmiServer::dispatchPeek (  IN(RRemoteArgArray)  recvArgs,
IN(RRemoteArgArray)  sendArgs,
IN(RConnection)  con
) 
 

InvokeCmd acdkx::rdmi::RemoteDmiServer::dispatchPeekStatic (  IN(RRemoteArgArray)  recvArgs,
IN(RRemoteArgArray)  sendArgs,
IN(RConnection)  con
) 
 

InvokeCmd acdkx::rdmi::RemoteDmiServer::dispatchPoke (  IN(RRemoteArgArray)  recvArgs,
IN(RRemoteArgArray)  sendArgs,
IN(RConnection)  con
) 
 

InvokeCmd acdkx::rdmi::RemoteDmiServer::dispatchPokeStatic (  IN(RRemoteArgArray)  recvArgs,
IN(RRemoteArgArray)  sendArgs,
IN(RConnection)  con
) 
 

acdk::lang::dmi::RDmiObject acdkx::rdmi::RemoteDmiServer::invokeStaticRemote (  IN(RString)  className,
IN(RString)  methodName,
IN(acdk::lang::dmi::RDmiObjectArray)  rest
)  [inline]
 

for scripting

acdk::lang::dmi::ScriptVar acdkx::rdmi::RemoteDmiServer::invokeStaticRemote (  IN(RString)  className,
IN(RString)  methodName,
IN(acdk::lang::dmi::ScriptVarArray)  rest,
IN(RString)  returnAsType = Nil,
int  returnAttr = 0
) 
 

acdk::lang::dmi::RDmiObject acdkx::rdmi::RemoteDmiServer::invokeStaticRemoteAs (  IN(RString)  className,
IN(RString)  methodName,
IN(RString)  returnAsType,
int  returnTypeFlags,
IN(acdk::lang::dmi::RDmiObjectArray)  rest
)  [inline]
 

for scripting

acdk::lang::dmi::ScriptVar acdkx::rdmi::RemoteDmiServer::peekStatic (  IN(RString)  className,
IN(RString)  memberName,
IN(RString)  interfaceName = Nil,
int  flags = 0
) 
 

Parameters:
className server class
interfaceName class of type to transfer. May be Nil
flags acdk::lang::dmi::MiAiByval or acdk::lang::dmi::MiAiByref if flags = 0 selection will be done by type
memberName name of static member

acdk::lang::dmi::RDmiObject acdkx::rdmi::RemoteDmiServer::peekStaticRemote (  IN(RString)  className,
IN(RString)  memberName,
IN(RString)  interfaceName = Nil,
int  flags = 0
)  [inline]
 

same as peekStatic, but used in scripting languages

void acdkx::rdmi::RemoteDmiServer::readWrite (  IN(RConnection)  con,
InvokeCmd  initCmd = Unexpected
) 
 

will use to run readWrite cyclus

const acdk::lang::dmi::ClazzMethodInfo* acdkx::rdmi::RemoteDmiServer::remoteStandardDispatch (  IN(RRemoteArg)  remoteThis,
IN(acdk::lang::RString)  fname,
acdk::lang::dmi::ScriptVar &  ret,
acdk::lang::dmi::ScriptVarArray &  args,
acdk::lang::dmi::DmiClient &  dc,
IN(::acdk::lang::RStringArray)  namedArgs,
int  flags,
const acdk::lang::dmi::ClazzInfo *  clazzinfo,
const acdk::lang::dmi::ClazzMethodInfo *  methinf,
IN(RRemoteArg)  remoteId,
IN(RConnection)  con
) 
 

virtual void acdkx::rdmi::RemoteDmiServer::run (   )  [virtual]
 

overload this method to implement working code for this thread

Reimplemented from acdk::lang::Thread.

void acdkx::rdmi::RemoteDmiServer::shutdown (   ) 
 

only valid if running as server

void acdkx::rdmi::RemoteDmiServer::shutdownRemote (   ) 
 

only valid if running as client

void acdkx::rdmi::RemoteDmiServer::startInBackground (   ) 
 

void acdkx::rdmi::RemoteDmiServer::startInFront (   ) 
 

run in this thread doesn't return until another thread call stopServer() or the remote requests to stop


Member Data Documentation

bool acdkx::rdmi::RemoteDmiServer::_isServer
 

RProtocolImpl acdkx::rdmi::RemoteDmiServer::_protocol
 

RServerImpl acdkx::rdmi::RemoteDmiServer::_server
 

bool acdkx::rdmi::RemoteDmiServer::_shootDown