Package org.eclipse.ecf.provider.generic
Class SOContext
- java.lang.Object
- 
- org.eclipse.ecf.provider.generic.SOContext
 
- 
- All Implemented Interfaces:
- org.eclipse.core.runtime.IAdaptable,- ISharedObjectContext
 
 public class SOContext extends Object implements ISharedObjectContext 
- 
- 
Field SummaryFields Modifier and Type Field Description protected SOContainercontainerprotected IDhomeContainerIDprotected booleanisActiveprotected Mappropertiesprotected IQueueEnqueuequeueprotected IDsharedObjectID
 - 
Constructor SummaryConstructors Constructor Description SOContext(ID objID, ID homeID, SOContainer cont, Map props, IQueueEnqueue queue)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidconnect(ID groupID, IConnectContext joinContext)(non-Javadoc)voiddisconnect()(non-Javadoc)ObjectgetAdapter(Class clazz)IDgetConnectedID()(non-Javadoc)NamespacegetConnectNamespace()Get the Namespace instance that defines the ID type expected by the remote target containerID[]getGroupMemberIDs()(non-Javadoc)IDgetLocalContainerID()Get the local container instance's IDMapgetLocalContainerProperties()Get local container properties that it wishes to expose to shared object accessIQueueEnqueuegetQueue()Get the IQueueEnqueue instance associated with this ISharedObject.ISharedObjectManagergetSharedObjectManager()Get the ISharedObjectManager for this contextbooleanisActive()booleanisGroupManager()(non-Javadoc)booleanisGroupServer()protected booleanisInactive()protected voidmakeInactive()voidsendCreate(ID toContainerID, ReplicaSharedObjectDescription sd)Send message to create a remote instance of an ISharedObject with the same ID as this instance.voidsendCreateResponse(ID toContainerID, Throwable throwable, long identifier)Send create response back to an ISharedObject with the same ID as this instance.voidsendDispose(ID toContainerID)Send message to dispose of a remote instance of the ISharedObject with same ID as this instance.voidsendMessage(ID toContainerID, Object data)Send arbitrary message to remote instance of the ISharedObject with same ID as this instance.protected voidtrace(String msg)protected voidtraceStack(String msg, Throwable e)
 
- 
- 
- 
Field Detail- 
containerprotected SOContainer container 
 - 
sharedObjectIDprotected ID sharedObjectID 
 - 
homeContainerIDprotected ID homeContainerID 
 - 
isActiveprotected boolean isActive 
 - 
propertiesprotected Map properties 
 - 
queueprotected IQueueEnqueue queue 
 
- 
 - 
Constructor Detail- 
SOContextpublic SOContext(ID objID, ID homeID, SOContainer cont, Map props, IQueueEnqueue queue) 
 
- 
 - 
Method Detail- 
isActivepublic boolean isActive() - Specified by:
- isActivein interface- ISharedObjectContext
 
 - 
traceprotected void trace(String msg) 
 - 
makeInactiveprotected void makeInactive() 
 - 
isInactiveprotected boolean isInactive() 
 - 
getLocalContainerIDpublic ID getLocalContainerID() Description copied from interface:ISharedObjectContextGet the local container instance's ID- Specified by:
- getLocalContainerIDin interface- ISharedObjectContext
- Returns:
- the ID of the enclosing container
 
 - 
getSharedObjectManagerpublic ISharedObjectManager getSharedObjectManager() Description copied from interface:ISharedObjectContextGet the ISharedObjectManager for this context- Specified by:
- getSharedObjectManagerin interface- ISharedObjectContext
- Returns:
- ISharedObjectManager the shared object manager instance for this container. Null if none available.
 
 - 
getQueuepublic IQueueEnqueue getQueue() Description copied from interface:ISharedObjectContextGet the IQueueEnqueue instance associated with this ISharedObject. If the given container provides a queue for this ISharedObject, this method will return a IQueueEnqueue reference to the appropriate queue.- Specified by:
- getQueuein interface- ISharedObjectContext
- Returns:
- IQueueEnqueue instance if an active queue is associated with this ISharedObject. If no active queue is associated with the ISharedObject, returns null.
 
 - 
connectpublic void connect(ID groupID, IConnectContext joinContext) throws ContainerConnectException Description copied from interface:ISharedObjectContext(non-Javadoc)- Specified by:
- connectin interface- ISharedObjectContext
- Throws:
- ContainerConnectException
- See Also:
- IContainer.connect(ID,IConnectContext)
 
 - 
disconnectpublic void disconnect() Description copied from interface:ISharedObjectContext(non-Javadoc)- Specified by:
- disconnectin interface- ISharedObjectContext
- See Also:
- IContainer.disconnect()
 
 - 
