neuray API Programmer's Manual

mi::IRef Class Reference

[Simple Types]

Description

A reference is an object that acts as a pointer to other database elements. It can be used for example to store references to other database elements as an attribute of a given database element.

Public Member Functions

virtual const base::​IInterfaceget_reference() const =0
Returns the reference.
template< class T>const T* get_reference() const
Returns the reference. More...
virtual base::​IInterfaceget_reference() =0
Returns the reference.
template< class T>T* get_reference()
Returns the reference. More...
virtual const char* get_reference_name() const =0
Returns the name of the referenced element.
virtual Sint32 set_reference( const base::​IInterface* db_element) =0
Sets the reference to db_element. More...
virtual Sint32 set_reference( const char* name) =0
Sets the reference to the database element named name. More...

Member Functions

virtual const base::​IInterface* mi::​IRef::get_reference() const [pure virtual]

Returns the reference.

template< class T>

const T* mi::​IRef::get_reference() const [inline]

Returns the reference. This templated member function is a wrapper of the non-template variant for the user's convenience. It eliminates the need to call mi::base::IInterface::get_interface( const Uuid&) on the returned pointer, since the return type already is a pointer to the type T specified as template parameter.

virtual base::​IInterface* mi::​IRef::get_reference() [pure virtual]

Returns the reference.

template< class T>

T* mi::​IRef::get_reference() [inline]

Returns the reference. This templated member function is a wrapper of the non-template variant for the user's convenience. It eliminates the need to call mi::base::IInterface::get_interface( const Uuid&) on the returned pointer, since the return type already is a pointer to the type T specified as template parameter.

virtual const char* mi::​IRef::get_reference_name() const [pure virtual]

Returns the name of the referenced element.

virtual Sint32 mi::​IRef::set_reference( const base::​IInterface* db_element) [pure virtual]

Sets the reference to db_element. Note that a NULL pointer is a valid parameter value that clears the previously set reference. Subsequent get_reference() calls will return NULL then.

If a literal 0 is passed for db_element, the call is ambiguous. You need to explicitly cast the value to const IInterface* or const char*.

Returns

  • 0: Success.
  • -2: db_element does not point to a DB element.
  • -3: db_element points to a DB element that has not yet been stored in the DB.
  • -4: The reference can not be set to the element because the element is in a more private scope than the reference.
  • -5: The reference is typed and the type of the referenced element does not match.
virtual Sint32 mi::​IRef::set_reference( const char* name) [pure virtual]

Sets the reference to the database element named name. Note that a NULL pointer is a valid parameter value that clears the previously set reference. Subsequent get_reference() calls will return NULL then.

If a literal 0 is passed for name, the call is ambiguous. You need to explicitly cast the value to const IInterface* or const char*.

Returns

  • 0: Success.
  • -2: There is no element with that name.
  • -4: The reference can not be set to the element because the element is in a more private scope than the reference.
  • -5: The reference is typed and the type of the referenced element does not match.