echelon  0.8.0
hdf5/object_reference.hpp
1 // Copyright (c) 2012-2014 Christopher Hinz
2 //
3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 
6 #ifndef ECHELON_HDF5_OBJECT_REFERENCE_HPP
7 #define ECHELON_HDF5_OBJECT_REFERENCE_HPP
8 
9 #include <echelon/hdf5/precursor/object_reference.hpp>
10 #include <echelon/hdf5/precursor/handle.hpp>
11 #include <echelon/hdf5/object.hpp>
12 
13 #include <string>
14 
15 namespace echelon
16 {
17 namespace hdf5
18 {
26 {
27 public:
31 
36  explicit object_reference(const object& referenced_object);
37  explicit object_reference(hdf5::precursor::object_reference reference_wrapper_,
38  hdf5::precursor::handle any_valid_handle_);
39 
44  object operator*() const;
45 
50  explicit operator bool() const;
51 
54  const hdf5::precursor::object_reference& raw_ref() const
55  {
56  return reference_wrapper_;
57  }
58 
59 private:
60  hdf5::precursor::object_reference reference_wrapper_;
61  hdf5::precursor::handle any_valid_handle_;
62 };
63 
64 }
65 }
66 
67 #endif
echelon&#39;s core namespace
Definition: attribute.cpp:10
object operator*() const
Dereferences this reference.
Definition: hdf5/object_reference.cpp:32
const hdf5::precursor::object_reference & raw_ref() const
The underlying low-level reference.
Definition: hdf5/object_reference.hpp:54
A reference to an HDF5 object.
Definition: hdf5/object_reference.hpp:25
object_reference()
Creates a null reference.
Definition: hdf5/object_reference.cpp:16