acl  3.5.3.0
aio_delay_free.hpp
浏览该文件的文档.
1 #pragma once
2 #include "../acl_cpp_define.hpp"
3 #include "../stdlib/noncopyable.hpp"
4 
5 namespace acl
6 {
7 
8 /**
9  * 需要被延迟释放的类继承此类后,可以调用 aio_handle:delay_free 来到达
10  * 延迟销毁的目的,避免了在递归过程中被立即释放时的对象被提前释放的问题
11  */
13 {
14 public:
15  aio_delay_free(void);
16  virtual ~aio_delay_free(void);
17 
18  /**
19  * 判定定时器是否正处于锁定状态,处于锁定状态的定时器是
20  * 不能被删除的,否则会造成内存严重错误
21  * @return {bool} 是否处于锁定状态,处于锁定状态的对象是
22  * 不允许被销毁的
23  */
24  bool locked(void) const;
25 
26  /**
27  * 允许子类设置子类对象的锁定对象,这样在定时器处理过程中就不会
28  * 自动调用子类对象的销毁过程
29  */
30  void set_locked(void);
31 
32  /**
33  * 允许子类取消类对象的锁定状态
34  */
35  void unset_locked(void);
36 
37  /**
38  * 销毁函数,在内部类 aio_timer_delay_free 对象中对需要做延迟释放
39  * 的类进行销毁
40  */
41  virtual void destroy(void) {}
42 
43 private:
44  bool locked_;
45  bool locked_fixed_;
46 };
47 
48 } // namespace acl
virtual void destroy(void)
#define ACL_CPP_API