blob: 718b697fe2a0033760acfa44efe916af4976c232 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#ifndef CONTEXT_HH_
#define CONTEXT_HH_
namespace low_latency {
// A context class doesn't do much by itself. We just use it to provide a
// virtual destructor so we can store a bunch of shared_ptrs in the same
// container and rely on RTTI in the layer context. It also deletes the copy and
// move constructors for derived classes implicitly, and that's pretty much it.
//
// We _could_ do something weird and complicated where we define virtual pure
// hashing and equality functions so we can store them in an unordered_set, but
// it's just unnecessary complexity and doesn't allow us to perform 'do you
// exist' lookups without creating an object.
class Context {
public:
Context();
Context(const Context& context) = delete;
Context(Context&& context) = delete;
Context operator=(const Context& context) = delete;
Context operator=(Context&& context) = delete;
virtual ~Context();
};
} // namespace low_latency
#endif
|