Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef ROSCPP_FORWARDS_H
00029 #define ROSCPP_FORWARDS_H
00030
00031 #include <string>
00032 #include <vector>
00033 #include <map>
00034 #include <set>
00035 #include <list>
00036
00037 #include <boost/shared_ptr.hpp>
00038 #include <boost/weak_ptr.hpp>
00039 #include <boost/function.hpp>
00040
00041 #include <ros/time.h>
00042 #include <ros/macros.h>
00043 #include "exceptions.h"
00044
00045 namespace ros
00046 {
00047
00048 typedef boost::shared_ptr<void> VoidPtr;
00049 typedef boost::weak_ptr<void> VoidWPtr;
00050 typedef boost::shared_ptr<void const> VoidConstPtr;
00051 typedef boost::weak_ptr<void const> VoidConstWPtr;
00052
00053 class Header;
00054 class Transport;
00055 typedef boost::shared_ptr<Transport> TransportPtr;
00056 class TransportTCP;
00057 typedef boost::shared_ptr<TransportTCP> TransportTCPPtr;
00058 class TransportUDP;
00059 typedef boost::shared_ptr<TransportUDP> TransportUDPPtr;
00060 class Connection;
00061 typedef boost::shared_ptr<Connection> ConnectionPtr;
00062 typedef std::set<ConnectionPtr> S_Connection;
00063 typedef std::vector<ConnectionPtr> V_Connection;
00064 class Publication;
00065 typedef boost::shared_ptr<Publication> PublicationPtr;
00066 typedef std::vector<PublicationPtr> V_Publication;
00067 class SubscriberLink;
00068 typedef boost::shared_ptr<SubscriberLink> SubscriberLinkPtr;
00069 typedef std::vector<SubscriberLinkPtr> V_SubscriberLink;
00070 class Subscription;
00071 typedef boost::shared_ptr<Subscription> SubscriptionPtr;
00072 typedef boost::weak_ptr<Subscription> SubscriptionWPtr;
00073 typedef std::list<SubscriptionPtr> L_Subscription;
00074 typedef std::vector<SubscriptionPtr> V_Subscription;
00075 typedef std::set<SubscriptionPtr> S_Subscription;
00076 class PublisherLink;
00077 typedef boost::shared_ptr<PublisherLink> PublisherLinkPtr;
00078 typedef std::vector<PublisherLinkPtr> V_PublisherLink;
00079 class ServicePublication;
00080 typedef boost::shared_ptr<ServicePublication> ServicePublicationPtr;
00081 typedef std::list<ServicePublicationPtr> L_ServicePublication;
00082 typedef std::vector<ServicePublicationPtr> V_ServicePublication;
00083 class ServiceServerLink;
00084 typedef boost::shared_ptr<ServiceServerLink> ServiceServerLinkPtr;
00085 typedef std::list<ServiceServerLinkPtr> L_ServiceServerLink;
00086 class Transport;
00087 typedef boost::shared_ptr<Transport> TransportPtr;
00088 class NodeHandle;
00089 typedef boost::shared_ptr<NodeHandle> NodeHandlePtr;
00090
00091 typedef std::vector<std::pair<std::string, std::string> > VP_string;
00092 typedef std::vector<std::string> V_string;
00093 typedef std::set<std::string> S_string;
00094 typedef std::map<std::string, std::string> M_string;
00095 typedef std::pair<std::string, std::string> StringPair;
00096
00097 class SingleSubscriberPublisher;
00098 typedef boost::function<void(const SingleSubscriberPublisher&)> SubscriberStatusCallback;
00099
00100 class CallbackQueue;
00101 class CallbackQueueInterface;
00102 class CallbackInterface;
00103 typedef boost::shared_ptr<CallbackInterface> CallbackInterfacePtr;
00104
00105 struct SubscriberCallbacks
00106 {
00107 SubscriberCallbacks(const SubscriberStatusCallback& connect = SubscriberStatusCallback(),
00108 const SubscriberStatusCallback& disconnect = SubscriberStatusCallback(),
00109 const VoidConstPtr& tracked_object = VoidConstPtr(),
00110 CallbackQueueInterface* callback_queue = 0)
00111 : connect_(connect)
00112 , disconnect_(disconnect)
00113 , callback_queue_(callback_queue)
00114 {
00115 has_tracked_object_ = false;
00116 if (tracked_object)
00117 {
00118 has_tracked_object_ = true;
00119 tracked_object_ = tracked_object;
00120 }
00121 }
00122 SubscriberStatusCallback connect_;
00123 SubscriberStatusCallback disconnect_;
00124
00125 bool has_tracked_object_;
00126 VoidConstWPtr tracked_object_;
00127 CallbackQueueInterface* callback_queue_;
00128 };
00129 typedef boost::shared_ptr<SubscriberCallbacks> SubscriberCallbacksPtr;
00130
00134 struct TimerEvent
00135 {
00136 Time last_expected;
00137 Time last_real;
00138
00139 Time current_expected;
00140 Time current_real;
00141
00142 struct
00143 {
00144 WallDuration last_duration;
00145 } profile;
00146 };
00147 typedef boost::function<void(const TimerEvent&)> TimerCallback;
00148
00152 struct WallTimerEvent
00153 {
00154 WallTime last_expected;
00155 WallTime last_real;
00156
00157 WallTime current_expected;
00158 WallTime current_real;
00159
00160 struct
00161 {
00162 WallDuration last_duration;
00163 } profile;
00164 };
00165 typedef boost::function<void(const WallTimerEvent&)> WallTimerCallback;
00166
00167 class ServiceManager;
00168 typedef boost::shared_ptr<ServiceManager> ServiceManagerPtr;
00169 class TopicManager;
00170 typedef boost::shared_ptr<TopicManager> TopicManagerPtr;
00171 class ConnectionManager;
00172 typedef boost::shared_ptr<ConnectionManager> ConnectionManagerPtr;
00173 class XMLRPCManager;
00174 typedef boost::shared_ptr<XMLRPCManager> XMLRPCManagerPtr;
00175 class PollManager;
00176 typedef boost::shared_ptr<PollManager> PollManagerPtr;
00177
00178 }
00179
00180 #endif
roscpp
Author(s): Morgan Quigley mquigley@cs.stanford.edu, Josh Faust jfaust@willowgarage.com, Brian Gerkey gerkey@willowgarage.com, Troy Straszheim straszheim@willowgarage.com
autogenerated on Sat Dec 28 2013 17:35:52