CLocalManager

Manager utilizzabile all'interno di una singola applicazione per inviare messaggi ad oggetti locali.

Autore: Giorgio Bernardi
E-Mail: Giorgio.Bernardi@studio.unibo.it
Data : Settembre 2004

Questo semplice MsgManager suppone che tutti i messaggi da inviare vengano spediti a un Manager locale (anche il manager stesso).
Se il messaggio è indirizzato allo stesso Manager, notifica il Dispatcher collegato che provvederà ad inoltrare i messaggi agli oggetti locali destinatari; se, al contrario, il destinatario è un altro manager locale, esegue una Send dello stesso messaggio al destinatario.

Codice
Field Summary
Private(String) mAddress
Variabile contenente il valore della proprietà omonima dell'oggetto
Private(IDispatcher) mDispatcher
Variabile contenente il valore della proprietà omonima dell'oggetto
Private(CVector) mManagers
Variabile contenente il valore della proprietà omonima dell'oggetto
 
Properties Summary
Get Public(IDispatcher)
Set Public(IDispatcher)
Property Get Dispatcher()
Property Set Dispatcher( dsptchr As IDispatcher)

Codice
Identificativo dell'oggetto che si occuperà di indirizzare i messaggi ai destinatari
Get Private(IDispatcher)
Set Private(IDispatcher)
Property Get IMsgManager_Dispatcher()
Property Set IMsgManager_Dispatcher( RHS As IDispatcher)

Codice
 
Method Summary
Private Class_Initialize()
Codice
Public(String) getAddress()
Codice
Indirizzo logico del manager. Identifica il manager specificandolo in maniera univoca
Public(Long) getKnownManagerNumber()
Codice
Indica il numero di manager conosciuti.
Private(String) IMsgManager_getAddress()
Codice
Private(Boolean) IMsgManager_Send( Env As CEnvelope, MngAddress As String)
Codice
Public(Long) IsRegistered( OtherManager As CLocalManager)
Codice
Consente di sapere se un Manager è registrato. Restituisce 0 se il manager non è registrato, un numero maggiore di 0 in caso contrario
Public(Boolean) Register( OtherManager As CLocalManager)
Codice
Funzione che permette di registrare un ulteriore Manager locale per la notifica di messaggi.
Public(Boolean) Send( Env As CEnvelope, MngAddress As String)
Codice
Restituisce False se il manager non è nell'elenco dei manager registrati.
Public(Boolean) UnRegister( OtherManager As CLocalManager)
Codice
Funzione che permette ad un possibile destinatario di messaggi, precedentemente registratosi, di deregistrarsi presso il dispatcher
 
Details

mAddress

Private mAddress        As String

Codice
Variabile contenente il valore della proprietà omonima dell'oggetto

mDispatcher

Private mDispatcher     As IDispatcher

Codice
Variabile contenente il valore della proprietà omonima dell'oggetto

mManagers

Private mManagers       As CVector

Codice
Variabile contenente il valore della proprietà omonima dell'oggetto

Dispatcher

Public Property Get Dispatcher() As IDispatcher

Codice
Identificativo dell'oggetto che si occuperà di indirizzare i messaggi ai destinatari

Dispatcher

Public Property Set Dispatcher(dsptchr As IDispatcher)

Codice
Identificativo dell'oggetto che si occuperà di indirizzare i messaggi ai destinatari

IMsgManager_Dispatcher

Private Property Get IMsgManager_Dispatcher() As IDispatcher

Codice

IMsgManager_Dispatcher

Private Property Set IMsgManager_Dispatcher(RHS As IDispatcher)

Codice

Class_Initialize

Private Sub Class_Initialize()

Codice

getAddress

Public Function getAddress() As String

Codice
Indirizzo logico del manager. Identifica il manager specificandolo in maniera univoca
L'indirizzo viene generato automaticamente alla creazione dell'oggetto.

getKnownManagerNumber

Public Function getKnownManagerNumber() As Long

Codice
Indica il numero di manager conosciuti.

IMsgManager_getAddress

Private Function IMsgManager_getAddress() As String

Codice

IMsgManager_Send

Private Function IMsgManager_Send(Env As CEnvelope, MngAddress As String) As Boolean

Codice

IsRegistered

Public Function IsRegistered(OtherManager As CLocalManager) As Long

Codice
Consente di sapere se un Manager è registrato. Restituisce 0 se il manager non è registrato, un numero maggiore di 0 in caso contrario

Register

Public Function Register(OtherManager As CLocalManager) As Boolean

Codice
Funzione che permette di registrare un ulteriore Manager locale per la notifica di messaggi.
Se il manager è già registrato non verrà aggiunto ma la funzione restituirà comunque True.

Send

Public Function Send(Env As CEnvelope, MngAddress As String) As Boolean

Codice
Restituisce False se il manager non è nell'elenco dei manager registrati.
Se il manager destinazione è vuoto o è l'oggetto stesso, restituisce False se il Dispatcher non è stato specificato.

UnRegister

Public Function UnRegister(OtherManager As CLocalManager) As Boolean

Codice
Funzione che permette ad un possibile destinatario di messaggi, precedentemente registratosi, di deregistrarsi presso il dispatcher
Se il manager non risulta registrato la funzione restituirà comunque True.