2020 */
2121#pragma once
2222
23+ #include " openPMD/RecordComponent.hpp"
2324#include " openPMD/auxiliary/ShareRawInternal.hpp"
2425#include " openPMD/backend/BaseRecordComponent.hpp"
2526
3637
3738namespace openPMD
3839{
39- namespace internal
40- {
41- class PatchRecordComponentData : public BaseRecordComponentData
42- {
43- public:
44- /* *
45- * Chunk reading/writing requests on the contained dataset.
46- */
47- std::queue<IOTask> m_chunks;
48-
49- PatchRecordComponentData (PatchRecordComponentData const &) = delete ;
50- PatchRecordComponentData (PatchRecordComponentData &&) = delete ;
51-
52- PatchRecordComponentData &
53- operator =(PatchRecordComponentData const &) = delete ;
54- PatchRecordComponentData &
55- operator =(PatchRecordComponentData &&) = delete ;
56-
57- PatchRecordComponentData ();
58-
59- void reset () override
60- {
61- BaseRecordComponentData::reset ();
62- m_chunks = std::queue<IOTask>();
63- }
64- };
65-
66- template <typename , typename >
67- class BaseRecordData ;
68- } // namespace internal
6940
7041/* *
7142 * @todo add support for constant patch record components
7243 */
73- class PatchRecordComponent : public BaseRecordComponent
44+ class PatchRecordComponent : public RecordComponent
7445{
7546 template <typename T, typename T_key, typename T_container>
7647 friend class Container ;
@@ -81,7 +52,6 @@ class PatchRecordComponent : public BaseRecordComponent
8152 friend class ParticlePatches ;
8253 friend class PatchRecord ;
8354 friend class ParticleSpecies ;
84- friend class internal ::PatchRecordComponentData;
8555
8656public:
8757 /* *
@@ -95,7 +65,7 @@ class PatchRecordComponent : public BaseRecordComponent
9565
9666 PatchRecordComponent &setUnitSI (double );
9767
98- virtual PatchRecordComponent &resetDataset (Dataset);
68+ PatchRecordComponent &resetDataset (Dataset) override ;
9969
10070 uint8_t getDimensionality () const ;
10171 Extent getExtent () const ;
@@ -119,48 +89,14 @@ class PatchRecordComponent : public BaseRecordComponent
11989OPENPMD_private
12090 // clang-format on
12191
122- void flush (std::string const &, internal::FlushParams const &);
123- virtual void read ();
124-
125- /* *
126- * @brief Check recursively whether this RecordComponent is dirty.
127- * It is dirty if any attribute or dataset is read from or written to
128- * the backend.
129- *
130- * @return true If dirty.
131- * @return false Otherwise.
132- */
133- bool dirtyRecursive () const ;
92+ using RecordComponent::flush;
13493
13594 // clang-format off
13695OPENPMD_protected
13796 // clang-format on
13897
139- using Data_t = internal::PatchRecordComponentData;
140-
141- std::shared_ptr<Data_t> m_patchRecordComponentData;
142-
14398 PatchRecordComponent ();
14499 PatchRecordComponent (NoInit);
145-
146- inline Data_t const &get () const
147- {
148- // cannot call this in the const overload
149- // setDatasetDefined(*m_recordComponentData);
150- return *m_patchRecordComponentData;
151- }
152-
153- inline Data_t &get ()
154- {
155- setDatasetDefined (*m_patchRecordComponentData);
156- return *m_patchRecordComponentData;
157- }
158-
159- inline void setData (std::shared_ptr<Data_t> data)
160- {
161- m_patchRecordComponentData = std::move (data);
162- BaseRecordComponent::setData (m_patchRecordComponentData);
163- }
164100}; // PatchRecordComponent
165101
166102template <typename T>
0 commit comments