aqnwb 0.1.0
Loading...
Searching...
No Matches
Device.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4
5#include "Utils.hpp"
6#include "io/BaseIO.hpp"
7#include "io/ReadIO.hpp"
9
10namespace AQNWB::NWB
11{
16class Device : public Container
17{
18public:
19 // Register the Device as a subclass of Container
21
22
27 Device(const std::string& path, std::shared_ptr<IO::BaseIO> io);
28
32 ~Device();
33
41 void initialize(const std::string& description,
42 const std::string& manufacturer);
43
44 // Define the data fields to expose for lazy read access
47 std::string,
48 "description",
49 Description of the series)
50
53 std::string,
54 "manufacturer",
55 Manufacturer of the device)
56};
57} // 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 > > readManufacturer() const
Device(const std::string &path, std::shared_ptr< IO::BaseIO > io)
Constructor.
Definition Device.cpp:10
~Device()
Destructor.
Definition Device.cpp:16
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readDescription() const
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