ML Reference
MeVis/Foundation/Sources/MLUtilities/mlBase.h File Reference

Class representing general ML objects that support import/export via strings (setPersistentState() and getPersistentState()), arbitrary tree structures (using addStateToTree() and readStateFromTree()) or a data stream (using writeTo() and readFrom()). More...

#include "mlUtilsSystem.h"
#include "mlRuntimeSubClass.h"
#include "mlSystemWarningsDisable.h"
#include <vector>
#include "mlSystemWarningsRestore.h"

Go to the source code of this file.

Classes

class  ml::Base
 Class representing general ML objects that support import/export via strings (setPersistentState() and getPersistentState()), arbitrary tree structures (using addStateToTree() and readStateFromTree()) or a data stream (using writeTo() and readFrom()). More...

Namespaces

namespace  ml
 

Define the namespace name like in the ML. Default is ml.


Defines

#define ML_SET_ADDSTATE_VERSION(v)   static int getAddStateVersion(void) { return v; };
 Macro to add the static function getAddStateVersion(void) to the implementation.
#define ML_PERSISTENCE_VERSION(v)   ML_SET_ADDSTATE_VERSION(v)
 Nicer name for ML_SET_ADDSTATE_VERSION.

Functions

template<typename ToTypePtr >
ToTypePtr mlbase_cast (ml::Base *from)
 Template function to allow type-safe casting of a base object to a derived object.
template<typename ToTypePtr >
ToTypePtr mlbase_cast (const ml::Base *from)
 Overload of the above template function, which makes conversion of const-pointers possible.

Detailed Description

Class representing general ML objects that support import/export via strings (setPersistentState() and getPersistentState()), arbitrary tree structures (using addStateToTree() and readStateFromTree()) or a data stream (using writeTo() and readFrom()).

Note that this file needs to be included explicitly, because it is no default include of mlUtils.h.

Author:
Dirk Selle
Date:
03/2001

Definition in file mlBase.h.


Define Documentation

#define ML_PERSISTENCE_VERSION (   v)    ML_SET_ADDSTATE_VERSION(v)

Nicer name for ML_SET_ADDSTATE_VERSION.

Definition at line 34 of file mlBase.h.

#define ML_SET_ADDSTATE_VERSION (   v)    static int getAddStateVersion(void) { return v; };

Macro to add the static function getAddStateVersion(void) to the implementation.

Definition at line 32 of file mlBase.h.


Function Documentation

template<typename ToTypePtr >
ToTypePtr mlbase_cast ( ml::Base from) [inline]

Template function to allow type-safe casting of a base object to a derived object.

Template function to allow type-safe casting of a base object to a derived object. The function takes a from base object and returns a pointer to the desired object if the from pointer is derived from that ToTypePtr type. Otherwise a NULL pointer is returned. If NULL is passed to the function, NULL is returned. This function should be preferred to the ML_BASE_IS_A macro.

Example 1:

  if (mlbase_cast<GVRVolume*>(someBaseObject)) {
    GVRVolume* volume = static_cast<GVRVolume*>(someBaseObject);
    ...
  } else if (mlbase_cast<OtherType*>(someBaseObject)) {
    ...
  }

Example 2:

  GVRVolume* volume = mlbase_cast<GVRVolume*>(someBaseObject);
  if (volume) {
    ...
  }

Definition at line 180 of file mlBase.h.

template<typename ToTypePtr >
ToTypePtr mlbase_cast ( const ml::Base from) [inline]

Overload of the above template function, which makes conversion of const-pointers possible.

Definition at line 194 of file mlBase.h.