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#include "spec/core.hpp"
10
11namespace AQNWB::NWB
12{
17class Device : public Container
18{
19public:
20 // Register the Device as a subclass of Container
22
23
28 Device(const std::string& path, std::shared_ptr<IO::BaseIO> io);
29
33 ~Device();
34
42 void initialize(const std::string& description,
43 const std::string& manufacturer);
44
45 // Define the data fields to expose for lazy read access
47 std::string,
48 "description",
49 Description of the series)
50
52 std::string,
53 "manufacturer",
54 Manufacturer of the device)
55};
56} // namespace AQNWB::NWB
#define REGISTER_SUBCLASS(T, NAMESPACE)
Macro to register a subclass with the RegisteredType class registry.
Definition RegisteredType.hpp:410
#define DEFINE_ATTRIBUTE_FIELD(name, default_type, fieldPath, description)
Defines a lazy-loaded attribute field accessor function.
Definition RegisteredType.hpp:443
Container(const std::string &path, std::shared_ptr< IO::BaseIO > io)
Constructor.
Definition Container.cpp:10
Status 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:13
const std::string namespaceName
Definition core.hpp:21