MrSID Decode SDK for LiDAR Reference Manual
1.1.3.4427
|
#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... | |
Defines | |
#define | ABSTRACT_OBJECT(classname) |
Macros for defining boilerplate parts of derived Object classes. | |
#define | CONCRETE_OBJECT(classname) |
CONCRETE_OBJECT(): should be used when deriving classes that are concrete. | |
#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(). | |
template<typename OBJECT > | |
static void | RELEASE (OBJECT *&obj) |
Helper function for calling Object::release(). |
#define ABSTRACT_OBJECT | ( | classname | ) |
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.)
#define CONCRETE_OBJECT | ( | classname | ) |
ABSTRACT_OBJECT(classname); \ public: \ static classname *create(void)
#define IMPLEMENT_OBJECT_CREATE | ( | classname | ) | classname * classname::create(void) { return new classname; } |
static void RELEASE | ( | OBJECT *& | obj | ) | [inline, static] |
RELEASE() tests for NULL before calling release() and set obj to NULL.
Definition at line 101 of file Object.h.
Referenced by Scoped< TYPE >::operator=(), and Scoped< TYPE >::~Scoped().
static OBJECT* RETAIN | ( | OBJECT * | obj | ) | [inline, static] |
RETAIN() tests for NULL before calling retain() and returns obj.
Definition at line 90 of file Object.h.
Referenced by Scoped< TYPE >::operator=().