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::IInterface* get_reference() const =0
- Returns the reference.
- template< class T>const T* get_reference() const
- Returns the reference. More...
- virtual base::IInterface* get_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.