Intel

Developer Zone

IntelApplet


com.intel.util
Class IntelApplet

java.lang.Object
  extended by com.trustedlogic.tf.Service
      extended by com.intel.util.IntelApplet

public abstract class IntelApplet
extends com.trustedlogic.tf.Service

This is the base class that must be inherited by all applets. The applets must not inherit the com.trustedlogic.tf.Service class directly.


Field Summary
static int APPLET_ERROR_BAD_PARAMETERS
static int APPLET_ERROR_BAD_STATE
static int APPLET_ERROR_GENERIC
static int APPLET_ERROR_NOT_SUPPORTED
static int APPLET_ERROR_SMALL_BUFFER
static int APPLET_SUCCESS
Constructor Summary
IntelApplet()
Method Summary
int getResponseBufferSize()
Returns the maximum size that can be returned by the applet in response.
int getSessionId(byte[] sessionId, int index)
Return a unique applet session identifier.
int getSessionIdLength()
Return the length of applet session identifier.
java.lang.String getUUID()
Returns the UUID of this applet in String representation.
abstract int invokeCommand(int commandId, byte[] request)
This method will be called by the VM to handle a command sent to this applet instance.
int onClose()
This method will be called by the VM when the session being handled by this applet instance is being closed and this applet instance is about to be removed.
void onCloseSession()
This method must not be used directly.
int onCommand(int command, com.trustedlogic.tf.CommandParameters params)
This method must not be used directly.
int onInit(byte[] request)
This method will be called by the VM when a new session is opened to the applet and this applet instance is being created to handle the new session.
int onOpenSession(com.trustedlogic.tf.CommandParameters params)
This method must not be used directly.
void sendAsynchMessage(byte[] data, int index, int length)
Sends message to the SW application communicating with this applet via asynchronous interface.
void setResponse(byte[] response, int index, int length)
Updates the response data to be returned during invokeCommand method.
void setResponseCode(int responseCode)
Updates the response code to be returned after invokeCommand method processing to the SW application.
Methods inherited from class com.trustedlogic.tf.Service
getServiceContext, getServiceProperty, isStopped, onUncaughtException, stop
Methods inherited from class java.lang.Object
equals, hashCode, toString

Field Detail

APPLET_SUCCESS

public static final int APPLET_SUCCESS
See Also:
Constant Field Values

APPLET_ERROR_GENERIC

public static final int APPLET_ERROR_GENERIC
See Also:
Constant Field Values

APPLET_ERROR_BAD_PARAMETERS

public static final int APPLET_ERROR_BAD_PARAMETERS
See Also:
Constant Field Values

APPLET_ERROR_BAD_STATE

public static final int APPLET_ERROR_BAD_STATE
See Also:
Constant Field Values

APPLET_ERROR_NOT_SUPPORTED

public static final int APPLET_ERROR_NOT_SUPPORTED
See Also:
Constant Field Values

APPLET_ERROR_SMALL_BUFFER

public static final int APPLET_ERROR_SMALL_BUFFER
See Also:
Constant Field Values
Constructor Detail

IntelApplet

public IntelApplet()
Method Detail

onOpenSession

public final int onOpenSession(com.trustedlogic.tf.CommandParameters params)
This method must not be used directly.

Overrides:
onOpenSession in class com.trustedlogic.tf.Service
Parameters:
params - the list of parameters sent to the service
Returns:
the execution status that will be forwarded to the client (see SResult)
See Also:
onInit(byte[])

onCloseSession

public final void onCloseSession()
This method must not be used directly.

Overrides:
onCloseSession in class com.trustedlogic.tf.Service
See Also:
onClose()

onCommand

public final int onCommand(int command,
                           com.trustedlogic.tf.CommandParameters params)
This method must not be used directly.

Specified by:
onCommand in class com.trustedlogic.tf.Service
Parameters:
command - the command identifier specified by the client
params - the list of parameters sent to the service
Returns:
the execution status (see constants in SResult).
See Also:
invokeCommand(int commandId, byte[] request)

onInit

public int onInit(byte[] request)
This method will be called by the VM when a new session is opened to the applet and this applet instance is being created to handle the new session. This method cannot provide response data and therefore calling setResponse or setResponseCode methods from it will throw a NullPointerException.

Parameters:
request - the input data sent to the applet during session creation
Returns:
APPLET_SUCCESS if the operation was processed successfully, any other status code in case of error (note that all error codes will be treated similarly by the VM by sending "cancel" error code to the SW application).

onClose

public int onClose()
This method will be called by the VM when the session being handled by this applet instance is being closed and this applet instance is about to be removed. This method cannot provide response data and therefore calling setResponse or setResponseCode methods from it will throw a NullPointerException.

Returns:
APPLET_SUCCESS code (the status code is not used by the VM).

invokeCommand

public abstract int invokeCommand(int commandId,
                                  byte[] request)
This method will be called by the VM to handle a command sent to this applet instance. To return the response data to the command, call the setResponse method before returning from this method. In order to provide a return value for the command, which will be delivered to the SW application communicating with the applet, setResponseCode method should be called. The return value of the invokeCommand method is not guaranteed to be delivered to the SW application, and therefore should not be used for this purpose (applet is expected to return APPLET_SUCCESS code from this method).

Parameters:
commandId - the command ID (applet specific)
request - the input data for this command
Returns:
APPLET_SUCCESS code.

setResponse

public final void setResponse(byte[] response,
                              int index,
                              int length)
Updates the response data to be returned during invokeCommand method. Note that calling this method more than once will reset the response data previously set.

Parameters:
response - the response data to be returned during command processing
index - index in the response data array
length - length of the response data to be returned

getResponseBufferSize

public final int getResponseBufferSize()
Returns the maximum size that can be returned by the applet in response.

Returns:
the maximum size that can be returned by the applet in response.

setResponseCode

public final void setResponseCode(int responseCode)
Updates the response code to be returned after invokeCommand method processing to the SW application. Note that calling this method more than once will reset the code previously set. If not set, the default response code that will be returned to SW application is 0.

Parameters:
responseCode - the response code to be returned to SW application after processing the invokeCommand method. Note that the possible values definition and their interpretation are under the responsibility of the applet and the SW application, and the underlying infrastructure will simply pass through this response code.

getUUID

public final java.lang.String getUUID()
Returns the UUID of this applet in String representation.

Returns:
The UUID of this applet in String representation.

sendAsynchMessage

public final void sendAsynchMessage(byte[] data,
                                    int index,
                                    int length)
                             throws UtilException
Sends message to the SW application communicating with this applet via asynchronous interface. Note that if the SW application did not register for receiving asynchronous messages, the message will be silently dropped. In addition, note that this interface should not be used for transferring large amount of data to prevent exhaustion of system resources, but only for notifications.

Parameters:
data - message data
index - index in the message data array
length - length of data to be sent
Throws:
UtilOutOfResourcesException - in case the system has no resources available for sending this message.
UtilException - in case there is a system error.

getSessionId

public final int getSessionId(byte[] sessionId,
                              int index)
Return a unique applet session identifier.

Parameters:
sessionId - output array for storing the session ID
index - index in the output array
Returns:
the length of the applet session identifier that was copied into sessionId array

getSessionIdLength

public final int getSessionIdLength()
Return the length of applet session identifier.

Returns:
the length of applet session identifier.