Class Service
- java.lang.Object
-
- com.openinventor.inventor.Inventor
-
- com.openinventor.remoteviz.rendering.Service
-
public class Service extends Inventor
Defines the RemoteViz rendering service. This class uses the singleton pattern restricting its instantiation to a single unique object in the program. Use theService.instance()
method to get theService
object.To use RemoteViz, the service must first be opened with the method
Service.open()
. Create an instance ofServiceSettings
to set properties such as theService
IP address and port.Create an implementation of class
ServiceListener
to receive notifications from theService
. Register a listener using theaddListener()
method.The
Service
object can also be used to query the current Clients and RenderAreas.Thread-safety :
All methods in the RemoteViz API are thread-safe. I.e., they are guaranteed to be free of race conditions when accessed by multiple threads simultaneously. But note this limitation with the classService
:- The methods
Service.open()
,Service.close()
andService.dispatch()
must be called from the same thread.
- See Also:
ServiceSettings
,ServiceListener
,Client
,RenderArea
- The methods
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.openinventor.inventor.Inventor
Inventor.ConstructorCommand
-
-
Field Summary
-
Fields inherited from class com.openinventor.inventor.Inventor
VERBOSE_LEVEL, ZeroHandle
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addListener(ServiceListener listener)
Adds aServiceListener
.boolean
close()
Closes the rendering service.void
createRenderArea(java.lang.String id, int width, int height, RenderAreaHardware renderAreaHardware)
Forces the creation of a renderArea.void
dispatch()
This method has to be used with theServiceSettings.INVENTOR_SERVICE
andServiceSettings.INDEPENDENT_SERVICE
mode in a loop.Client
getClient(int index)
Gets aClient
from index.Client
getClient(java.lang.String id)
Gets aClient
from id.int
getNumClients()
Gets the number of clients.int
getNumListeners()
Gets the number ofServiceListener
.int
getNumRenderAreas()
Gets the number of renderAreas.RenderArea
getRenderArea(int index)
Gets aRenderArea
from index.RenderArea
getRenderArea(java.lang.String id)
Gets aRenderArea
from id.ServiceSettings
getSettings()
Gets the settings of the service.static Service
instance()
Renderering service instance (Singleton)boolean
isRunning()
This method is used to know if the rendering service is running.boolean
open(ServiceSettings settings)
Opens the rendering service.void
removeAllListeners()
Removes all ServiceListeners.void
removeListener(ServiceListener listener)
Removes aServiceListener
.-
Methods inherited from class com.openinventor.inventor.Inventor
dispose, getNativeResourceHandle
-
-
-
-
Method Detail
-
close
public boolean close()
Closes the rendering service. If renderAreas still exist, this method will dispose them and close the rendering service.- Returns:
- true if successful, otherwise returns false.
-
getNumClients
public int getNumClients()
Gets the number of clients.- Returns:
- the number clients attached to the service.
-
isRunning
public boolean isRunning()
This method is used to know if the rendering service is running.- Returns:
- true if running; otherwise returns false.
-
getClient
public Client getClient(int index)
Gets aClient
from index. Range is [0..getNumClients - 1].- Parameters:
index
- : index identifying the client- Returns:
- the client object if the index exists, otherwise returns null.
-
instance
public static Service instance()
Renderering service instance (Singleton)- Returns:
- the service instance
-
getSettings
public ServiceSettings getSettings()
Gets the settings of the service.- Returns:
- the service settings object
-
open
public boolean open(ServiceSettings settings)
Opens the rendering service.- Parameters:
settings
- : the settings of the instance. This object cannot be null.- Returns:
- true if successful, otherwise returns false.
- See Also:
Service.getSettings
-
dispatch
public void dispatch()
This method has to be used with theServiceSettings.INVENTOR_SERVICE
andServiceSettings.INDEPENDENT_SERVICE
mode in a loop. It processes all waiting RemoteViz events.
-
removeListener
public void removeListener(ServiceListener listener)
Removes aServiceListener
.- Parameters:
listener
- : object that listens to the service events
-
getRenderArea
public RenderArea getRenderArea(int index)
Gets aRenderArea
from index. Range is [0..getNumRenderAreas - 1].- Parameters:
index
- : index identifying the renderArea- Returns:
- the renderArea object if the index exists, otherwise returns null.
-
addListener
public void addListener(ServiceListener listener)
Adds aServiceListener
.- Parameters:
listener
- : object that listens to the service events
-
getNumRenderAreas
public int getNumRenderAreas()
Gets the number of renderAreas.- Returns:
- the renderArea number of the Instance.
-
removeAllListeners
public void removeAllListeners()
Removes all ServiceListeners.
-
createRenderArea
public void createRenderArea(java.lang.String id, int width, int height, RenderAreaHardware renderAreaHardware)
Forces the creation of a renderArea.
This method is optional. The other way to create a renderArea is to return true to the callback ServiceListener.onPendingCreateRenderArea when a connection requests it.
If the renderArea already exists, the call will be ignored.- Parameters:
id
- : ID identifying theRenderArea
width
- : renderArea widthheight
- : renderArea heightrenderAreaHardware
- : renderArea hardware settings.
-
getClient
public Client getClient(java.lang.String id)
Gets aClient
from id. Range is [0..getNumClients - 1].- Parameters:
id
- : ID identifying the client- Returns:
- the client object if the id exists, otherwise returns null.
-
getRenderArea
public RenderArea getRenderArea(java.lang.String id)
Gets aRenderArea
from id. Range is [0..getNumRenderAreas - 1].- Parameters:
id
- : ID identifying theRenderArea
- Returns:
- the renderArea object if the id exists, otherwise returns null.
-
getNumListeners
public int getNumListeners()
Gets the number ofServiceListener
.- Returns:
- number of
ServiceListener
.
-
-