|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface OpenBusContext
Permite controlar o contexto das chamadas de um ORB
para acessar
informações que identificam essas chamadas em barramentos OpenBus.
O contexto de uma chamada pode ser definido pela linha de execução atual do
programa em que executa uma chamada, o que pode ser a thread em execução ou
mais comumente o Current
do padrão CORBA. As informações acessíveis
através do OpenBusContext
se referem basicamente à identificação da
origem das chamadas, ou seja, nome das entidades que autenticaram os acessos
ao barramento que originaram as chamadas.
A identifcação de chamadas no barramento é controlada através do OpenBusContext através da manipulação de duas abstrações representadas pelas seguintes interfaces:
Connection
: Representa um acesso ao barramento, que é usado tanto
para fazer chamadas como para receber chamadas através do barramento. Para
tanto a conexão precisa estar autenticada, ou seja, logada. Cada chamada
feita através do ORB é enviada com as informações do login da conexão
associada ao contexto em que a chamada foi realizada. Cada chamada recebida
também deve vir através de uma conexão logada, que deve ser o mesmo login com
que chamadas aninhadas a essa chamada original devem ser feitas.
CallChain
: Representa a identicação de todos os acessos ao
barramento que originaram uma chamada recebida. Sempre que uma chamada é
recebida e executada, é possível obter um CallChain através do qual é
possível inspecionar as informações de acesso que originaram a chamada
recebida.
Method Summary | |
---|---|
Connection |
createConnection(String host,
int port)
Cria uma conexão para um barramento. |
Connection |
createConnection(String host,
int port,
Properties props)
Cria uma conexão para um barramento. |
CallerChain |
decodeChain(byte[] encoded)
Decodifica um stream de bytes de uma cadeia para o formato CallerChain . |
byte[] |
encodeChain(CallerChain chain)
Codifica uma cadeia de chamadas ( CallerChain ) para um stream de
bytes. |
void |
exitChain()
Faz com que nenhuma cadeia de chamadas esteja associada ao contexto corrente. |
CallerChain |
getCallerChain()
Devolve a cadeia de chamadas à qual a execução corrente pertence. |
Connection |
getCurrentConnection()
Devolve a conexão associada ao contexto corrente. |
Connection |
getDefaultConnection()
Devolve a conexão padrão. |
CallerChain |
getJoinedChain()
Devolve a cadeia de chamadas associada ao contexto corrente. |
LoginRegistry |
getLoginRegistry()
Referência ao serviço núcleo de registro de logins do barramento referenciado no contexto atual. |
OfferRegistry |
getOfferRegistry()
Referência ao serviço núcleo de registro de ofertas do barramento referenciado no contexto atual. |
void |
joinChain()
Associa a cadeia de chamadas obtida em getCallerChain() ao
contexto corrente. |
void |
joinChain(CallerChain chain)
Associa uma cadeia de chamadas ao contexto corrente. |
CallerChain |
makeChainFor(String loginId)
Cria uma cadeia de chamadas para a entidade com o identificador de login especificado. |
CallDispatchCallback |
onCallDispatch()
Recupera a callback a ser chamada sempre que a conexão receber uma do barramento. |
void |
onCallDispatch(CallDispatchCallback callback)
Callback a ser chamada para determinar a conexão a ser utilizada para receber cada chamada. |
ORB |
orb()
Recupera o ORB associado ao ConnectionManager. |
Connection |
setCurrentConnection(Connection conn)
Define a conexão associada ao contexto corrente. |
Connection |
setDefaultConnection(Connection conn)
Define a conexão padrão a ser usada nas chamadas. |
Method Detail |
---|
ORB orb()
void onCallDispatch(CallDispatchCallback callback)
Esse atributo é utilizado para definir um objeto que implementa uma
interface de callback a ser chamada sempre que a conexão receber uma do
barramento. Essa callback deve devolver a conexão a ser utilizada para para
receber a chamada. A conexão utilizada para receber a chamada será a única
conexão através do qual novas chamadas aninhadas à chamada recebida poderão
ser feitas (veja a operação joinChain(tecgraf.openbus.CallerChain)
).
Se o objeto de callback for definido como null
ou devolver
null
, a conexão padrão é utilizada para receber achamada, caso
esta esteja definida.
Caso esse atributo seja null
, nenhum objeto de callback é
chamado na ocorrência desse evento e ???
callback
- Objeto que implementa a interface de callback a ser chamada
ou null
caso nenhum objeto deva ser chamado na
ocorrência desse evento.CallDispatchCallback onCallDispatch()
null
caso ela não exista.Connection createConnection(String host, int port)
host
- Endereço ou nome de rede onde os serviços núcleo do barramento
estão executando.port
- Porta onde os serviços núcleo do barramento estão executando.
Connection createConnection(String host, int port, Properties props) throws InvalidPropertyValue
host
- Endereço ou nome de rede onde os serviços núcleo do barramento
estão executando.port
- Porta onde os serviços núcleo do barramento estão executando.props
- Lista opcional de propriedades que definem algumas
configurações sobre a forma que as chamadas realizadas ou validadas
com essa conexão são feitas. A seguir são listadas as propriedades
válidas:
true
ou false
.
InvalidPropertyValue
- O valor de uma propriedade não é válido.Connection setDefaultConnection(Connection conn)
Define uma conexão a ser utilizada em chamadas sempre que não houver uma
conexão específica definida no contexto atual, como é feito através da
operação setRequester
. Quando conn
é null
nenhuma conexão
fica definida como a conexão padrão.
conn
- Conexão a ser definida como conexão padrão.
null
se não havia conexão padrão definida
anteriormente.Connection getDefaultConnection()
Veja operação setDefaultConnection
.
Connection setCurrentConnection(Connection conn)
Define a conexão a ser utilizada em todas as chamadas feitas no contexto
atual. Quando conn
é null
o contexto passa a
ficar sem nenhuma conexão associada.
conn
- Conexão a ser associada ao contexto corrente.
Connection getCurrentConnection()
Devolve a conexão associada ao contexto corrente, que pode ter sido
definida usando a operação setCurrentConnection(tecgraf.openbus.Connection)
ou
setDefaultConnection(tecgraf.openbus.Connection)
.
null
caso
não haja nenhuma conexão associada.CallerChain getCallerChain()
Caso a contexto corrente (e.g. definido pelo Current
) seja o
contexto de execução de uma chamada remota oriunda do barramento dessa
conexão, essa operação devolve um objeto que representa a cadeia de
chamadas do barramento que esta chamada faz parte. Caso contrário, devolve
null
.
void joinChain(CallerChain chain)
Associa uma cadeia de chamadas ao contexto corrente (e.g. definido pelo
Current
), de forma que todas as chamadas remotas seguintes neste
mesmo contexto sejam feitas como parte dessa cadeia de chamadas.
chain
- Cadeia de chamadas a ser associada ao contexto corrente.void joinChain()
getCallerChain()
ao
contexto corrente.
Associa a cadeia de chamadas obtida em getCallerChain()
ao
contexto corrente (e.g. definido pelo Current
), de forma que todas
as chamadas remotas seguintes neste mesmo contexto sejam feitas como parte
dessa cadeia de chamadas.
void exitChain()
Remove a associação da cadeia de chamadas ao contexto corrente (e.g.
definido pelo Current
), fazendo com que todas as chamadas seguintes
feitas neste mesmo contexto deixem de fazer parte da cadeia de chamadas
associada previamente. Ou seja, todas as chamadas passam a iniciar novas
cadeias de chamada.
CallerChain getJoinedChain()
Devolve um objeto que representa a cadeia de chamadas associada ao contexto
corrente (e.g. definido pelo Current
) nesta conexão. A cadeia de
chamadas informada foi associada previamente pela operação
joinChain
. Caso o contexto corrente não
tenha nenhuma cadeia associada, essa operação devolve null
.
null
.CallerChain makeChainFor(String loginId) throws InvalidLogins, ServiceFailure
Cria uma nova cadeia de chamadas para a entidade especificada, onde o dono
da cadeia é a conexão corrente (getCurrentConnection()
) e
utiliza-se a cadeia atual (getJoinedChain()
) como a cadeia que se
deseja dar seguimento ao encadeamento. O identificador de login
especificado deve ser um login atualmente válido para que a operação tenha
sucesso.
loginId
- identificador de login da entidade para a qual deseja-se
enviar a cadeia.
InvalidLogins
- Caso o login especificado seja inválido.
ServiceFailure
- Ocorreu uma falha interna nos serviços do barramento
que impediu a criação da cadeia.byte[] encodeChain(CallerChain chain)
CallerChain
) para um stream de
bytes.
Codifica uma cadeia de chamadas em um stream de bytes para permitir a
persistência ou transferência da informação. A codificação é realizada em
CDR e possui um identificador de versão concatenado com as informações da
cadeia (CredentialContextId
+ ExportedCallChain
). Sendo
assim, a stream só será decodificada com sucesso por alguém que entenda
esta mesma codificação.
chain
- a cadeia a ser codificada.
CallerChain decodeChain(byte[] encoded) throws InvalidChainStream
CallerChain
.
Decodifica um stream de bytes de uma cadeia para o formato
CallerChain
. Espera-se que a stream de bytes esteja codificada em
CDR e seja formada por um identificador de versão concatenado com as
informações da cadeia (CredentialContextId
+
ExportedCallChain
).
encoded
- o stream de bytes que representam a cadeia
CallerChain
.
InvalidChainStream
- Caso a stream de bytes não seja do formato
esperado.LoginRegistry getLoginRegistry()
OfferRegistry getOfferRegistry()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |