|
Classes |
class | SAtom |
| Base class for a reference-counted object. More...
|
struct | SAtom::weak_atom_ptr |
| Represents a safe weak reference on an SAtom object. More...
|
class | SLightAtom |
| A variation of SAtom that only supports strong reference counts. More...
|
class | SLimAtom |
| A minimalistic variation of SAtom/SLightAtom that only supports strong reference counts. More...
|
class | sptr |
| Smart-pointer template that maintains a strong reference on a reference counted class. More...
|
class | TypeConversion |
| Compile-time check to see whether a type conversion is valid. More...
|
class | wptr |
| Smart-pointer template that maintains a weak reference on an SAtom class. More...
|
Reference Counting Macros |
These are macros for incremementing and decrementing reference counts, which use a special fast path on release builds. You would be much happier ignoring that these exist, and instead using the sptr<> and wptr<> smart pointers below.
|
#define | B_ATTEMPT_INC_STRONG(atom, who) atom->AttemptIncStrong(who) |
#define | B_ATTEMPT_INC_WEAK(atom, who) atom->AttemptIncWeak(who) |
#define | B_DEC_STRONG(atom, who) atom->DecStrong(who) |
#define | B_DEC_WEAK(atom, who) atom->DecWeak(who) |
#define | B_FORCE_INC_STRONG(atom, who) atom->ForceIncStrong(who) |
#define | B_INC_STRONG(atom, who) atom->IncStrong(who) |
#define | B_INC_WEAK(atom, who) atom->IncWeak(who) |
Defines |
#define | COMPARE(op) |
#define | COMPARE_FRIEND(op) |
#define | COMPARE_FRIEND(op) |
Enumerations |
enum | {
B_ATOM_REPORT_FORCE_LONG = 0x0001,
B_ATOM_REPORT_FORCE_SHORT = 0x0002,
B_ATOM_REPORT_FORCE_SUMMARY = 0x0003,
B_ATOM_REPORT_FORCE_MASK = 0x000f,
B_ATOM_REPORT_REMOVE_HEADER = 0x0010
} |
| Flags for SAtom debugging reports. More...
|
enum | { B_ATOM_FIRST_STRONG = 0x0001
} |
| Flags passed to SAtom::IncStrongAttempted(). More...
|
Functions |
template<class NEWTYPE, class TYPE> |
sptr< NEWTYPE > & | sptr_reinterpret_cast (const sptr< TYPE > &v) |
| Convenience to cast between sptr<> objects of different types.
|
template<class NEWTYPE, class TYPE> |
wptr< NEWTYPE > & | wptr_reinterpret_cast (const wptr< TYPE > &v) |
| Convenience to cast between wptr<> objects of different types.
|