RefBase Class

Header: #include "easyar/base.hpp"

Inherited By: AugmentedTarget, AugmentedTargetList, Augmenter, BarCodeScanner, CameraCalibration, CameraDevice, Frame, Image, ImageList, ImageTracker, Target, TargetList, VideoPlayer

Description

RefBase是大多数EasyAR类的基类。

RefBase与C++的std::shared_ptr行为类似,它是一个对真实对象的非常薄的封装。对于一个继承自RefBase的类 C ,你可以像std::shared_ptr< C_internal >一样使用。 C 所引用的内存是引用计数的,并且以类似于std::shared_ptr的方式管理。同时, C 的线程安全性与std::shared_ptr相同 。EasyAR里面继承于RefBase的类通常是延迟初始化的,也就是说在特定方法被调用之前,对象是无效的(operator bool()返回false)。当然如果你倾向于使用裸指针,完全可以在代码中使用 C* 。

Public Functions

RefBase()
RefBase(const RefBase& b)
virtual ~RefBase()
RefBase& operator=(const RefBase& b)
operator bool() const
bool operator ==(const RefBase& other)
const bool operator !=(const RefBase& other)
const template<class T> T cast_dynamic()
const template<class T> T cast_static()
const void clear()

RefBase()

创建RefBase对象。

RefBase(const RefBase& b)

创建RefBase对象并指向与 b 相同的内部对象。

virtual ~RefBase()

销毁对象。只有在没有其它引用的时候才会释放包括线程在内的所有资源。

RefBase& operator=(const RefBase& b)

赋值操作符。当前的RefBase将会指向与 b 相同的对象。

operator bool() const

在内部对象被销毁或没有引用内部对象的时候返回false,否则返回true。

bool operator ==(const RefBase& other) const

相等操作符,当对象和 other 指向相同内部对象的时候返回true,否则返回false。

bool operator !=(const RefBase& other) const

不等操作符,当对象和 other 指向不同内部对象的时候返回true,否则返回false。

template<class T> T cast_dynamic() const

类似于std::dynamic_pointer_cast。动态转换对象为 T 类型。

template<class T> T cast_static() const

类似于std::static_pointer_cast。静态转换对象为 T 类型。

void clear()

清除对象。包括线程在内的所有资源都将被释放。