{{template>:doctable | name=GroupAPI | version=0.1 | accountable=Marcos Roriz | depdency= [[ClientLib]] }} ====== GroupAPI ====== ClientLib provides group and publish-subscribe communication paradigms for mobile nodes (MNs). Continuar com uma breve visão geral dos serviços providos por esse componente. ===== Usage ===== A ClientLib implementa a interface ''public interface NodeConnection'', com os seguintes métodos: * ''public void connect(SocketAddress endpoint) throws IOException;'' estabelece conexão com um Gateway * ''public void disconnect() throws IOException;'' desfaz conexão com o Gateway * ''public int getNumberOfReconnectionsMade();'' informa o numero de reconexões feitas com o Gateway; * ''public void sendMessage(Message message) throws IOException;'' envia uma Application ''message'' para o Gateway; * ''public void addNodeConnectionListener(NodeConnectionListener lis);'' registra um listener para receber mensagens; * ''public void removeNodeConnectionListener(NodeConnectionListener lis);'' remove o listener; * ''public void addSddlListener(SddlNetworkListener lis);'' registra um listener para receber avisos sobre o status da conexão; * ''public void removeSddlListener(SddlNetworkListener lis);'' remove o listener de conectividade; * ''public long getCreationTimestamp();'' obtém informações sobre o momento do estabelecimento da conexão; === Application Message === A Application Message é a classe geral para transmitir um byte array ou um objeto serializado incluindo meta-dados. Os 'tags' são para classsificar a mensagem. Os atributos e principais métodos dessa classe são: public class ApplicationMessage implements Message { private static final long serialVersionUID = 1L; private byte[] content; private List tagList; private UUID senderID; private UUID senderGatewayID; private UUID recipientID; private UUID recipientGatewayID; private String contentClassName; private long gatewayLogicalTime; protected ClientLibProtocol.MSGType msgType; private Serializable contentObject; private PayloadSerialization payloadType;'' ===== Architecture ===== Descrever a arquitetura do componente. As principais classes e relações que sustentam o componente. * ''getService()'' Returns Service * ''myMethod()'' Returns Service ===== Implementation Details ===== Detalhes de implementação, por exemplo, descrevendo as principais rotinas e os seus fluxos de execução, por onde o desenvolvedor deveria olhar para modificar esse componente. ===== References ===== Bibtex/PDF entry dos papers sobre esse componente.