# SoftBank Robotics documentation What's new in NAOqi 2.8?

# qi::MetaObject, qi::MetaMethod, qi::MetaSignal, qi::MetaProperty

## Summary

Global Classes

- class qi::MetaObject

  Functions (class qi::MetaObject)

  qi::MetaObject::methodId

  qi::MetaObject::signalId

  qi::MetaObject::property

  qi::MetaObject::operator=

  qi::MetaObject::signal

  qi::MetaObject::method

  qi::MetaObject::description

  qi::MetaObject::MetaObject

  qi::MetaObject::signalMap

  qi::MetaObject::propertyId

  qi::MetaObject::isPrivateMember

  qi::MetaObject::~MetaObject

  qi::MetaObject::methodMap

  qi::MetaObject::findMethod

  qi::MetaObject::findCompatibleMethod

  qi::MetaObject::merge

  qi::MetaObject::propertyMap

  Members (class qi::MetaObject)

  qi::MetaObject::_p

- class qi::MetaSignal

  Functions (class qi::MetaSignal)

  qi::MetaSignal::~MetaSignal

  qi::MetaSignal::toString

  qi::MetaSignal::parametersSignature

  qi::MetaSignal::MetaSignal

  qi::MetaSignal::isPrivate

  qi::MetaSignal::name

  qi::MetaSignal::uid

- class qi::MetaMethod

  Functions (class qi::MetaMethod)

  qi::MetaMethod::isPrivate

  qi::MetaMethod::description

  qi::MetaMethod::parameters

  qi::MetaMethod::toString

  qi::MetaMethod::name

  qi::MetaMethod::uid

  qi::MetaMethod::returnSignature

  qi::MetaMethod::returnDescription

  qi::MetaMethod::parametersSignature

  qi::MetaMethod::MetaMethod

  Members (class qi::MetaMethod)

  qi::MetaMethod::_p

- class qi::MetaProperty

  Functions (class qi::MetaProperty)

  qi::MetaProperty::signature

  qi::MetaProperty::uid

  qi::MetaProperty::name

  qi::MetaProperty::isPrivate

  qi::MetaProperty::toString

  qi::MetaProperty::MetaProperty

## Reference

### qi::MetaObject Class Reference

#### Introduction

Description of the signals and methods accessible on an ObjectTypeInterface. `More...`

#### Public Members

MetaObjectPrivate* ``_p``

#### Public Functions

``MetaObject``()
``MetaObject``(const MetaObject& other)
MetaObject& ``operator=``(const MetaObject& other)
``~MetaObject``()
int ``methodId``(const std::string& nameWithSignature) const
int ``signalId``(const std::string& name) const
int ``propertyId``(const std::string& name) const
MethodMap ``methodMap``() const
SignalMap ``signalMap``() const
PropertyMap ``propertyMap``() const
MetaMethod* ``method``(unsigned int id)
const MetaMethod* ``method``(unsigned int id) const
MetaSignal* ``signal``(unsigned int id)
const MetaSignal* ``signal``(unsigned int id) const
const MetaSignal* ``signal``(const std::string& name) const
MetaProperty* ``property``(unsigned int id)
const MetaProperty* ``property``(unsigned int id) const
int ``findMethod``(const std::string& nameWithOptionalSignature, const GenericFunctionParameters& args, bool* canCache) const
std::vector<MetaMethod> ``findMethod``(const std::string& name) const
std::vector<CompatibleMethod> ``findCompatibleMethod``(const std::string& nameOrSignature) const
std::string ``description``() const
``MetaObject``(const MethodMap& methodMap, const SignalMap& signalMap, const PropertyMap& propertyMap, const std::string& description)

#### Public Static Functions

bool ``isPrivateMember``(const std::string& name, unsigned int uid)
qi::MetaObject ``merge``(const qi::MetaObject& source, const qi::MetaObject& dest)

#### Types

typedef std::map< unsigned int, MetaMethod > MethodMap
typedef std::map< unsigned int, MetaSignal > SignalMap
typedef std::map< unsigned int, MetaProperty > PropertyMap
typedef std::pair< MetaMethod, float > CompatibleMethod

#### Detailed Description

Description of the signals and methods accessible on an ObjectTypeInterface.

#### Members Documentation

