yate学习--yateclass.h--class YATE_API GenObject

<span style="background-color: rgb(255, 255, 255);">yate学习</span>
<span style="background-color: rgb(255, 255, 255);">yateclass.h</span>
/**
 * An object with just a public virtual destructor 
 * 一个对象只有一个公共的虚拟析构函数
 */
class YATE_API GenObject
{
    YNOCOPY(GenObject); // no automatic copies please 请不要自动拷贝
public:
    /**
     * Default constructor
     * 默认构造函数
     */
    GenObject();

    /**
     * Destructor.
     * 析构函数
     */
    virtual ~GenObject() { setObjCounter(0); }

    /**
     * Check if the object is still valid and safe to access.
     * 检查对象是否仍然有效和安全的访问。
     * Note that you should not trust this result unless the object is locked
     *  by other means.
     * 注意,你不应该相信这个结果,
     * 除非对象锁通过其他方式。
     * @return True if the object is still useable
     * @返回True,如果对象仍然是可用的
     */
    virtual bool alive() const;

    /**
     * Destroys the object, disposes the memory.
     * 销毁这个对象,释放内存。
     */
    virtual void destruct();

    /**
     * Get a string representation of this object
     * 获得该对象的字符串表示
     * @return A reference to a String representing this object
     *  which is either null, the object itself (for objects derived from
     *  String) or some form of identification
     * 返回一个引用字符串表示这个对象,
     * 要么是null,对象本身(对于对象来自字
     * 符串)或某种形式的识别
     */
    virtual const String& toString() const;

    /**
     * Get a pointer to a derived class given that class name
     * 获取一个指向派生类的指针,因为类名
     * @param name Name of the class we are asking for
     * @参数name类名我们所要求的
     * @return Pointer to the requested class or NULL if this object doesn't implement it
     * @返回请求的类的指针或者NULL(如果这个对象没有实现)
     */
    virtual void* getObject(const String& name) const;

    /**
     * Helper method to get the pointer to a derived class
     * 助手方法指向派生类的指针
     * @param name Name of the class we are asking for
     * @param obj Pointer to the object to get derived class from
     * @参数obj是指向派生类的对象的指针
     * @return Pointer to the requested class or NULL if this object doesn't implement it
     * @返回请求的类的指针或者NULL(如果这个对象没有实现)
     */
    static inline void* getObject(const String& name, const GenObject* obj)
	{ return obj ? obj->getObject(name) : 0; }

    /**
     * Get the global state of object counting
     * 获得对象的全局状态计数
     * @return True if object counting is enabled
     * @返回True如果对象状态是使能的
     */
    static inline bool getObjCounting()
	{ return s_counting; }

    /**
     * Set the global state of object counting
     * 设置全局的对象计数状态
     * @param enable True to enable object counting, false to disable
     * @参数enable,True启用对象计数,false禁用
     */
    static inline void setObjCounting(bool enable)
	{ s_counting = enable; }

    /**
     * Get the counter of this object
     * 得到这个对象的计数器
     * @return Pointer to current counter object
     * @返回当前的计数器指针对象
     */
    inline NamedCounter* getObjCounter() const
	{ return m_counter; }

    /**
     * Set the counter of this object
     * 设置这个对象的计数器数
     * @param counter New counter object or NULL
     * @参数counter 新的计数器对象或NUL
     * @return Pointer to old counter object
     * @返回旧计数器指针对象
     */
    NamedCounter* setObjCounter(NamedCounter* counter);

    /**
     * Retrieve or allocate an object counter
     * 检索或分配一个对象计数器
     * @param name Name of the counter
     * @参数name 计数器的名字
     * @param create True to create a new counter if needed
     * @参数create, True 如果需要创建一个新的计数器
     * @return Pointer to existing or new counter object
     * @返回指向现有或新的计数器指针对象
     */
    static NamedCounter* getObjCounter(const String& name, bool create = true);

    /**
     * Access the object counters list
     * 访问对象计数器列表
     * @return Reference to the global object counters list
     * @返回列表全局对象的引用计数器
     */
    static ObjList& getObjCounters();

private:
    NamedCounter* m_counter;
    static bool s_counting;
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值