Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 package org.ros.android.view.visualization.layer;
00018
00019 import com.google.common.base.Preconditions;
00020
00021 import android.os.Handler;
00022 import org.ros.android.view.visualization.Camera;
00023 import org.ros.android.view.visualization.VisualizationView;
00024 import org.ros.namespace.GraphName;
00025 import org.ros.node.ConnectedNode;
00026 import org.ros.node.Node;
00027 import org.ros.node.topic.Subscriber;
00028 import org.ros.rosjava_geometry.FrameTransformTree;
00029
00033 public class SubscriberLayer<T> extends DefaultLayer {
00034
00035 private final GraphName topicName;
00036 private final String messageType;
00037
00038 private Subscriber<T> subscriber;
00039
00040 public SubscriberLayer(GraphName topicName, String messageType) {
00041 this.topicName = topicName;
00042 this.messageType = messageType;
00043 }
00044
00045 @Override
00046 public void onStart(ConnectedNode connectedNode, Handler handler,
00047 FrameTransformTree frameTransformTree, Camera camera) {
00048 super.onStart(connectedNode, handler, frameTransformTree, camera);
00049 subscriber = connectedNode.newSubscriber(topicName, messageType);
00050 }
00051
00052 @Override
00053 public void onShutdown(VisualizationView view, Node node) {
00054 subscriber.shutdown();
00055 super.onShutdown(view, node);
00056 }
00057
00058 public Subscriber<T> getSubscriber() {
00059 Preconditions.checkNotNull(subscriber);
00060 return subscriber;
00061 }
00062 }