MetaObjectPrivate* `qi::MetaObject::``_p`

#### Function Documentation

static bool `qi::MetaObject::``isPrivateMember`(const std::string& name, unsigned int uid)

  Brief:

  Parameters: | name – The member’s name. uid – The uid’s name.
  Returns: | True if the member is considered internal, and should not be listed.

static qi::MetaObject `qi::MetaObject::``merge`(const qi::MetaObject& source, const qi::MetaObject& dest)

  Brief:

  Parameters: | source – The source object. dest – The destination object.
  Returns: | The merge’s result of the two objects.

  Merge two MetaObject. Dest method and signal ids will be incremented by offset.

`qi::MetaObject::``MetaObject`()

`qi::MetaObject::``MetaObject`(const MetaObject& other)

MetaObject& `qi::MetaObject::``operator=`(const MetaObject& other)

`qi::MetaObject::``~MetaObject`()

int `qi::MetaObject::``methodId`(const std::string& nameWithSignature)`const`

  Brief:

  Parameters: | nameWithSignature – The complete full signature (name::signature) for example myMethod::(s).
  Returns: | The method’s id or -1 if the method wasn’t found.

int `qi::MetaObject::``signalId`(const std::string& name)`const`

  Brief:

  Parameters: | name – The name of the signal or its full signature.
  Returns: | The signal’s id or -1 if the signal wasn’t found.

int `qi::MetaObject::``propertyId`(const std::string& name)`const`

  Brief:

  Parameters: | name – The property’s name.
  Returns: | The property’s id or -1 if the property wasn’t found.

MethodMap `qi::MetaObject::``methodMap`()`const`

  Brief:

  Returns: | The map of all the methods.

SignalMap `qi::MetaObject::``signalMap`()`const`

  Brief:

  Returns: | The map of all the signals.

PropertyMap `qi::MetaObject::``propertyMap`()`const`

  Brief:

  Returns: | The map of all the properties.

MetaMethod* `qi::MetaObject::``method`(unsigned int id)

  Brief:

  Parameters: | id – The method’s id.
  Returns: | The desired method or null if the id is invalid.

const MetaMethod* `qi::MetaObject::``method`(unsigned int id)`const`

MetaSignal* `qi::MetaObject::``signal`(unsigned int id)

  Brief:

  Parameters: | id – The signal’s id.
  Returns: | The desired signal or null if the id is invalid.

const MetaSignal* `qi::MetaObject::``signal`(unsigned int id)`const`

const MetaSignal* `qi::MetaObject::``signal`(const std::string& name)`const`

  Brief:

  Parameters: | name – The name of the signal or its full signature.
  Returns: | The desired signal or null if the signal wasn’t found.

MetaProperty* `qi::MetaObject::``property`(unsigned int id)

  Brief:

  Parameters: | id – The property’s id.
  Returns: | The desired property of null if the id is invalid.

const MetaProperty* `qi::MetaObject::``property`(unsigned int id)`const`

int `qi::MetaObject::``findMethod`(const std::string& nameWithOptionalSignature, const GenericFunctionParameters& args, bool* canCache = 0)`const`

  Brief:

  Parameters: | nameWithOptionalSignature – The method’s name or its full signature. args – The parameters’ type of the method. canCache – If set, will be filled with true if the returned method can be cached regardless of the arguments types (but not argument count), and false otherwise.
  Returns: | The mathing method id, or -1 if none or an ambiguous set was found.

  Find a method matching nameWithOptionalSignature that can be called with arguments args.

std::vector<MetaMethod> `qi::MetaObject::``findMethod`(const std::string& name)`const`

  Brief:

  Parameters: | name – The exact method’s name.
  Returns: | A vector containing all the overloaded version of the method.

std::vector<CompatibleMethod> `qi::MetaObject::``findCompatibleMethod`(const std::string& nameOrSignature)`const`

  Brief:

  Parameters: | nameOrSignature – Either the name or the signature of the method.
  Returns: | A vector containing all the compatible method and their associated compatibility’s score.

  Find all the methods compatible with nameOrSignature. If no signature is specified, the method relies on findMethod.

std::string `qi::MetaObject::``description`()`const`

  Brief:

  Returns: | The object’s description.

`qi::MetaObject::``MetaObject`(const MethodMap& methodMap, const SignalMap& signalMap, const PropertyMap& propertyMap, const std::string& description)

