Urbi SDK Remote for C++  2.7.5
uabstractclient.hh File Reference

Definition of the URBI interface class. More...

#include <libport/cstdio>
#include <libport/sys/types.h>
#include <libport/cstring>
#include <libport/cstdlib>
#include <cstdarg>
#include <list>
#include <iostream>
#include <string>
#include <libport/compiler.hh>
#include <libport/fwd.hh>
#include <libport/lockable.hh>
#include <libport/traits.hh>
#include <urbi/fwd.hh>
#include <urbi/export.hh>
#include <urbi/ubinary.hh>
#include <urbi/umessage.hh>
#include <urbi/uabstractclient.hxx>
Include dependency graph for uabstractclient.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


class  urbi::UCallbackInfo
class  urbi::LockableOstream
class  urbi::UAbstractClient
 Interface for an Urbi wrapper object. More...
class  urbi::UCallbackWrapper
 Wrapper around a callback function. Use callback() to create them. More...
class  urbi::UCallbackWrapperF
class  urbi::UCallbackWrapperCF
class  urbi::UCallbackWrapper0< C >
class  urbi::UCallbackWrapper1< C, P1 >
class  urbi::UCallbackWrapper2< C, P1, P2 >
class  urbi::UCallbackWrapper3< C, P1, P2, P3 >
class  urbi::UCallbackWrapper4< C, P1, P2, P3, P4 >


namespace  urbi

Global definition of the starterlist.


#define URBI(A)   ::urbi::unarmorAndSend(#A)
 Conveniant macro for easy insertion of Urbi code in C.


typedef unsigned int urbi::UCallbackID
typedef UCallbackAction(* urbi::UCallback )(const UMessage &msg)
 Callback prototypes.
typedef UCallbackAction(* urbi::UCustomCallback )(void *callbackData, const UMessage &msg)


enum  urbi::UCallbackAction { urbi::URBI_CONTINUE = 0, urbi::URBI_REMOVE }
 Return values for the callcack functions. More...
enum  { urbi::URBI_MAX_TAG_LENGTH = 64 }
 Maximum length of an URBI tag. More...


void urbi::execute (void)
 Must be called at the last line of your main() function.
void urbi::exit (int code)
 Terminate your Urbi program.
UClient & urbi::connect (const std::string &host)
 Create a new UClient object.
void urbi::disconnect (UClient &client)
 Destroy an UClient object Be careful: don't use client after called this function.
UClient * urbi::getDefaultClient ()
 Return the first UClient created by the program.
UClient & urbi::get_default_client ()
 Same as getDefaultClient(), but as a reference.
void urbi::setDefaultClient (UClient *cl)
 Redefine the default client.
std::string urbi::getClientConnectionID (const UAbstractClient *cli)
std::ostream & urbi::unarmorAndSend (const char *str, UAbstractClient *c=(UAbstractClient *) getDefaultClient())
 Send a possibly armored string to the default client.
std::ostream & urbi::default_stream ()
 Return a stream for error, preferrably the one the defaultClient.
UCallbackWrapper & urbi::callback (UCallback cb)
 Generate a callback wrapper used by UAbstractClient::setCallback().
UCallbackWrapper & urbi::callback (UCustomCallback cb, void *data)
template<class C >
UCallbackWrapper & urbi::callback (C &ref, UCallbackAction(C::*func)(const UMessage &))
template<class C , class P1 >
UCallbackWrapper & urbi::callback (C &ref, UCallbackAction(C::*func)(P1, const UMessage &), P1 p1)
template<class C , class P1 , class P2 >
UCallbackWrapper & urbi::callback (C &ref, UCallbackAction(C::*func)(P1, P2, const UMessage &), P1 p1, P2 p2)
template<class C , class P1 , class P2 , class P3 >
UCallbackWrapper & urbi::callback (C &ref, UCallbackAction(C::*func)(P1, P2, P3, const UMessage &), P1 p1, P2 p2, P3 p3)
template<class C , class P1 , class P2 , class P3 , class P4 >
UCallbackWrapper & urbi::callback (C &ref, UCallbackAction(C::*func)(P1, P2, P3, P4, const UMessage &), P1 p1, P2 p2, P3 p3, P4 p4)


static const char urbi::semicolon = ';'
static const char urbi::pipe = '|'
static const char urbi::parallel = '&'
static const char urbi::comma = ','

Detailed Description

Definition of the URBI interface class.

Definition in file uabstractclient.hh.

Define Documentation


Definition at line 66 of file uabstractclient.hh.

Referenced by urbi::UAbstractClient::sendCommand().

#define URBI (   A)    ::urbi::unarmorAndSend(#A)

Conveniant macro for easy insertion of Urbi code in C.

With this macro, the following code is enough to send a simple command to a robot using URBI:

int main() { urbi::connect("robot"); URBI(headPan.val'n = 0 time:1000 | headTilt.val'n = 0 time:1000, speaker.play("test.wav"), echo "test"; ); }

The following construct is also valid: URBI(()) << "headPan.val="<<12<<";";

Definition at line 793 of file uabstractclient.hh.