fastdo  0.6.16
winux::SharedHandle< _HTy > 模板类 参考

引用计数共享句柄,管理各种资源的自动释放,赋值则引用计数加一。 更多...

#include <smartptr.hpp>

winux::SharedHandle< _HTy > 的协作图:

struct  SharedHandleData
 句柄数据结构体 更多...
 

Public 类型

typedef _HTy HType
 句柄类型 更多...
 

Public 成员函数

 SharedHandle ()
 构造函数0 更多...
 
 SharedHandle (_HTy h, _HTy failVal)
 构造函数1_1 更多...
 
template<typename _Dt >
 SharedHandle (_HTy h, _HTy failVal, _Dt dt)
 构造函数1_2 更多...
 
template<typename _HTy2 >
 SharedHandle (_HTy2 h, _HTy2 failVal)
 构造函数2_1。_HTy2为可直接转为_HTy的类型 更多...
 
template<typename _HTy2 , typename _Dt >
 SharedHandle (_HTy2 h, _HTy2 failVal, _Dt dt)
 构造函数2_2。_HTy2为可直接转为_HTy的类型 更多...
 
template<typename _HTy2 >
 SharedHandle (WeakHandle< _HTy2 > const &other)
 构造函数3。从弱句柄构建共享句柄 更多...
 
 ~SharedHandle ()
 析构函数 更多...
 
 SharedHandle (SharedHandle const &other)
 拷贝构造函数1 更多...
 
SharedHandleoperator= (SharedHandle const &other)
 拷贝赋值函数1 更多...
 
template<typename _HTy2 >
 SharedHandle (SharedHandle< _HTy2 > const &other)
 拷贝构造函数2。_HTy2为可直接转为_HTy的类型 更多...
 
template<typename _HTy2 >
SharedHandleoperator= (SharedHandle< _HTy2 > const &other)
 拷贝赋值函数2。_HTy2为可直接转为_HTy的类型 更多...
 
void attachNew (_HTy h, _HTy failVal)
 附加新句柄,管理新资源 更多...
 
template<typename _Dt >
void attachNew (_HTy h, _HTy failVal, _Dt dt)
 附加新句柄,管理新资源 更多...
 
template<typename _HTy2 >
void attachNew (_HTy2 h, _HTy2 failVal)
 附加新句柄,管理新资源。_HTy2为可直接转为_HTy的类型 更多...
 
template<typename _HTy2 , typename _Dt >
void attachNew (_HTy2 h, _HTy2 failVal, _Dt dt)
 附加新句柄,管理新资源。_HTy2为可直接转为_HTy的类型 更多...
 
void attach (SharedHandleData const &data, bool isIncRef)
 附加其他SharedHandle对象detach()出的句柄数据 更多...
 
template<typename _HTy2 >
void attach (typename SharedHandle< _HTy2 >::SharedHandleData const &data, bool isIncRef)
 附加其他SharedHandle对象detach()出的句柄数据。_HTy2为可直接转为_HTy的类型 更多...
 
template<typename _HTy2 >
void attach (_HTy2 h, SharedDeleterContext *ctx, bool isIncRef)
 附加其他SharedHandle对象detach()出的句柄和删除器场景。_HTy2为可直接转为_HTy的类型 更多...
 
SharedHandleData detach ()
 资源脱离管理,返回句柄数据 更多...
 
SharedHandleData peek () const
 窥视句柄数据 更多...
 
void reset ()
 释放资源并重置 更多...
 
_HTy get () const
 获取句柄 更多...
 
SharedDeleterContextgetContext () const
 
 operator bool () const
 判断是否在管理资源 更多...
 
bool operator< (SharedHandle const &other) const
 less,给MAP使用 更多...
 
_HTy operator-> ()
 
_HTy operator-> () const
 

Protected 成员函数

template<typename _HTy2 >
void _reset0 (_HTy2 newH, SharedDeleterContext *newCtx)
 减少自身引用计数,管理新资源 更多...
 
template<typename _HTy2 >
void _reset (_HTy2 otherH, SharedDeleterContext *otherCtx)
 增加另一个SharedHandle的资源引用计数,减少自身计数。管理另一个SharedHandle的资源 更多...
 
template<typename _HTy2 >
void _reset (SharedHandle< _HTy2 > const &other)
 增加另一个SharedHandle的资源引用计数,减少自身计数。管理另一个SharedHandle的资源 更多...
 

Protected 属性

SharedHandleData _self
 

友元

template<typename _HTy0 >
class SharedHandle
 
template<typename _HTy0 >
class WeakHandle
 

详细描述

template<typename _HTy>
class winux::SharedHandle< _HTy >

引用计数共享句柄,管理各种资源的自动释放,赋值则引用计数加一。

还能指定一个failVal指示资源分配失败后的句柄值,当不等于这个值时才会创建删除器场景释放资源

