Cafer_core
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator
Classes | Typedefs | Enumerations | Functions | Variables
cafer_core Namespace Reference

Classes

class  ClientDescriptor
 class ClientDescriptor. To describe a client by his namspace (ns), an id and a type More...
 
struct  ClientDescriptorHasher
 
class  Component
 Abstract class for the Cafer client Main functionnalities: More...
 
class  ManagerBase
 Base class for manager component. A manager component handle ROS messages (like images, features or policies). More...
 
class  Manager
 
class  Manager< Msg, std::unordered_map< u_int32_t, Msg > >
 
class  Manager< Msg, std::deque< Msg > >
 

Typedefs

template<typename T >
using shared_ptr = boost::shared_ptr< T >
 
using NodeHandle = ros::NodeHandle
 
using NodeHandlePtr = shared_ptr< ros::NodeHandle >
 
using NodeHandleConstPtr = const shared_ptr< ros::NodeHandle >
 
using Subscriber = ros::Subscriber
 
using SubscriberPtr = shared_ptr< ros::Subscriber >
 
using SubscriberConstPtr = const shared_ptr< ros::Subscriber >
 
using Publisher = ros::Publisher
 
using PublisherPtr = shared_ptr< ros::Publisher >
 
using PublisherConstPtr = const shared_ptr< ros::Publisher >
 
using MapWatchDog_t = std::unordered_map< ClientDescriptor, ros::Time, ClientDescriptorHasher >
 
using CreatedNodes_t = std::unordered_map< std::string, std::vector< ClientDescriptor > >
 
template<typename Msg >
using ManagerMap = Manager< Msg, std::unordered_map< u_int32_t, Msg >>
 Manager component which use std::unordered_map as container. More...
 
template<typename Msg >
using ManagerQueue = Manager< Msg, std::deque< Msg >>
 Manager component which use std::queue as container. More...
 

Enumerations

enum  MgmtType {
  CHG_FREQ = 0, LOCAL_CLIENT_DEATH, COMPLETE_NODE_DEATH, WATCHDOG,
  ACK_CREATION, ASK_NEW_ACK
}
 

Functions

void init (int argc, char **argv, std::string node_name)
 
bool operator== (ClientDescriptor const &, ClientDescriptor const &)
 operator == for comparison between client. More...
 

Variables

shared_ptr< ros::NodeHandle > ros_nh
 

Typedef Documentation

using cafer_core::CreatedNodes_t = typedef std::unordered_map<std::string, std::vector<ClientDescriptor> >

Definition at line 100 of file component.hpp.

template<typename Msg >
using cafer_core::ManagerMap = typedef Manager<Msg, std::unordered_map<u_int32_t, Msg>>

Manager component which use std::unordered_map as container.

Definition at line 308 of file manager.hpp.

template<typename Msg >
using cafer_core::ManagerQueue = typedef Manager<Msg, std::deque<Msg>>

Manager component which use std::queue as container.

Definition at line 314 of file manager.hpp.

using cafer_core::MapWatchDog_t = typedef std::unordered_map<ClientDescriptor, ros::Time, ClientDescriptorHasher>

Definition at line 99 of file component.hpp.

using cafer_core::NodeHandle = typedef ros::NodeHandle

Definition at line 19 of file aliases.hpp.

using cafer_core::NodeHandleConstPtr = typedef const shared_ptr<ros::NodeHandle>

Definition at line 21 of file aliases.hpp.

using cafer_core::NodeHandlePtr = typedef shared_ptr<ros::NodeHandle>

Definition at line 20 of file aliases.hpp.

using cafer_core::Publisher = typedef ros::Publisher

Definition at line 27 of file aliases.hpp.

using cafer_core::PublisherConstPtr = typedef const shared_ptr<ros::Publisher>

Definition at line 29 of file aliases.hpp.

using cafer_core::PublisherPtr = typedef shared_ptr<ros::Publisher>

Definition at line 28 of file aliases.hpp.

template<typename T >
using cafer_core::shared_ptr = typedef boost::shared_ptr<T>

Definition at line 15 of file aliases.hpp.

using cafer_core::Subscriber = typedef ros::Subscriber

Definition at line 23 of file aliases.hpp.

using cafer_core::SubscriberConstPtr = typedef const shared_ptr<ros::Subscriber>

Definition at line 25 of file aliases.hpp.

using cafer_core::SubscriberPtr = typedef shared_ptr<ros::Subscriber>

Definition at line 24 of file aliases.hpp.

Enumeration Type Documentation

Enumerator
CHG_FREQ 

changement of the ROS frequency

LOCAL_CLIENT_DEATH 

ask for the death of the component. It is local as a node may have several components and what is asked here is only the death of the component. It should be noted that it only sets a boolean attribute (terminate) to true. Its value has to be taken into accounf for anything to happen...

COMPLETE_NODE_DEATH 

ask for the whole node death (not just the component). It results in a ros:shutdown()

WATCHDOG 

watchdog message, to tell that the component is still alive

ACK_CREATION 

message to tell to a component that has required the creation of a node that the creation is complete. It also allows the creating component to get the id of the created component.

ASK_NEW_ACK 

ask for acknowledgement to all nodes that are handled by this Component

Definition at line 61 of file component.hpp.

Function Documentation

void cafer_core::init ( int  argc,
char **  argv,
std::string  node_name 
)
bool cafer_core::operator== ( ClientDescriptor const &  ,
ClientDescriptor const &   
)

operator == for comparison between client.

Returns

Variable Documentation

shared_ptr<ros::NodeHandle> cafer_core::ros_nh