aqnwb 0.1.0
Loading...
Searching...
No Matches
Container.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4#include <string>
5
7
8namespace AQNWB::NWB
9{
16{
17public:
18 // Register the Container class as a registered type
19 REGISTER_SUBCLASS(Container, "hdmf-common")
20
21
27 Container(const std::string& path, std::shared_ptr<IO::BaseIO> io);
28
32 virtual ~Container();
33
37 void initialize();
38
39 // Define the data fields to expose for lazy read access
42 std::string,
43 "neurodata_type",
44 The name of the type)
45
48 std::string,
49 "namespace",
50 The name of the namespace)
51};
52
53} // namespace AQNWB::NWB
#define REGISTER_SUBCLASS(T, NAMESPACE)
Macro to register a subclass with the RegisteredType class registry.
Definition RegisteredType.hpp:321
#define DEFINE_FIELD(name, storageObjectType, default_type, fieldPath, description)
Defines a lazy-loaded field accessor function.
Definition RegisteredType.hpp:355
Container(const std::string &path, std::shared_ptr< IO::BaseIO > io)
Constructor.
Definition Container.cpp:10
void initialize()
Initialize the container.
Definition Container.cpp:20
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readNeurodataType() const
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readNamespace() const
virtual ~Container()
Destructor.
Definition Container.cpp:17
RegisteredType(const std::string &path, std::shared_ptr< IO::BaseIO > io)
Constructor.
Definition RegisteredType.cpp:8
Namespace for all classes related to the NWB data standard.
Definition TimeSeries.hpp:12
constexpr auto AttributeField
Alias for AQNWB::Types::StorageObjectType::Attribute.
Definition RegisteredType.hpp:22