Files
IM-server-new/broker/src/main/java/io/moquette/interception/Interceptor.java
T

55 lines
2.0 KiB
Java
Raw Normal View History

2016-03-03 16:08:52 -08:00
/*
2017-01-04 14:37:29 +01:00
* Copyright (c) 2012-2017 The original author or authorsgetRockQuestions()
2016-03-03 16:08:52 -08:00
* ------------------------------------------------------
* 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.
*/
2017-02-01 15:10:40 +01:00
2016-03-03 16:08:52 -08:00
package io.moquette.interception;
import io.moquette.interception.messages.InterceptAcknowledgedMessage;
2016-03-03 16:08:52 -08:00
import io.moquette.spi.impl.subscriptions.Subscription;
import io.netty.handler.codec.mqtt.MqttConnectMessage;
import io.netty.handler.codec.mqtt.MqttPublishMessage;
2016-03-03 16:08:52 -08:00
/**
* This interface is to be used internally by the broker components.
* <p>
2017-02-01 15:10:40 +01:00
* An interface is used instead of a class to allow more flexibility in changing an implementation.
2016-03-03 16:08:52 -08:00
* <p>
2017-02-01 15:10:40 +01:00
* Interceptor implementations forward notifications to a <code>InterceptHandler</code>, that is
* normally a field. So, the implementations should act as a proxy to a custom intercept handler.
2016-03-03 16:08:52 -08:00
*
* @see InterceptHandler
* @author Wagner Macedo
*/
public interface Interceptor {
void notifyClientConnected(MqttConnectMessage msg);
2016-03-03 16:08:52 -08:00
void notifyClientDisconnected(String clientID, String username);
2016-03-03 16:08:52 -08:00
2016-10-21 10:28:36 +08:00
void notifyClientConnectionLost(String clientID, String username);
void notifyTopicPublished(MqttPublishMessage msg, String clientID, final String username);
2016-03-03 16:08:52 -08:00
void notifyTopicSubscribed(Subscription sub, final String username);
2016-03-03 16:08:52 -08:00
void notifyTopicUnsubscribed(String topic, String clientID, final String username);
2016-03-03 16:08:52 -08:00
void notifyMessageAcknowledged(InterceptAcknowledgedMessage msg);
void addInterceptHandler(InterceptHandler interceptHandler);
void removeInterceptHandler(InterceptHandler interceptHandler);
2016-03-03 16:08:52 -08:00
}