Choreonoid
1.1
メインページ
関連ページ
ネームスペース
クラス
ファイル
ファイル一覧
ファイルメンバ
src
Util
Referenced.h
説明を見る。
1
5
#ifndef CNOID_UTIL_REFERENCED_H_INCLUDED
6
#define CNOID_UTIL_REFERENCED_H_INCLUDED
7
8
#include <boost/intrusive_ptr.hpp>
9
10
namespace
cnoid {
11
class
Referenced;
12
}
13
14
namespace
cnoid {
15
void
intrusive_ptr_add_ref
(
cnoid::Referenced
* obj);
16
void
intrusive_ptr_release
(
cnoid::Referenced
* obj);
17
}
18
19
namespace
cnoid {
20
21
class
Referenced
22
{
23
public
:
24
inline
Referenced
() { refCounter_ = 0; }
25
virtual
~Referenced
() { }
26
27
protected
:
28
inline
int
refCounter
() {
return
refCounter_; }
29
30
private
:
31
friend
void
intrusive_ptr_add_ref
(
Referenced
* obj);
32
friend
void
intrusive_ptr_release
(
Referenced
* obj);
33
34
int
refCounter_;
35
};
36
37
typedef
boost::intrusive_ptr<Referenced>
ReferencedPtr
;
38
}
39
40
namespace
cnoid
41
{
42
inline
void
intrusive_ptr_add_ref
(
cnoid::Referenced
* obj){
43
obj->refCounter_++;
44
}
45
46
inline
void
intrusive_ptr_release
(
cnoid::Referenced
* obj){
47
obj->refCounter_--;
48
if
(obj->refCounter_ == 0){
49
delete
obj;
50
}
51
}
52
};
53
54
#endif
Choreonoidに対してMon May 27 2013 21:54:56に生成されました。
1.8.1.2