Ion
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
referent.h
Go to the documentation of this file.
1 
18 #ifndef ION_BASE_REFERENT_H_
19 #define ION_BASE_REFERENT_H_
20 
21 #include <algorithm>
22 
23 #include "base/macros.h"
24 #include "ion/base/allocatable.h"
25 #include "ion/base/lockguards.h"
26 #include "ion/base/logging.h"
27 #include "ion/base/shareable.h"
28 #include "ion/base/sharedptr.h"
29 #include "ion/port/atomic.h"
30 
31 namespace ion {
32 namespace base {
33 
49 class Referent : public Allocatable, public Shareable {
50  protected:
51  Referent() {}
52  ~Referent() override {}
53 };
54 
59 template <typename T> struct ReferentPtr {
60  typedef SharedPtr<T> Type;
61 };
62 
63 } // namespace base
64 } // namespace ion
65 
66 #endif // ION_BASE_REFERENT_H_
~Referent() override
Definition: referent.h:52
Shareable is an abstract base class for any object that can be shared via the SharedPtr class...
Definition: shareable.h:31
Thread-safe abstract base class.
Definition: referent.h:49
Allocatable is an abstract base class for classes whose memory is managed by an Allocator.
Definition: allocatable.h:60
A ReferentPtr is a smart shared pointer to an instance of some class derived from Referent...
Definition: referent.h:59
Copyright 2016 Google Inc.
SharedPtr< T > Type
Definition: referent.h:60
A SharedPtr is a smart shared pointer to an instance of some class that implements reference counting...
Definition: sharedptr.h:60