.gitignore: add some more IDE / tools related file
[babeltrace.git] / src / cpp-common / bt2 / borrowed-object-proxy.hpp
CommitLineData
3b1517b9
PP
1/*
2 * Copyright (c) 2023 Philippe Proulx <pproulx@efficios.com>
3 *
4 * SPDX-License-Identifier: MIT
5 */
6
7#ifndef BABELTRACE_CPP_COMMON_BT2_BORROWED_OBJECT_PROXY_HPP
8#define BABELTRACE_CPP_COMMON_BT2_BORROWED_OBJECT_PROXY_HPP
9
10namespace bt2 {
11
12/*
13 * A proxy containing a valid borrowed object instance of `ObjT` to make
14 * Something::operator->() work when only a libbabeltrace2 object
15 * pointer is available.
16 */
17template <typename ObjT>
18class BorrowedObjectProxy final
19{
20public:
d246c457 21 explicit BorrowedObjectProxy(typename ObjT::LibObjPtr libObjPtr) noexcept : _mObj {libObjPtr}
3b1517b9
PP
22 {
23 }
24
25 const ObjT *operator->() const noexcept
26 {
27 return &_mObj;
28 }
29
30private:
31 ObjT _mObj;
32};
33
34} /* namespace bt2 */
35
36#endif /* BABELTRACE_CPP_COMMON_BT2_BORROWED_OBJECT_PROXY_HPP */
This page took 0.033606 seconds and 4 git commands to generate.