MrSID Decode SDK for LiDAR Reference Manual  1.1.4.4709
Object.h File Reference
#include "lidar/Atomic.h"

Go to the source code of this file.

Classes

class  Object
 Object is the base class for implementing reference counting. More...
 
class  Scoped< TYPE >
 Scoped is a wrapper class around Object that gives it block scoping. More...
 

Macros

#define ABSTRACT_OBJECT(classname)
 Macros for defining boilerplate parts of derived Object classes. More...
 
#define CONCRETE_OBJECT(classname)
 CONCRETE_OBJECT(): should be used when deriving classes that are concrete. More...
 
#define IMPLEMENT_OBJECT_CREATE(classname)   classname * classname::create(void) { return new classname; }
 

Functions

template<typename OBJECT >
static OBJECT * RETAIN (OBJECT *obj)
 Helper function for calling Object::retain(). More...
 
template<typename OBJECT >
static void RELEASE (OBJECT *&obj)
 Helper function for calling Object::release(). More...
 
template<typename OBJECT >
static OBJECT * RETAIN (Scoped< OBJECT > &obj)
 

Macro Definition Documentation

#define ABSTRACT_OBJECT (   classname)
Value:
DISABLE_COPY(classname); \
protected: \
classname(void); \
virtual ~classname(void)

ABSTRACT_OBJECT(): should be used when deriving classes that will not be instantiated directly. (TYPE::create() is not declared.)

Definition at line 45 of file Object.h.

#define CONCRETE_OBJECT (   classname)
Value:
ABSTRACT_OBJECT(classname); \
public: \
static classname *create(void)
#define ABSTRACT_OBJECT(classname)
Macros for defining boilerplate parts of derived Object classes.
Definition: Object.h:45

Definition at line 55 of file Object.h.

#define IMPLEMENT_OBJECT_CREATE (   classname)    classname * classname::create(void) { return new classname; }

Definition at line 60 of file Object.h.

Function Documentation

template<typename OBJECT >
static void RELEASE ( OBJECT *&  obj)
inlinestatic

RELEASE() tests for NULL before calling release() and set obj to NULL.

Definition at line 95 of file Object.h.

Referenced by Scoped< TYPE >::operator=(), and Scoped< TYPE >::~Scoped().

template<typename OBJECT >
static OBJECT* RETAIN ( OBJECT *  obj)
inlinestatic

RETAIN() tests for NULL before calling retain() and returns obj.

Definition at line 84 of file Object.h.

Referenced by Scoped< TYPE >::operator=().

template<typename OBJECT >
static OBJECT* RETAIN ( Scoped< OBJECT > &  obj)
inlinestatic

Definition at line 233 of file Object.h.


LizardTech