getConnectedIDpublic ID getConnectedID() Description copied from interface:ISharedObjectContext(non-Javadoc)- Specified by:
- getConnectedIDin interface- ISharedObjectContext
- See Also:
- IContainer.getConnectedID()
 
 - 
isGroupManagerpublic boolean isGroupManager() Description copied from interface:ISharedObjectContext(non-Javadoc)- Specified by:
- isGroupManagerin interface- ISharedObjectContext
- See Also:
- IReliableContainer.isGroupManager()
 
 - 
isGroupServerpublic boolean isGroupServer() 
 - 
getGroupMemberIDspublic ID[] getGroupMemberIDs() Description copied from interface:ISharedObjectContext(non-Javadoc)- Specified by:
- getGroupMemberIDsin interface- ISharedObjectContext
- See Also:
- IReliableContainer.getGroupMemberIDs()
 
 - 
sendCreatepublic void sendCreate(ID toContainerID, ReplicaSharedObjectDescription sd) throws IOException Description copied from interface:ISharedObjectContextSend message to create a remote instance of an ISharedObject with the same ID as this instance. This method allows ISharedObject instances (with a reference to a valid ISharedObjectContext) to send messages to remote containers asking them to create an instance of a new ISharedObject. The given ReplicaSharedObjectDescription provides the specification of the new object.- Specified by:
- sendCreatein interface- ISharedObjectContext
- Parameters:
- toContainerID- the ID of the remote that is the target of the create request. If this parameter is null, the request is assumed to be made of all currently in the given group (excepting the local container).
- sd- the ReplicaSharedObjectDescription describing the class, constructor and other properties to be associated with the new instance
- Throws:
- IOException- thrown if message cannot be sent by container
 
 - 
sendCreateResponsepublic void sendCreateResponse(ID toContainerID, Throwable throwable, long identifier) throws IOException Description copied from interface:ISharedObjectContextSend create response back to an ISharedObject with the same ID as this instance. This method allows ISharedObject instances (with a reference to a valid ISharedObjectContext) to send messages to remote containers asking them to deliver the create response status back to the ISharedObject.- Specified by:
- sendCreateResponsein interface- ISharedObjectContext
- Parameters:
- toContainerID- the ID of the target that is to receive this response
- throwable- a throwable associated with the creation. Null means that no exception occurred
- identifier- the identifier used in the original create message (in the shared object description)
- Throws:
- IOException- thrown if the create response cannot be sent
 
 - 
sendDisposepublic void sendDispose(ID toContainerID) throws IOException Description copied from interface:ISharedObjectContextSend message to dispose of a remote instance of the ISharedObject with same ID as this instance. This method allows ISharedObject instances to control the destruction of remote replicas.- Specified by:
- sendDisposein interface- ISharedObjectContext
- Parameters:
- toContainerID- the ID of the remote that is the target of the dispose request. If this parameter is null, the request is assumed to be made of all remotes currently in the given group (excepting the local container).
- Throws:
- IOException- thrown if message cannot be sent by container, or if data cannot be serialized
 
 - 
sendMessagepublic void sendMessage(ID toContainerID, Object data) throws IOException Description copied from interface:ISharedObjectContextSend arbitrary message to remote instance of the ISharedObject with same ID as this instance. This method allows ISharedObject instances to send arbitrary data to one or more remote replicas of this ISharedObject.- Specified by:
- sendMessagein interface- ISharedObjectContext
- Parameters:
- toContainerID- the ID of the remote that is the target for the sendMessage. If this parameter is null, the message is sent to the entire group membership all remote containers currently in the given group (excepting the local container).
- data- arbitrary message object. The allowable types of this parameter are dependent upon the type of the underlying implementing container
- Throws:
- IOException- thrown if message cannot be sent by container, or if data cannot be serialized
 
 - 
getAdapterpublic Object getAdapter(Class clazz) - Specified by:
- getAdapterin interface- org.eclipse.core.runtime.IAdaptable
 
 - 
getConnectNamespacepublic Namespace getConnectNamespace() Description copied from interface:ISharedObjectContextGet the Namespace instance that defines the ID type expected by the remote target container- Specified by:
- getConnectNamespacein interface- ISharedObjectContext
- Returns:
- Namespace the namespace by the target for a call to connect(). Null if container namespace no longer available
 
 - 
getLocalContainerPropertiespublic Map getLocalContainerProperties() Description copied from interface:ISharedObjectContextGet local container properties that it wishes to expose to shared object access- Specified by:
- getLocalContainerPropertiesin interface- ISharedObjectContext
- Returns:
- Map of properties available to calling shared object. Map returned must not be null.
 
 
- 
 
-