Urbi SDK Remote for C++  2.7.5
urbi::compatibility Namespace Reference

Functions

std::string evaluate_in_channel_open (const std::string &name, unsigned major)
 Evaluate an expression Exp in such a way that the result *and the errors* are sent to the tag/channel tag.
std::string evaluate_in_channel_close (const std::string &name, unsigned major)
std::string emit (const std::string &event, unsigned major=kernelMajor())
 Return the string to emit event in k1 or k2.
std::string isvoid (const std::string &exp, unsigned major=kernelMajor())
 Return the string to test whether exp is void in k1 or k2.
std::string stop (const std::string &tag, unsigned major=kernelMajor())
 Return the string to stop a tag in k1 or k2.

Function Documentation

std::string urbi::compatibility::emit ( const std::string &  event,
unsigned  major = kernelMajor() 
) [inline]

Return the string to emit event in k1 or k2.

Definition at line 56 of file compatibility.hxx.

std::string urbi::compatibility::evaluate_in_channel_close ( const std::string &  name,
unsigned  major 
) [inline]

Definition at line 36 of file compatibility.hxx.

References SYNCLINE_WRAP.

Referenced by urbi::USyncClient::syncGet_().

std::string urbi::compatibility::evaluate_in_channel_open ( const std::string &  name,
unsigned  major 
) [inline]

Evaluate an expression Exp in such a way that the result *and the errors* are sent to the tag/channel tag.

Urbi 2 sends errors to the "error" tag, which is a problem here. If for instance you send an incorrect message on tag "Foo", it will return an error on the channel "error", and as a result, the user, still waiting for "Foo", will never be told there is an error there.

The open/close combination around Exp gives the following:

For Urbi 1:

name << Exp,

For Urbi 2:

{ try { Channel.new(name) << { Exp } } catch (var e) { lobby.send("!!! " + e.asString, name); } },

We add bracess to allow statements and neutralize precedence issues. We end with a `,', as this is an asynchronous command.

Parameters:
namethe name of the channel
majorversion number

Definition at line 26 of file compatibility.hxx.

References SYNCLINE_WRAP.

Referenced by urbi::USyncClient::syncGet_().

std::string urbi::compatibility::isvoid ( const std::string &  exp,
unsigned  major = kernelMajor() 
) [inline]

Return the string to test whether exp is void in k1 or k2.

Definition at line 68 of file compatibility.hxx.

std::string urbi::compatibility::stop ( const std::string &  tag,
unsigned  major = kernelMajor() 
) [inline]

Return the string to stop a tag in k1 or k2.

Definition at line 77 of file compatibility.hxx.