package com.sonycsl.Kadecot.wamp.echonetlite;
import com.sonycsl.Kadecot.wamp.KadecotWampTopic;
import com.sonycsl.Kadecot.wamp.provider.KadecotProviderClient;
import com.sonycsl.wamp.message.WampMessage;
import com.sonycsl.wamp.role.WampSubscriber;
import org.json.JSONException;
public class ECHONETLiteWampSubscriber extends WampSubscriber {
public interface OnTopicListener {
public void onTopicStarted(String topic);
public void onTopicStopped(String topic);
}
private final ECHONETLiteManager mManager;
private final OnTopicListener mListener;
public ECHONETLiteWampSubscriber(ECHONETLiteManager manager, OnTopicListener listener) {
mManager = manager;
mListener = listener;
}
@Override
protected void onEvent(String topic, WampMessage msg) {
if (topic.equals(KadecotWampTopic.TOPIC_PRIVATE_SEARCH)) {
mManager.refreshDeviceList();
}
if (topic.equals(KadecotProviderClient.Topic.START.getUri())) {
if (mListener != null) {
try {
mListener.onTopicStarted(msg.asEventMessage().getArgumentsKw()
.getString("topic"));
} catch (JSONException e) {
e.printStackTrace();
}
}
}
if (topic.equals(KadecotProviderClient.Topic.STOP.getUri())) {
if (mListener != null) {
try {
mListener.onTopicStopped(msg.asEventMessage().getArgumentsKw()
.getString("topic"));
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
}