/***********************************************************************************
*
* Copyright (c) 2014 Kamil Baczkowicz
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Eclipse Distribution License v1.0 which accompany this distribution.
*
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* The Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
*
* Kamil Baczkowicz - initial API and implementation and/or initial documentation
*
*/
package pl.baczkowicz.mqttspy.scripts;
import java.util.List;
import pl.baczkowicz.mqttspy.messages.FormattedMqttMessage;
import pl.baczkowicz.spy.scripts.IScriptIO;
/**
* Interface between a script and the mqttspy object, primarily used for publishing messages.
*/
public interface IMqttScriptIO extends IScriptIO
{
boolean subscribe(final String topic, final int qos);
boolean unsubscribe(final String topic);
/**
* Publishes a message with the given payload to the given topic (qos = 0; retained = false).
*
* @param publicationTopic The publication topic
* @param payload The payload of the message
*/
void publish(final String publicationTopic, final String payload);
/**
* Publishes a message with the given payload, qos and retained flag to the given topic.
*
* @param publicationTopic The publication topic
* @param payload The payload of the message
* @param qos The quality of service to be used
* @param retained The retained flag
*/
void publish(final String publicationTopic, final String payload, final int qos, final boolean retained);
/**
* Publishes a message with the given payload, qos and retained flag to the given topic.
*
* @param publicationTopic The publication topic
* @param payload The payload of the message
* @param qos The quality of service to be used
* @param retained The retained flag
*/
void publish(final String publicationTopic, final byte[] payload, final int qos, final boolean retained);
List<FormattedMqttMessage> getMessages(String subscriptionTopic);
}