Skip to content

Commit ee8de45

Browse files
committed
Optional debugging output for AbstractIOHandlerImpl::flush()
1 parent 270a0ae commit ee8de45

File tree

2 files changed

+340
-188
lines changed

2 files changed

+340
-188
lines changed

include/openPMD/IO/AbstractIOHandlerImpl.hpp

Lines changed: 1 addition & 188 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
#include "openPMD/auxiliary/DerefDynamicCast.hpp"
2727

2828
#include <future>
29-
#include <iostream>
3029

3130
namespace openPMD
3231
{
@@ -41,193 +40,7 @@ class AbstractIOHandlerImpl
4140

4241
virtual ~AbstractIOHandlerImpl() = default;
4342

44-
std::future<void> flush()
45-
{
46-
using namespace auxiliary;
47-
48-
while (!(*m_handler).m_work.empty())
49-
{
50-
IOTask &i = (*m_handler).m_work.front();
51-
try
52-
{
53-
switch (i.operation)
54-
{
55-
using O = Operation;
56-
case O::CREATE_FILE:
57-
createFile(
58-
i.writable,
59-
deref_dynamic_cast<Parameter<Operation::CREATE_FILE> >(
60-
i.parameter.get()));
61-
break;
62-
case O::CHECK_FILE:
63-
checkFile(
64-
i.writable,
65-
deref_dynamic_cast<Parameter<Operation::CHECK_FILE> >(
66-
i.parameter.get()));
67-
break;
68-
case O::CREATE_PATH:
69-
createPath(
70-
i.writable,
71-
deref_dynamic_cast<Parameter<O::CREATE_PATH> >(
72-
i.parameter.get()));
73-
break;
74-
case O::CREATE_DATASET:
75-
createDataset(
76-
i.writable,
77-
deref_dynamic_cast<Parameter<O::CREATE_DATASET> >(
78-
i.parameter.get()));
79-
break;
80-
case O::EXTEND_DATASET:
81-
extendDataset(
82-
i.writable,
83-
deref_dynamic_cast<Parameter<O::EXTEND_DATASET> >(
84-
i.parameter.get()));
85-
break;
86-
case O::OPEN_FILE:
87-
openFile(
88-
i.writable,
89-
deref_dynamic_cast<Parameter<O::OPEN_FILE> >(
90-
i.parameter.get()));
91-
break;
92-
case O::CLOSE_FILE:
93-
closeFile(
94-
i.writable,
95-
deref_dynamic_cast<Parameter<O::CLOSE_FILE> >(
96-
i.parameter.get()));
97-
break;
98-
case O::OPEN_PATH:
99-
openPath(
100-
i.writable,
101-
deref_dynamic_cast<Parameter<O::OPEN_PATH> >(
102-
i.parameter.get()));
103-
break;
104-
case O::CLOSE_PATH:
105-
closePath(
106-
i.writable,
107-
deref_dynamic_cast<Parameter<O::CLOSE_PATH> >(
108-
i.parameter.get()));
109-
break;
110-
case O::OPEN_DATASET:
111-
openDataset(
112-
i.writable,
113-
deref_dynamic_cast<Parameter<O::OPEN_DATASET> >(
114-
i.parameter.get()));
115-
break;
116-
case O::DELETE_FILE:
117-
deleteFile(
118-
i.writable,
119-
deref_dynamic_cast<Parameter<O::DELETE_FILE> >(
120-
i.parameter.get()));
121-
break;
122-
case O::DELETE_PATH:
123-
deletePath(
124-
i.writable,
125-
deref_dynamic_cast<Parameter<O::DELETE_PATH> >(
126-
i.parameter.get()));
127-
break;
128-
case O::DELETE_DATASET:
129-
deleteDataset(
130-
i.writable,
131-
deref_dynamic_cast<Parameter<O::DELETE_DATASET> >(
132-
i.parameter.get()));
133-
break;
134-
case O::DELETE_ATT:
135-
deleteAttribute(
136-
i.writable,
137-
deref_dynamic_cast<Parameter<O::DELETE_ATT> >(
138-
i.parameter.get()));
139-
break;
140-
case O::WRITE_DATASET:
141-
writeDataset(
142-
i.writable,
143-
deref_dynamic_cast<Parameter<O::WRITE_DATASET> >(
144-
i.parameter.get()));
145-
break;
146-
case O::WRITE_ATT:
147-
writeAttribute(
148-
i.writable,
149-
deref_dynamic_cast<Parameter<O::WRITE_ATT> >(
150-
i.parameter.get()));
151-
break;
152-
case O::READ_DATASET:
153-
readDataset(
154-
i.writable,
155-
deref_dynamic_cast<Parameter<O::READ_DATASET> >(
156-
i.parameter.get()));
157-
break;
158-
case O::GET_BUFFER_VIEW:
159-
getBufferView(
160-
i.writable,
161-
deref_dynamic_cast<Parameter<O::GET_BUFFER_VIEW> >(
162-
i.parameter.get()));
163-
break;
164-
case O::READ_ATT:
165-
readAttribute(
166-
i.writable,
167-
deref_dynamic_cast<Parameter<O::READ_ATT> >(
168-
i.parameter.get()));
169-
break;
170-
case O::LIST_PATHS:
171-
listPaths(
172-
i.writable,
173-
deref_dynamic_cast<Parameter<O::LIST_PATHS> >(
174-
i.parameter.get()));
175-
break;
176-
case O::LIST_DATASETS:
177-
listDatasets(
178-
i.writable,
179-
deref_dynamic_cast<Parameter<O::LIST_DATASETS> >(
180-
i.parameter.get()));
181-
break;
182-
case O::LIST_ATTS:
183-
listAttributes(
184-
i.writable,
185-
deref_dynamic_cast<Parameter<O::LIST_ATTS> >(
186-
i.parameter.get()));
187-
break;
188-
case O::ADVANCE:
189-
advance(
190-
i.writable,
191-
deref_dynamic_cast<Parameter<O::ADVANCE> >(
192-
i.parameter.get()));
193-
break;
194-
case O::AVAILABLE_CHUNKS:
195-
availableChunks(
196-
i.writable,
197-
deref_dynamic_cast<Parameter<O::AVAILABLE_CHUNKS> >(
198-
i.parameter.get()));
199-
break;
200-
case O::KEEP_SYNCHRONOUS:
201-
keepSynchronous(
202-
i.writable,
203-
deref_dynamic_cast<Parameter<O::KEEP_SYNCHRONOUS> >(
204-
i.parameter.get()));
205-
break;
206-
case O::DEREGISTER:
207-
deregister(
208-
i.writable,
209-
deref_dynamic_cast<Parameter<O::DEREGISTER> >(
210-
i.parameter.get()));
211-
break;
212-
}
213-
}
214-
catch (...)
215-
{
216-
std::cerr << "[AbstractIOHandlerImpl] IO Task "
217-
<< internal::operationAsString(i.operation)
218-
<< " failed with exception. Clearing IO queue and "
219-
"passing on the exception."
220-
<< std::endl;
221-
while (!m_handler->m_work.empty())
222-
{
223-
m_handler->m_work.pop();
224-
}
225-
throw;
226-
}
227-
(*m_handler).m_work.pop();
228-
}
229-
return std::future<void>();
230-
}
43+
std::future<void> flush();
23144

23245
/**
23346
* Close the file corresponding with the writable and release file handles.

0 commit comments

Comments
 (0)