gov.aps.jca.cas
Interface Server


public interface Server

CA Server interface. User has to implement this interface to create ServerContext. ServerContext are created through the JCALibrary factory class.

Version:
$Id: Server.java,v 1.3 2006/08/22 15:11:38 msekoranja Exp $
Author:
Matej Sekoranja
See Also:
JCALibrary

Method Summary
 ProcessVariable processVariableAttach(java.lang.String aliasName, ProcessVariableEventCallback eventCallback, ProcessVariableAttachCallback asyncCompletionCallback)
          This function is called every time that a client attaches to the PV.
 ProcessVariableExistanceCompletion processVariableExistanceTest(java.lang.String aliasName, java.net.InetSocketAddress clientAddress, ProcessVariableExistanceCallback asyncCompletionCallback)
          This function is called by the server library when it needs to determine if a named process variable (PV) exists (or could be created) in the server tool.
 

Method Detail

processVariableExistanceTest

ProcessVariableExistanceCompletion processVariableExistanceTest(java.lang.String aliasName,
                                                                java.net.InetSocketAddress clientAddress,
                                                                ProcessVariableExistanceCallback asyncCompletionCallback)
                                                                throws CAException,
                                                                       java.lang.IllegalArgumentException,
                                                                       java.lang.IllegalStateException
This function is called by the server library when it needs to determine if a named process variable (PV) exists (or could be created) in the server tool. The request is allowed to complete asynchronously. The server tool is encouraged to accept multiple PV name aliases for the same PV here. NOTE: return ProcessVariableExistanceCompletion.DOES_NOT_EXIST_HERE if too many simultaneous asynchronous operations are pending against the server. The client library will retry the request at some time in the future.

Parameters:
aliasName - the process variable alias name.
clientAddress - the client which requested test.
asyncCompletionCallback - if asynchronous completion is required method should return ProcessVariableExistanceCompletion.ASYNC_COMPLETION and call ProcessVariableExistanceCompletionCallback.processVariableExistanceTestCompleted() method.
Returns:
process variable existance status.
Throws:
java.lang.IllegalArgumentException - is thrown if the process variable name is invalid.
java.lang.IllegalStateException - if the context has been destroyed.
CAException

processVariableAttach

ProcessVariable processVariableAttach(java.lang.String aliasName,
                                      ProcessVariableEventCallback eventCallback,
                                      ProcessVariableAttachCallback asyncCompletionCallback)
                                      throws CAStatusException,
                                             java.lang.IllegalArgumentException,
                                             java.lang.IllegalStateException
This function is called every time that a client attaches to the PV. The name supplied here will be either a canonical PV name or an alias PV name. The request is allowed to complete asynchronously. It is a responsibility of the server tool to detect attempts by the server library to attach to an existing PV. If the PV does not exist then the server tool should create it. Otherwise, the server tool typically will return a pointer to the preexisting PV. The server tool is encouraged to accept multiple PV name aliases for the same PV here. In most situations the server tool should avoid PV duplication by returning a pointer to an existing PV if the PV alias name matches a preexisting PV's name or any of its aliases. In certain specialized rare situations the server tool may choose to create client private process variables that are not shared between clients. In this situation there might be several process variables with the same name. One for each client. For example, a server tool might be written that provides access to archival storage of the historic values of a set of process variables. Each client would specify its date of interest by writing into a client private process variable. Next the client would determine the current value of its subset of named process variables at its privately specified date by attaching to additional client private process variables.

Parameters:
aliasName - the process variable alias name.
eventCallback - the process variable event callback (where PV reports value changes if interest is true).
asyncCompletionCallback - if asynchronous completion is required method should return null and call ProcessVariableExistanceCompletionCallback.processVariableAttachCompleted() method.
Returns:
requested ProcessVariable instance, null if operation is to be done asynchronously or exception is thrown in case of an error (non-existant PV, etc.).
Throws:
CAStatusException - is thrown if a Channel Access error occured while creating the channel.
java.lang.IllegalArgumentException - is thrown if the channel's name is null or empty.
java.lang.IllegalStateException - if the context has been destroyed.


Copyright © 2004-2006 Cosylab. All Rights Reserved.