acl  3.5.3.0
acl::fiber_sbox< T > 模板类 参考

#include <fiber_sem.hpp>

+ acl::fiber_sbox< T > 的协作图:

Public 成员函数

 fiber_sbox (bool free_obj=true)
 
 ~fiber_sbox (void)
 
void clear (bool free_obj=false)
 
void push (T *t)
 
T * pop (bool *found=NULL)
 

详细描述

template<typename T>
class acl::fiber_sbox< T >

在文件 fiber_sem.hpp47 行定义.

构造及析构函数说明

◆ fiber_sbox()

template<typename T >
acl::fiber_sbox< T >::fiber_sbox ( bool  free_obj = true)
inline

在文件 fiber_sem.hpp50 行定义.

51  : sem_(0), size_(0), free_obj_(free_obj) {}

◆ ~fiber_sbox()

template<typename T >
acl::fiber_sbox< T >::~fiber_sbox ( void  )
inline

在文件 fiber_sem.hpp53 行定义.

53 { clear(free_obj_); }
void clear(bool free_obj=false)
Definition: fiber_sem.hpp:55

引用了 acl::fiber_sbox< T >::clear().

+ 函数调用图:

成员函数说明

◆ clear()

template<typename T >
void acl::fiber_sbox< T >::clear ( bool  free_obj = false)
inline

在文件 fiber_sem.hpp55 行定义.

56  {
57  if (free_obj) {
58  for (typename std::list<T*>::iterator it =
59  sbox_.begin(); it != sbox_.end(); ++it) {
60 
61  delete *it;
62  }
63  }
64  sbox_.clear();
65  }

被这些函数引用 acl::fiber_sbox< T >::~fiber_sbox().

+ 这是这个函数的调用关系图:

◆ pop()

template<typename T >
T* acl::fiber_sbox< T >::pop ( bool *  found = NULL)
inline

在文件 fiber_sem.hpp73 行定义.

74  {
75  sem_.wait();
76  bool found_flag;
77  T* t = peek(found_flag);
78  assert(found_flag);
79  if (found) {
80  *found = true;
81  }
82  return t;
83  }
int wait(void)

引用了 acl::fiber_sem::wait().

+ 函数调用图:

◆ push()

template<typename T >
void acl::fiber_sbox< T >::push ( T *  t)
inline

在文件 fiber_sem.hpp67 行定义.

68  {
69  sbox_.push_back(t);
70  sem_.post();
71  }
int post(void)

引用了 acl::fiber_sem::post().

+ 函数调用图:

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