在文件 smartptr.hpp599 行定义.

成员类型定义说明

template<typename _HTy>
typedef _HTy winux::SharedHandle< _HTy >::HType

句柄类型

在文件 smartptr.hpp603 行定义.

构造及析构函数说明

template<typename _HTy>
winux::SharedHandle< _HTy >::SharedHandle ( )
inline

构造函数0

在文件 smartptr.hpp615 行定义.

template<typename _HTy>
winux::SharedHandle< _HTy >::SharedHandle ( _HTy  h,
_HTy  failVal 
)
inline

构造函数1_1

参数
[in]h新资源的句柄
[in]failVal分配资源失败的句柄值

在文件 smartptr.hpp621 行定义.

template<typename _HTy>
template<typename _Dt >
winux::SharedHandle< _HTy >::SharedHandle ( _HTy  h,
_HTy  failVal,
_Dt  dt 
)
inline

构造函数1_2

参数
[in]h新资源的句柄
[in]failVal分配资源失败的句柄值
[in]dt可调用删除器

在文件 smartptr.hpp629 行定义.

template<typename _HTy>
template<typename _HTy2 >
winux::SharedHandle< _HTy >::SharedHandle ( _HTy2  h,
_HTy2  failVal 
)
inline

构造函数2_1。_HTy2为可直接转为_HTy的类型

参数
[in]h新资源的句柄
[in]failVal分配资源失败的句柄值

在文件 smartptr.hpp636 行定义.

template<typename _HTy>
template<typename _HTy2 , typename _Dt >
winux::SharedHandle< _HTy >::SharedHandle ( _HTy2  h,
_HTy2  failVal,
_Dt  dt 
)
inline

构造函数2_2。_HTy2为可直接转为_HTy的类型

参数
[in]h新资源的句柄
[in]failVal分配资源失败的句柄值
[in]dt可调用删除器

在文件 smartptr.hpp644 行定义.

template<typename _HTy>
template<typename _HTy2 >
winux::SharedHandle< _HTy >::SharedHandle ( WeakHandle< _HTy2 > const &  other)
inlineexplicit

构造函数3。从弱句柄构建共享句柄

在文件 smartptr.hpp648 行定义.

template<typename _HTy>
winux::SharedHandle< _HTy >::~SharedHandle ( )
inline

析构函数

在文件 smartptr.hpp657 行定义.

template<typename _HTy>
winux::SharedHandle< _HTy >::SharedHandle ( SharedHandle< _HTy > const &  other)
inline

拷贝构造函数1

在文件 smartptr.hpp663 行定义.

template<typename _HTy>
template<typename _HTy2 >
winux::SharedHandle< _HTy >::SharedHandle ( SharedHandle< _HTy2 > const &  other)
inline

拷贝构造函数2。_HTy2为可直接转为_HTy的类型

在文件 smartptr.hpp677 行定义.

成员函数说明

template<typename _HTy>
SharedHandle& winux::SharedHandle< _HTy >::operator= ( SharedHandle< _HTy > const &  other)
inline

拷贝赋值函数1

在文件 smartptr.hpp669 行定义.

template<typename _HTy>
template<typename _HTy2 >
SharedHandle& winux::SharedHandle< _HTy >::operator= ( SharedHandle< _HTy2 > const &  other)
inline

拷贝赋值函数2。_HTy2为可直接转为_HTy的类型

在文件 smartptr.hpp684 行定义.

template<typename _HTy>
void winux::SharedHandle< _HTy >::attachNew ( _HTy  h,
_HTy  failVal 
)
inline

附加新句柄,管理新资源

参数
[in]h新资源的句柄
[in]failVal分配资源失败的句柄值

在文件 smartptr.hpp694 行定义.

template<typename _HTy>
template<typename _Dt >
void winux::SharedHandle< _HTy >::attachNew ( _HTy  h,
_HTy  failVal,
_Dt  dt 
)
inline

附加新句柄,管理新资源

参数
[in]h新资源的句柄
[in]failVal分配资源失败的句柄值
[in]dt可调用删除器

在文件 smartptr.hpp705 行定义.

template<typename _HTy>
template<typename _HTy2 >
void winux::SharedHandle< _HTy >::attachNew ( _HTy2  h,
_HTy2  failVal 
)
inline

附加新句柄,管理新资源。_HTy2为可直接转为_HTy的类型

参数
[in]h新资源的句柄
[in]failVal分配资源失败的句柄值

在文件 smartptr.hpp715 行定义.

template<typename _HTy>
template<typename _HTy2 , typename _Dt >
void winux::SharedHandle< _HTy >::attachNew ( _HTy2  h,
_HTy2  failVal,
_Dt  dt 
)
inline

附加新句柄,管理新资源。_HTy2为可直接转为_HTy的类型