### qi::MetaMethod Class Reference

#### Introduction

Representation of a method in an GenericObject. `More...`

#### Public Members

boost::shared_ptr<MetaMethodPrivate> ``_p``

#### Public Functions

``MetaMethod``()
``MetaMethod``(unsigned int newUid, const MetaMethod& other)
unsigned int ``uid``() const
const std::string& ``name``() const
std::string ``toString``() const
const Signature& ``parametersSignature``() const
const Signature& ``returnSignature``() const
std::string ``description``() const
MetaMethodParameterVector ``parameters``() const
std::string ``returnDescription``() const
bool ``isPrivate``() const
``MetaMethod``(unsigned int uid, const qi::Signature& returnSignature, const std::string& name, const qi::Signature& parametersSignature, const std::string& description, const MetaMethodParameterVector& parameters, const std::string& returnDescription)

#### Detailed Description

Representation of a method in an GenericObject.

#### Members Documentation

boost::shared_ptr<MetaMethodPrivate> `qi::MetaMethod::``_p`

#### Function Documentation

`qi::MetaMethod::``MetaMethod`()

`qi::MetaMethod::``MetaMethod`(unsigned int newUid, const MetaMethod& other)

unsigned int `qi::MetaMethod::``uid`()`const`

const std::string& `qi::MetaMethod::``name`()`const`

std::string `qi::MetaMethod::``toString`()`const`

const Signature& `qi::MetaMethod::``parametersSignature`()`const`

const Signature& `qi::MetaMethod::``returnSignature`()`const`

std::string `qi::MetaMethod::``description`()`const`

MetaMethodParameterVector `qi::MetaMethod::``parameters`()`const`

std::string `qi::MetaMethod::``returnDescription`()`const`

bool `qi::MetaMethod::``isPrivate`()`const`

  return true if method is considered internal, and should not be listed

`qi::MetaMethod::``MetaMethod`(unsigned int uid, const qi::Signature& returnSignature, const std::string& name, const qi::Signature& parametersSignature, const std::string& description, const MetaMethodParameterVector& parameters, const std::string& returnDescription)

### qi::MetaSignal Class Reference

#### Introduction

Representation of a Signal in an GenericObject. `More...`

#### Public Functions

``MetaSignal``(unsigned int uid, const std::string& name, const qi::Signature& sig)
``MetaSignal``()
``~MetaSignal``()
const std::string& ``name``() const
std::string ``toString``() const
const Signature& ``parametersSignature``() const
unsigned int ``uid``() const
bool ``isPrivate``() const

#### Detailed Description

Representation of a Signal in an GenericObject.

#### Function Documentation

`qi::MetaSignal::``MetaSignal`(unsigned int uid, const std::string& name, const qi::Signature& sig)

`qi::MetaSignal::``MetaSignal`()

`qi::MetaSignal::``~MetaSignal`()

const std::string& `qi::MetaSignal::``name`()`const`

std::string `qi::MetaSignal::``toString`()`const`

const Signature& `qi::MetaSignal::``parametersSignature`()`const`

unsigned int `qi::MetaSignal::``uid`()`const`

bool `qi::MetaSignal::``isPrivate`()`const`

  return true if signal is considered internal, and should not be listed

### qi::MetaProperty Class Reference

#### Introduction

`More...`

#### Public Functions

``MetaProperty``(unsigned int uid, const std::string& name, const qi::Signature& sig)
``MetaProperty``()
const std::string& ``name``() const
const qi::Signature& ``signature``() const
std::string ``toString``() const
unsigned int ``uid``() const
bool ``isPrivate``() const

#### Detailed Description

#### Function Documentation

`qi::MetaProperty::``MetaProperty`(unsigned int uid, const std::string& name, const qi::Signature& sig)

`qi::MetaProperty::``MetaProperty`()

const std::string& `qi::MetaProperty::``name`()`const`

const qi::Signature& `qi::MetaProperty::``signature`()`const`

std::string `qi::MetaProperty::``toString`()`const`

unsigned int `qi::MetaProperty::``uid`()`const`

bool `qi::MetaProperty::``isPrivate`()`const`

  return true if property is considered internal, and should not be listed

Glossary Site map Index Support Contact Legal Notices