wildfire chat server source initial submit
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Copyright (c) 2012-2017 The original author or authors
|
||||
* ------------------------------------------------------
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* and Apache License v2.0 which accompanies this distribution.
|
||||
*
|
||||
* The Eclipse Public License is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* The Apache License v2.0 is available at
|
||||
* http://www.opensource.org/licenses/apache2.0.php
|
||||
*
|
||||
* You may elect to redistribute this code under either of these licenses.
|
||||
*/
|
||||
|
||||
package io.moquette.connections;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* This interface will be used by an external codebase to retrieve and close physical connections.
|
||||
*/
|
||||
public interface IConnectionsManager {
|
||||
|
||||
/**
|
||||
* Returns the number of physical connections
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
int getActiveConnectionsNo();
|
||||
|
||||
/**
|
||||
* Determines wether a MQTT client is connected to the broker.
|
||||
*
|
||||
* @param clientID
|
||||
* @return
|
||||
*/
|
||||
boolean isConnected(String clientID);
|
||||
|
||||
/**
|
||||
* Returns the identifiers of the MQTT clients that are connected to the broker.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Collection<String> getConnectedClientIds();
|
||||
|
||||
/**
|
||||
* Closes a physical connection.
|
||||
*
|
||||
* @param clientID
|
||||
* @param closeImmediately
|
||||
* If false, the connection will be flushed before it is closed.
|
||||
* @return
|
||||
*/
|
||||
boolean closeConnection(String clientID, boolean closeImmediately);
|
||||
|
||||
/**
|
||||
* Returns the state of the session of a given client.
|
||||
*
|
||||
* @param clientID
|
||||
* @return
|
||||
*/
|
||||
MqttSession getSessionStatus(String clientID);
|
||||
|
||||
/**
|
||||
* Returns the state of all the sessions
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Collection<MqttSession> getSessions();
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright (c) 2012-2017 The original author or authors
|
||||
* ------------------------------------------------------
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* and Apache License v2.0 which accompanies this distribution.
|
||||
*
|
||||
* The Eclipse Public License is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* The Apache License v2.0 is available at
|
||||
* http://www.opensource.org/licenses/apache2.0.php
|
||||
*
|
||||
* You may elect to redistribute this code under either of these licenses.
|
||||
*/
|
||||
|
||||
package io.moquette.connections;
|
||||
|
||||
/**
|
||||
* A class that represents the metrics of a given MQTT connection.
|
||||
*/
|
||||
public class MqttConnectionMetrics {
|
||||
|
||||
private long readKb;
|
||||
private long writtenKb;
|
||||
private long readMessages;
|
||||
private long writtenMessages;
|
||||
|
||||
public MqttConnectionMetrics(long readBytes, long writtenBytes, long readMessages, long writtenMessages) {
|
||||
this.readKb = readBytes / 1024;
|
||||
this.writtenKb = writtenBytes / 1024;
|
||||
this.readMessages = readMessages;
|
||||
this.writtenMessages = writtenMessages;
|
||||
}
|
||||
|
||||
public long getReadKb() {
|
||||
return readKb;
|
||||
}
|
||||
|
||||
public long getWrittenKb() {
|
||||
return writtenKb;
|
||||
}
|
||||
|
||||
public long getReadMessages() {
|
||||
return readMessages;
|
||||
}
|
||||
|
||||
public long getWrittenMessages() {
|
||||
return writtenMessages;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
/*
|
||||
* Copyright (c) 2012-2017 The original author or authors
|
||||
* ------------------------------------------------------
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* and Apache License v2.0 which accompanies this distribution.
|
||||
*
|
||||
* The Eclipse Public License is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* The Apache License v2.0 is available at
|
||||
* http://www.opensource.org/licenses/apache2.0.php
|
||||
*
|
||||
* You may elect to redistribute this code under either of these licenses.
|
||||
*/
|
||||
|
||||
package io.moquette.connections;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* A class that represents the overall connection status of a MQTT session. Its instances will be
|
||||
* used by an external codebase when the broker is configured in embedded mode.
|
||||
*/
|
||||
public class MqttSession {
|
||||
|
||||
private boolean connectionEstablished;
|
||||
private boolean cleanSession;
|
||||
private int inflightMessages;
|
||||
private int pendingPublishMessagesNo;
|
||||
private int secondPhaseAckPendingMessages;
|
||||
private MqttConnectionMetrics connectionMetrics;
|
||||
|
||||
public boolean isConnectionEstablished() {
|
||||
return connectionEstablished;
|
||||
}
|
||||
|
||||
public void setConnectionEstablished(boolean connectionEstablished) {
|
||||
this.connectionEstablished = connectionEstablished;
|
||||
}
|
||||
|
||||
public boolean isCleanSession() {
|
||||
return cleanSession;
|
||||
}
|
||||
|
||||
public void setCleanSession(boolean cleanSession) {
|
||||
this.cleanSession = cleanSession;
|
||||
}
|
||||
|
||||
public int getPendingPublishMessagesNo() {
|
||||
return pendingPublishMessagesNo;
|
||||
}
|
||||
|
||||
public void setPendingPublishMessagesNo(int pendingPublishMessagesNo) {
|
||||
this.pendingPublishMessagesNo = pendingPublishMessagesNo;
|
||||
}
|
||||
|
||||
public int getInflightMessages() {
|
||||
return inflightMessages;
|
||||
}
|
||||
|
||||
public void setInflightMessages(int inflightMessages) {
|
||||
this.inflightMessages = inflightMessages;
|
||||
}
|
||||
|
||||
public int getSecondPhaseAckPendingMessages() {
|
||||
return secondPhaseAckPendingMessages;
|
||||
}
|
||||
|
||||
public void setSecondPhaseAckPendingMessages(int secondPhaseAckPendingMessages) {
|
||||
this.secondPhaseAckPendingMessages = secondPhaseAckPendingMessages;
|
||||
}
|
||||
|
||||
public MqttConnectionMetrics getConnectionMetrics() {
|
||||
return connectionMetrics;
|
||||
}
|
||||
|
||||
public void setConnectionMetrics(MqttConnectionMetrics connectionMetrics) {
|
||||
this.connectionMetrics = connectionMetrics;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user