参数
[in]h新资源的句柄
[in]failVal分配资源失败的句柄值
[in]dt可调用删除器

在文件 smartptr.hpp726 行定义.

template<typename _HTy>
void winux::SharedHandle< _HTy >::attach ( SharedHandleData const &  data,
bool  isIncRef 
)
inline

附加其他SharedHandle对象detach()出的句柄数据

若资源是新建而来,则isIncRef应设为false;
若资源是从另一个SharedHandle::detach()而来,则isIncRef应设为false;
若资源是从另一个SharedHandle窥视而来,则isIncRef应设为true。

在文件 smartptr.hpp736 行定义.

template<typename _HTy>
template<typename _HTy2 >
void winux::SharedHandle< _HTy >::attach ( typename SharedHandle< _HTy2 >::SharedHandleData const &  data,
bool  isIncRef 
)
inline

附加其他SharedHandle对象detach()出的句柄数据。_HTy2为可直接转为_HTy的类型

若资源是新建而来,则isIncRef应设为false;
若资源是从另一个SharedHandle::detach()而来,则isIncRef应设为false;
若资源是从另一个SharedHandle窥视而来,则isIncRef应设为true。

在文件 smartptr.hpp754 行定义.

template<typename _HTy>
template<typename _HTy2 >
void winux::SharedHandle< _HTy >::attach ( _HTy2  h,
SharedDeleterContext ctx,
bool  isIncRef 
)
inline

附加其他SharedHandle对象detach()出的句柄和删除器场景。_HTy2为可直接转为_HTy的类型

若资源是新建而来,则isIncRef应设为false;
若资源是从另一个SharedHandle::detach()而来,则isIncRef应设为false;
若资源是从另一个SharedHandle窥视而来,则isIncRef应设为true。

在文件 smartptr.hpp772 行定义.

template<typename _HTy>
SharedHandleData winux::SharedHandle< _HTy >::detach ( )
inline

资源脱离管理,返回句柄数据

在文件 smartptr.hpp785 行定义.

template<typename _HTy>
SharedHandleData winux::SharedHandle< _HTy >::peek ( ) const
inline

窥视句柄数据

在文件 smartptr.hpp794 行定义.

template<typename _HTy>
void winux::SharedHandle< _HTy >::reset ( )
inline

释放资源并重置

在文件 smartptr.hpp800 行定义.

template<typename _HTy>
_HTy winux::SharedHandle< _HTy >::get ( ) const
inline

获取句柄

在文件 smartptr.hpp806 行定义.

template<typename _HTy>
SharedDeleterContext* winux::SharedHandle< _HTy >::getContext ( ) const
inline

在文件 smartptr.hpp807 行定义.

template<typename _HTy>
winux::SharedHandle< _HTy >::operator bool ( ) const
inline

判断是否在管理资源

在文件 smartptr.hpp810 行定义.

template<typename _HTy>
bool winux::SharedHandle< _HTy >::operator< ( SharedHandle< _HTy > const &  other) const
inline

less,给MAP使用

在文件 smartptr.hpp813 行定义.

template<typename _HTy>
_HTy winux::SharedHandle< _HTy >::operator-> ( )
inline

在文件 smartptr.hpp815 行定义.

template<typename _HTy>
_HTy winux::SharedHandle< _HTy >::operator-> ( ) const
inline

在文件 smartptr.hpp820 行定义.

template<typename _HTy>
template<typename _HTy2 >
void winux::SharedHandle< _HTy >::_reset0 ( _HTy2  newH,
SharedDeleterContext newCtx 
)
inlineprotected

减少自身引用计数,管理新资源

在文件 smartptr.hpp828 行定义.

template<typename _HTy>
template<typename _HTy2 >
void winux::SharedHandle< _HTy >::_reset ( _HTy2  otherH,
SharedDeleterContext otherCtx 
)
inlineprotected

增加另一个SharedHandle的资源引用计数,减少自身计数。管理另一个SharedHandle的资源

在文件 smartptr.hpp838 行定义.

template<typename _HTy>
template<typename _HTy2 >
void winux::SharedHandle< _HTy >::_reset ( SharedHandle< _HTy2 > const &  other)
inlineprotected

增加另一个SharedHandle的资源引用计数,减少自身计数。管理另一个SharedHandle的资源

在文件 smartptr.hpp847 行定义.

友元及相关函数文档

template<typename _HTy>
template<typename _HTy0 >
friend class SharedHandle
friend

在文件 smartptr.hpp856 行定义.

template<typename _HTy>
template<typename _HTy0 >
friend class WeakHandle
friend

在文件 smartptr.hpp858 行定义.

类成员变量说明

template<typename _HTy>
SharedHandleData winux::SharedHandle< _HTy >::_self
protected

在文件 smartptr.hpp852 行定义.


该类的文档由以下文件生成: