Live Sequence Protocol for Java
Implementation of LSP in Java language
 Todos Classes Namespaces Arquivos Funções Variáveis
Componentes | Funções do Pacote | Funções Estáticas do Pacote | Lista de todos os Membros
Referência da Classe lsp.LspConnection

Representa uma conexão LSP. Mais...

Funções do Pacote

 LspConnection (short id, long sockId, SocketAddress sockAddr, LspParams params, ConnectionTriggers triggers)
 Constrói um objeto LspConnection. Mais...
 
 LspConnection (short id, SocketAddress sockAddr, LspParams params, ConnectionTriggers triggers)
 Constrói um objeto LspConnection. Mais...
 
short getId ()
 
long getSockId ()
 Número único gerado a partir de um endereço IP e uma porta. Mais...
 
SocketAddress getSockAddr ()
 
void incSendMissing ()
 Aumenta em um o número de mensagens na fila, mas faltam enviar. Mais...
 
int getSendMissing ()
 Número de mensagens na fila, mas faltam enviar. Mais...
 
InternalPack sent ()
 Obtém a última mensagem de dados enviada (aguardando ACK) Mais...
 
InternalPack sent (Pack pack)
 Informa o payload da última mensagem enviada. Mais...
 
void ack (short seqNum)
 Informa que o ACK do número de sequência informado foi recebido. Mais...
 
short receivedSeqNum ()
 Número de sequência da última mensagem DATA recebida por essa conexão. Mais...
 
void received ()
 Informa que houve uma mensagem recebida por essa conexão. Mais...
 
void received (short seqNum)
 Informa o número de sequência em que uma mensagem DATA foi recebida. Mais...
 
boolean isInterrupted ()
 
boolean isClosed ()
 
void close ()
 
void close (boolean interrupt)
 

Funções Estáticas do Pacote

static long uniqueSockId (SocketAddress sockAddr)
 Número único gerado a partir de um endereço IP e uma porta. Mais...
 

Descrição Detalhada

Representa uma conexão LSP.

Autor
Wagner Macedo

Definição na linha 12 do arquivo LspConnection.java.

Construtores & Destrutores

lsp.LspConnection.LspConnection ( short  id,
long  sockId,
SocketAddress  sockAddr,
LspParams  params,
ConnectionTriggers  triggers 
)
package

Constrói um objeto LspConnection.

Parâmetros
idIdentificador da conexão
sockIdNúmero IP e porta associados à conexão
sockAddrIP e porta vinculados à essa conexão
paramsParâmetros de temporização da conexão

Definição na linha 41 do arquivo LspConnection.java.

41  {
42  if (sockAddr == null || params == null)
43  throw new NullPointerException("Nenhum parâmetro pode ser nulo");
44 
45  this.id = id;
46  this.sockId = sockId;
47  this.sockAddr = sockAddr;
48  this.triggers = triggers;
49  this.closed = false;
50  this.seqNum = 0;
51  this.receivedTime = -1;
52  this.receivedSeqNum = -1;
53  this.sendMissing = new AtomicInteger(0);
54 
55  this.statusThread = new Thread(new StatusChecker(params));
56  this.statusThread.setDaemon(true);
57  this.statusThread.start();
58  }
lsp.LspConnection.LspConnection ( short  id,
SocketAddress  sockAddr,
LspParams  params,
ConnectionTriggers  triggers 
)
package

Constrói um objeto LspConnection.

Parâmetros
idIdentificador da conexão
sockAddrIP e porta vinculados à essa conexão
paramsParâmetros de temporização da conexão

Definição na linha 70 do arquivo LspConnection.java.

70  {
71  this(id, uniqueSockId(sockAddr), sockAddr, params, triggers);
72  }
static long uniqueSockId(SocketAddress sockAddr)
Número único gerado a partir de um endereço IP e uma porta.

Este é o diagrama das funções utilizadas por esta função:

Métodos

void lsp.LspConnection.ack ( short  seqNum)
package

Informa que o ACK do número de sequência informado foi recebido.

Definição na linha 143 do arquivo LspConnection.java.

143  {
144  // Atualiza o momento de recebimento
145  received();
146 
147  synchronized (lock) {
148  // Marca dados como recebidos, se o número de sequência é igual ao atual
149  if (this.seqNum == seqNum) {
150  this.sentMessage = null;
151  }
152 
153  // Diminuição da quantidade de mensagens faltando entregar.
154  this.sendMissing.decrementAndGet();
155  }
156  }
void received()
Informa que houve uma mensagem recebida por essa conexão.

Este é o diagrama das funções utilizadas por esta função:

void lsp.LspConnection.close ( )
package

Definição na linha 195 do arquivo LspConnection.java.

195  {
196  close(true);
197  }
void lsp.LspConnection.close ( boolean  interrupt)
package

Definição na linha 199 do arquivo LspConnection.java.

199  {
200  if (interrupt) {
201  this.statusThread.interrupt();
202  this.closed = true;
203  } else {
204  this.markClosed = true;
205  }
206  }
short lsp.LspConnection.getId ( )
package

Definição na linha 74 do arquivo LspConnection.java.

74  {
75  return this.id;
76  }

Este é o diagrama das funções que utilizam esta função:

int lsp.LspConnection.getSendMissing ( )
package

Número de mensagens na fila, mas faltam enviar.

Valor controlado externamente.

Definição na linha 115 do arquivo LspConnection.java.

115  {
116  return this.sendMissing.intValue();
117  }

Este é o diagrama das funções que utilizam esta função:

SocketAddress lsp.LspConnection.getSockAddr ( )
package

Definição na linha 99 do arquivo LspConnection.java.

99  {
100  return this.sockAddr;
101  }
long lsp.LspConnection.getSockId ( )
package

Número único gerado a partir de um endereço IP e uma porta.

Esse atributo só é usado pelo servidor

Definição na linha 95 do arquivo LspConnection.java.

95  {
96  return this.sockId;
97  }
void lsp.LspConnection.incSendMissing ( )
package

Aumenta em um o número de mensagens na fila, mas faltam enviar.

Isso é controlado externamente.

Definição na linha 107 do arquivo LspConnection.java.

107  {
108  this.sendMissing.incrementAndGet();
109  }
boolean lsp.LspConnection.isClosed ( )
package

Definição na linha 191 do arquivo LspConnection.java.

191  {
192  return this.closed || this.markClosed;
193  }

Este é o diagrama das funções que utilizam esta função:

boolean lsp.LspConnection.isInterrupted ( )
package

Definição na linha 187 do arquivo LspConnection.java.

187  {
188  return this.closed;
189  }

Este é o diagrama das funções que utilizam esta função:

void lsp.LspConnection.received ( )
package

Informa que houve uma mensagem recebida por essa conexão.

Esse método tem como único propósito a atualização do momento de recebimento.

Definição na linha 172 do arquivo LspConnection.java.

172  {
173  this.receivedTime = System.currentTimeMillis();
174  }

Este é o diagrama das funções que utilizam esta função:

void lsp.LspConnection.received ( short  seqNum)
package

Informa o número de sequência em que uma mensagem DATA foi recebida.

Esse método atualiza o último momento de recebimento

Definição na linha 180 do arquivo LspConnection.java.

180  {
181  // Atualiza o momento de recebimento
182  received();
183  // Altera o número de sequência atual
184  this.receivedSeqNum = seqNum;
185  }
void received()
Informa que houve uma mensagem recebida por essa conexão.

Este é o diagrama das funções utilizadas por esta função:

short lsp.LspConnection.receivedSeqNum ( )
package

Número de sequência da última mensagem DATA recebida por essa conexão.

Esse número é gerenciado externamente através do método received(short). Se receber -1, quer dizer que não chegou nenhuma mensagem depois do pedido de conexão.

Definição na linha 164 do arquivo LspConnection.java.

164  {
165  return receivedSeqNum;
166  }
short receivedSeqNum()
Número de sequência da última mensagem DATA recebida por essa conexão.
InternalPack lsp.LspConnection.sent ( )
package

Obtém a última mensagem de dados enviada (aguardando ACK)

Definição na linha 120 do arquivo LspConnection.java.

120  {
121  return this.sentMessage;
122  }
InternalPack lsp.LspConnection.sent ( Pack  pack)
package

Informa o payload da última mensagem enviada.

Retorna
Pacote com um novo número de sequência ou null se já há um pacote aguardando ACK

Definição na linha 130 do arquivo LspConnection.java.

130  {
131  synchronized (lock) {
132  InternalPack p = new InternalPack(this, ++seqNum, pack.getPayload());
133  if (this.sentMessage == null) {
134  this.sentMessage = p;
135  return p;
136  }
137  }
138 
139  return null;
140  }

Este é o diagrama das funções utilizadas por esta função:

static long lsp.LspConnection.uniqueSockId ( SocketAddress  sockAddr)
staticpackage

Número único gerado a partir de um endereço IP e uma porta.

Esse método só é usado pelo servidor

Definição na linha 83 do arquivo LspConnection.java.

83  {
84  final InetSocketAddress addr = (InetSocketAddress) sockAddr;
85  final int ip = addr.getAddress().hashCode();
86  final int port = addr.getPort();
87  return (ip & 0xffff_ffffL) << 16 | (short) port;
88  }

Este é o diagrama das funções que utilizam esta função:


A documentação para esta classe foi gerada a partir do seguinte arquivo: