2015-07-24 01:15:09 -03:00
|
|
|
/*
|
2015-08-08 19:36:14 +02:00
|
|
|
* Copyright (c) 2012-2015 The original author or authors
|
2015-07-24 01:15:09 -03: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.
|
|
|
|
|
*/
|
2015-11-20 20:54:27 +01:00
|
|
|
package io.moquette.interception;
|
2015-07-24 01:15:09 -03:00
|
|
|
|
2016-02-03 23:20:15 +01:00
|
|
|
import io.moquette.parser.proto.messages.ConnectMessage;
|
|
|
|
|
import io.moquette.parser.proto.messages.PublishMessage;
|
2015-11-20 20:54:27 +01:00
|
|
|
import io.moquette.spi.impl.subscriptions.Subscription;
|
2015-07-24 01:15:09 -03:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This interface is to be used internally by the broker components.
|
|
|
|
|
* <p>
|
|
|
|
|
* An interface is used instead of a class to allow more flexibility in changing
|
2015-08-08 18:37:32 +02:00
|
|
|
* an implementation.
|
2015-07-24 01:15:09 -03:00
|
|
|
* <p>
|
|
|
|
|
* 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.
|
|
|
|
|
*
|
|
|
|
|
* @see InterceptHandler
|
|
|
|
|
* @author Wagner Macedo
|
|
|
|
|
*/
|
|
|
|
|
public interface Interceptor {
|
|
|
|
|
|
|
|
|
|
void notifyClientConnected(ConnectMessage msg);
|
|
|
|
|
|
|
|
|
|
void notifyClientDisconnected(String clientID);
|
|
|
|
|
|
2015-08-17 17:41:29 -03:00
|
|
|
void notifyTopicPublished(PublishMessage msg, String clientID);
|
2015-07-24 01:15:09 -03:00
|
|
|
|
|
|
|
|
void notifyTopicSubscribed(Subscription sub);
|
|
|
|
|
|
2015-08-17 17:41:29 -03:00
|
|
|
void notifyTopicUnsubscribed(String topic, String clientID);
|
2015-07-24 01:15:09 -03:00
|
|
|
|
|
|
|
|
}
|