public class RemoteReferenceModule
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static boolean |
DEBUG
Debug flag.
|
static long |
DEFAULT_LEASETIME
The default lease time.
|
protected java.util.Map<RemoteReference,java.util.Map<RemoteReferenceHolder,RemoteReferenceHolder>> |
holders
The remote reference holders of a object (rr -> holder (rms cid)).
|
protected long |
idcnt
The id counter.
|
protected jadex.bridge.service.types.library.ILibraryService |
libservice
The library service.
|
protected jadex.bridge.service.types.marshal.IMarshalService |
marshalservice
The marshal service.
|
protected java.util.Map<RemoteReference,java.lang.Integer> |
proxycount
The proxycount count map.
|
protected java.util.Map<java.lang.Long,RemoteReference> |
proxydates
The proxy dates (date -> rr).
|
protected java.util.Map<java.lang.Object,ProxyInfo> |
proxyinfos
The cache of proxy infos (class -> proxy info).
|
protected java.util.Map<java.lang.Object,RemoteReference> |
remoterefs
The inverse map of target object to remote references (target objects -> rr).
|
protected long |
removeid
The remove behaviour id.
|
protected long |
renewid
The renew behaviour id.
|
protected RemoteServiceManagementService |
rsms
The remote management service.
|
protected java.util.Map<RemoteReference,java.lang.Object> |
targetcomps
The map of target components and services (rr -> target comp).
|
protected java.util.Map<RemoteReference,java.lang.Object> |
targetobjects
The map of target objects (rr -> target object).
|
protected java.util.Timer |
timer
The timer.
|
static double |
WAITFACTOR
leasetime*factor is used to determine when an entry should be removed.
|
Constructor and Description |
---|
RemoteReferenceModule(RemoteServiceManagementService rsms,
jadex.bridge.service.types.library.ILibraryService libservice,
jadex.bridge.service.types.marshal.IMarshalService marshalservice)
Create a new remote reference module.
|
Modifier and Type | Method and Description |
---|---|
static void |
addCachedMethodValue(ProxyReference pr,
ProxyInfo pi,
java.lang.reflect.Method m,
java.lang.Object target)
Add a cached method value to the proxy info.
|
void |
addRemoteReference(RemoteReference rr,
jadex.bridge.IComponentIdentifier holder)
Add a new holder to a remote object.
|
protected void |
addTemporaryRemoteReference(RemoteReference rr,
jadex.bridge.IComponentIdentifier holder)
Add a new temporary holder to a remote object.
|
protected void |
checkThread()
Check if correct thread access.
|
protected ProxyInfo |
createProxyInfo(java.lang.Object target,
java.lang.Class<?>[] remoteinterfaces,
java.lang.ClassLoader cl)
Create a proxy info for a service.
|
protected void |
decProxyCount(RemoteReference rr)
Decrease the proxy count for a remote reference.
|
protected void |
deleteRemoteReference(RemoteReference rr)
Delete a remote reference.
|
protected RemoteReference |
generateRemoteReference()
Generate a remote reference.
|
jadex.bridge.service.types.library.ILibraryService |
getLibraryService()
Get the libservice.
|
jadex.bridge.service.types.marshal.IMarshalService |
getMarshalService()
Get the marshalservice.
|
static jadex.commons.MethodInfo[] |
getMethodInfo(java.lang.Object iden,
java.lang.Class<?> targetclass,
boolean noargs)
Get method info.
|
java.lang.Object |
getProxy(ProxyReference pr,
java.lang.ClassLoader classloader)
Get a proxy for a proxy reference.
|
ProxyReference |
getProxyReference(java.lang.Object target,
jadex.bridge.IComponentIdentifier tmpholder,
java.lang.ClassLoader cl)
Get a remote reference for a component for transport.
|
protected RemoteReference |
getRemoteReference(java.lang.Object target)
Get a remote reference.
|
protected RemoteReference |
getRemoteReference(java.lang.Object target,
java.lang.Object orig,
boolean add)
Get a remote reference.
|
jadex.commons.future.IFuture<java.lang.Object> |
getTargetObject(RemoteReference rr)
Get a target object per remote reference.
|
protected void |
incProxyCount(RemoteReference rr)
Increment the proxy count for a remote reference.
|
void |
removeRemoteReference(RemoteReference rr,
jadex.bridge.IComponentIdentifier holder)
Remove a new holder from a remote object.
|
protected java.lang.Object |
removeTargetObject(RemoteReference rr)
Remove a target object.
|
jadex.commons.future.Future<java.lang.Void> |
sendAddRemoteReference(RemoteReference rr)
Send addRef to the origin process of the remote reference.
|
jadex.commons.future.Future<java.lang.Void> |
sendRemoveRemoteReference(RemoteReference rr)
Send removeRef to the origin process of the remote reference.
|
protected jadex.commons.future.IFuture<java.lang.Void> |
shutdown()
Shutdown the module.
|
protected void |
startRemovalBehaviour()
Start removal behavior for expired holders.
|
protected void |
startRenewalBehaviour()
Start the removal behavior.
|
public static final boolean DEBUG
public static final long DEFAULT_LEASETIME
public static final double WAITFACTOR
protected RemoteServiceManagementService rsms
protected java.util.Map<java.lang.Object,ProxyInfo> proxyinfos
protected java.util.Map<RemoteReference,java.lang.Object> targetobjects
protected java.util.Map<RemoteReference,java.lang.Object> targetcomps
protected java.util.Map<java.lang.Object,RemoteReference> remoterefs
protected long idcnt
protected java.util.Map<RemoteReference,java.lang.Integer> proxycount
protected java.util.Map<java.lang.Long,RemoteReference> proxydates
protected java.util.Map<RemoteReference,java.util.Map<RemoteReferenceHolder,RemoteReferenceHolder>> holders
protected jadex.bridge.service.types.library.ILibraryService libservice
protected jadex.bridge.service.types.marshal.IMarshalService marshalservice
protected long renewid
protected long removeid
protected java.util.Timer timer
public RemoteReferenceModule(RemoteServiceManagementService rsms, jadex.bridge.service.types.library.ILibraryService libservice, jadex.bridge.service.types.marshal.IMarshalService marshalservice)
public ProxyReference getProxyReference(java.lang.Object target, jadex.bridge.IComponentIdentifier tmpholder, java.lang.ClassLoader cl)
protected ProxyInfo createProxyInfo(java.lang.Object target, java.lang.Class<?>[] remoteinterfaces, java.lang.ClassLoader cl)
public static void addCachedMethodValue(ProxyReference pr, ProxyInfo pi, java.lang.reflect.Method m, java.lang.Object target)
public static jadex.commons.MethodInfo[] getMethodInfo(java.lang.Object iden, java.lang.Class<?> targetclass, boolean noargs)
protected RemoteReference getRemoteReference(java.lang.Object target)
target
- The (local) remote object.protected RemoteReference getRemoteReference(java.lang.Object target, java.lang.Object orig, boolean add)
target
- The (local) remote object.protected void deleteRemoteReference(RemoteReference rr)
rr
- The remote reference.protected jadex.commons.future.IFuture<java.lang.Void> shutdown()
public jadex.commons.future.IFuture<java.lang.Object> getTargetObject(RemoteReference rr)
rr
- The remote reference.protected java.lang.Object removeTargetObject(RemoteReference rr)
rr
- The remote reference.protected RemoteReference generateRemoteReference()
public java.lang.Object getProxy(ProxyReference pr, java.lang.ClassLoader classloader)
pr
- The proxy reference.protected void incProxyCount(RemoteReference rr)
rr
- The remote reference for the proxy.protected void decProxyCount(RemoteReference rr)
rr
- The remote reference for the proxy.protected void startRenewalBehaviour()
protected void startRemovalBehaviour()
public jadex.commons.future.Future<java.lang.Void> sendAddRemoteReference(RemoteReference rr)
rr
- The remote reference.public jadex.commons.future.Future<java.lang.Void> sendRemoveRemoteReference(RemoteReference rr)
rr
- The remote reference.protected void addTemporaryRemoteReference(RemoteReference rr, jadex.bridge.IComponentIdentifier holder)
rr
- The remote reference.holder
- The cid of the holding rms.public void addRemoteReference(RemoteReference rr, jadex.bridge.IComponentIdentifier holder)
rr
- The remote reference.holder
- The cid of the holding rms.public void removeRemoteReference(RemoteReference rr, jadex.bridge.IComponentIdentifier holder)
rr
- The remote reference.holder
- The cid of the holding rms.protected void checkThread()
public jadex.bridge.service.types.marshal.IMarshalService getMarshalService()
public jadex.bridge.service.types.library.ILibraryService getLibraryService()