SMom.ObjectOriented
Class CDynamicStub

java.lang.Object
  |
  +--SMom.ObjectOriented.CDynamicStub
All Implemented Interfaces:
IReceiver, ISender

public class CDynamicStub
extends java.lang.Object
implements ISender, IReceiver

Stub di base con chiamate dinamiche funzionante per una qualsiasi classe.

'TODO Creare una istanza di questa classe e chiamare la funzione CallRemoteFunction specificando _ i parametri necessari. E' possibile usare la classe indicando di non attendere il risultato delle funzioni e poi recuperare il risultato stesso in modalità polling tramite le funzioni IsResultArrived e GetResult.

Version:
0.1 - Settembre 2004
Author:
Giorgio Bernardi.
E-Mail: Giorgio.Bernardi@studio.unibo.it

Constructor Summary
CDynamicStub(IDispatcher Dispatcher, java.lang.String RemoteMsgManagerAddress, java.lang.String RemoteSkeletonObjectID)
          Costruttore dello stub dinamico.
CDynamicStub(IDispatcher Dispatcher, java.lang.String RemoteMsgManagerAddress, java.lang.String RemoteSkeletonObjectID, java.lang.String StubID)
          Costruttore dello stub dinamico.
 
Method Summary
 java.lang.Object CallRemoteFunction(java.lang.String MethodName, boolean HoldOnForResult, java.util.Enumeration Arguments)
          Funzione da chiamare per contattare lo Skeleton remoto.
 IDispatcher getDispatcher()
          Identificativo dell'oggetto che si occuperà di indirizzare i messaggi ai destinatari
 java.lang.String getObjectID()
          Restituisce lo StubID utiler per inviare e ricevere messaggi
 java.lang.String getRemoteMsgManagerAddress()
          Indirizzo di ricezione del manager remoto
 java.lang.String getRemoteSkeletonID()
          Restituisce l'identificativo univoco all'interno della applicazione remota dello skeleton di destinazione
 CFunctionResult GetResult(java.lang.String ProcedureInstanceID)
          Restituisce il risultato della invocazione remota.
 java.lang.String getStubID()
          Restituisce l'identificativo univoco all'interno di questa applicazione dell'oggetto
 long getTimeOutMilliSeconds()
          Milli secondi dopo il quale scatterà il timeout se non giunge il risultato della chiamata a funzione
 CValue HoldResult(java.lang.String ProcedureInstanceID, long TimeOutMilliSeconds)
          Chiamare questa procedura se si desidera attendere il risultato della chiamata a funzione remota precedentemente effettuata.
 boolean IsResultArrived(java.lang.String ProcedureInstanceID)
          Verifica se è arrivato il risultato della richiesta
 void msgArrived(CEnvelope Env)
          Funzione di CallBack che notifica il ricevente dell'arrivo di un messaggio a lui indirizzato.
 void setDispatcher(IDispatcher dsptchr)
          Identificativo dell'oggetto che si occuperà di indirizzare i messaggi ai destinatari
 void setRemoteMsgManagerAddress(java.lang.String Value)
          Indirizzo di ricezione del manager remoto
 void setRemoteSkeletonID(java.lang.String Value)
          Restituisce l'identificativo univoco all'interno della applicazione remota dello skeleton di destinazione
 void setStubID(java.lang.String Value)
          Restituisce l'identificativo univoco all'interno di questa applicazione dell'oggetto
 void setTimeOutMilliSeconds(long Value)
          Milli secondi dopo il quale scatterà il timeout se non giunge il risultato della chiamata a funzione
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CDynamicStub

public CDynamicStub(IDispatcher Dispatcher,
                    java.lang.String RemoteMsgManagerAddress,
                    java.lang.String RemoteSkeletonObjectID)
Costruttore dello stub dinamico. E' necessario impostare i vari argomenti.


CDynamicStub

public CDynamicStub(IDispatcher Dispatcher,
                    java.lang.String RemoteMsgManagerAddress,
                    java.lang.String RemoteSkeletonObjectID,
                    java.lang.String StubID)
Costruttore dello stub dinamico. E' necessario impostare i vari argomenti.

Method Detail

getRemoteSkeletonID

public java.lang.String getRemoteSkeletonID()
Restituisce l'identificativo univoco all'interno della applicazione remota dello skeleton di destinazione


setRemoteSkeletonID

public void setRemoteSkeletonID(java.lang.String Value)
Restituisce l'identificativo univoco all'interno della applicazione remota dello skeleton di destinazione


getRemoteMsgManagerAddress

public java.lang.String getRemoteMsgManagerAddress()
Indirizzo di ricezione del manager remoto


setRemoteMsgManagerAddress

public void setRemoteMsgManagerAddress(java.lang.String Value)
Indirizzo di ricezione del manager remoto


getTimeOutMilliSeconds

public long getTimeOutMilliSeconds()
Milli secondi dopo il quale scatterà il timeout se non giunge il risultato della chiamata a funzione


setTimeOutMilliSeconds

public void setTimeOutMilliSeconds(long Value)
Milli secondi dopo il quale scatterà il timeout se non giunge il risultato della chiamata a funzione


getStubID

public java.lang.String getStubID()
Restituisce l'identificativo univoco all'interno di questa applicazione dell'oggetto


setStubID

public void setStubID(java.lang.String Value)
Restituisce l'identificativo univoco all'interno di questa applicazione dell'oggetto


IsResultArrived

public boolean IsResultArrived(java.lang.String ProcedureInstanceID)
Verifica se è arrivato il risultato della richiesta


GetResult

public CFunctionResult GetResult(java.lang.String ProcedureInstanceID)
Restituisce il risultato della invocazione remota. Restituisce null se il risultato non è ancora giunto. Se il risultato è giunto lo restituisce e lo rimuove dalla collezione dei risultati arrivati


getDispatcher

public IDispatcher getDispatcher()
Identificativo dell'oggetto che si occuperà di indirizzare i messaggi ai destinatari


setDispatcher

public void setDispatcher(IDispatcher dsptchr)
Identificativo dell'oggetto che si occuperà di indirizzare i messaggi ai destinatari


CallRemoteFunction

public java.lang.Object CallRemoteFunction(java.lang.String MethodName,
                                           boolean HoldOnForResult,
                                           java.util.Enumeration Arguments)
                                    throws CUnKnownSMomException,
                                           CUnKnownRemoteException,
                                           CRemoteException,
                                           CTimeOutExpiredException
Funzione da chiamare per contattare lo Skeleton remoto. Impostare tutti i parametri della funzione da chiamare in modo da fornire una Enumerativo (passare null oppure un enumerativo vuoto se la funzione ha 0 argomenti). E' necessario indicare se attendere o meno il risultato della computazione remota. Questo è importante sia nel caso in cui il metodo chiamato sia semplicemente una procedura senza ritorno, sia nel caso in cui non si desideri attendere il risultato ma semplicemente andarlo a pescare dopo eseguendo un polling sulla funzione IsResultAvailable. Nota: se non si desidera attendere il risultato, la funzione restituisce il nome univoco della richiesta di procedura remota necessario per eseguire successivamente il polling del risultato.

CUnKnownSMomException
CUnKnownRemoteException
CRemoteException
CTimeOutExpiredException

HoldResult

public CValue HoldResult(java.lang.String ProcedureInstanceID,
                         long TimeOutMilliSeconds)
                  throws CUnKnownRemoteException,
                         CRemoteException,
                         CTimeOutExpiredException
Chiamare questa procedura se si desidera attendere il risultato della chiamata a funzione remota precedentemente effettuata.

CUnKnownRemoteException
CRemoteException
CTimeOutExpiredException

getObjectID

public java.lang.String getObjectID()
Restituisce lo StubID utiler per inviare e ricevere messaggi

Specified by:
getObjectID in interface ISender

msgArrived

public void msgArrived(CEnvelope Env)
Description copied from interface: IReceiver
Funzione di CallBack che notifica il ricevente dell'arrivo di un messaggio a lui indirizzato.

Specified by:
msgArrived in interface IReceiver


Copyright © 2004 Giorgio Bernardi. All Rights Reserved.