Skip to content

Commit ee35dd1

Browse files
committed
wire logger
1 parent 77faa52 commit ee35dd1

6 files changed

Lines changed: 95 additions & 88 deletions

File tree

src/odr/file.cpp

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,14 @@ void File::copy(const std::string &path) const {
6060

6161
std::shared_ptr<internal::abstract::File> File::impl() const { return m_impl; }
6262

63-
std::vector<FileType> DecodedFile::list_file_types(const std::string &path) {
63+
std::vector<FileType> DecodedFile::list_file_types(const std::string &path,
64+
Logger &logger) {
6465
return internal::open_strategy::list_file_types(
65-
std::make_shared<internal::common::DiskFile>(path));
66+
std::make_shared<internal::common::DiskFile>(path), logger);
6667
}
6768

68-
std::vector<DecoderEngine>
69-
DecodedFile::list_decoder_engines(const std::string &path, FileType as) {
70-
return internal::open_strategy::list_decoder_engines(
71-
std::make_shared<internal::common::DiskFile>(path), as);
69+
std::vector<DecoderEngine> DecodedFile::list_decoder_engines(FileType as) {
70+
return internal::open_strategy::list_decoder_engines(as);
7271
}
7372

7473
DecodedFile::DecodedFile(std::shared_ptr<internal::abstract::DecodedFile> impl)
@@ -78,24 +77,26 @@ DecodedFile::DecodedFile(std::shared_ptr<internal::abstract::DecodedFile> impl)
7877
}
7978
}
8079

81-
DecodedFile::DecodedFile(const File &file)
82-
: DecodedFile(internal::open_strategy::open_file(file.impl())) {}
80+
DecodedFile::DecodedFile(const File &file, Logger &logger)
81+
: DecodedFile(internal::open_strategy::open_file(file.impl(), logger)) {}
8382

84-
DecodedFile::DecodedFile(const File &file, FileType as)
85-
: DecodedFile(internal::open_strategy::open_file(file.impl(), as)) {}
83+
DecodedFile::DecodedFile(const File &file, FileType as, Logger &logger)
84+
: DecodedFile(internal::open_strategy::open_file(file.impl(), as, logger)) {
85+
}
8686

87-
DecodedFile::DecodedFile(const std::string &path)
87+
DecodedFile::DecodedFile(const std::string &path, Logger &logger)
8888
: DecodedFile(internal::open_strategy::open_file(
89-
std::make_shared<internal::common::DiskFile>(path))) {}
89+
std::make_shared<internal::common::DiskFile>(path), logger)) {}
9090

91-
DecodedFile::DecodedFile(const std::string &path, FileType as)
91+
DecodedFile::DecodedFile(const std::string &path, FileType as, Logger &logger)
9292
: DecodedFile(internal::open_strategy::open_file(
93-
std::make_shared<internal::common::DiskFile>(path), as)) {}
93+
std::make_shared<internal::common::DiskFile>(path), as, logger)) {}
9494

9595
DecodedFile::DecodedFile(const std::string &path,
96-
const DecodePreference &preference)
96+
const DecodePreference &preference, Logger &logger)
9797
: DecodedFile(internal::open_strategy::open_file(
98-
std::make_shared<internal::common::DiskFile>(path), preference)) {}
98+
std::make_shared<internal::common::DiskFile>(path), preference,
99+
logger)) {}
99100

100101
File DecodedFile::file() const { return File(m_impl->file()); }
101102

@@ -227,9 +228,9 @@ DocumentFile::DocumentFile(
227228
std::shared_ptr<internal::abstract::DocumentFile> impl)
228229
: DecodedFile(impl), m_impl{std::move(impl)} {}
229230

230-
DocumentFile::DocumentFile(const std::string &path)
231+
DocumentFile::DocumentFile(const std::string &path, Logger &logger)
231232
: DocumentFile(internal::open_strategy::open_document_file(
232-
std::make_shared<internal::common::DiskFile>(path))) {}
233+
std::make_shared<internal::common::DiskFile>(path), logger)) {}
233234

234235
DocumentType DocumentFile::document_type() const {
235236
return m_impl->document_type();

src/odr/file.hpp

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#pragma once
22

3+
#include <odr/logger.hpp>
4+
35
#include <cstdint>
46
#include <memory>
57
#include <optional>
@@ -174,16 +176,19 @@ class File final {
174176
/// @brief Represents a decoded file.
175177
class DecodedFile {
176178
public:
177-
static std::vector<FileType> list_file_types(const std::string &path);
178-
static std::vector<DecoderEngine>
179-
list_decoder_engines(const std::string &path, FileType as);
179+
static std::vector<FileType> list_file_types(const std::string &path,
180+
Logger &logger = Logger::null());
181+
static std::vector<DecoderEngine> list_decoder_engines(FileType as);
180182

181183
explicit DecodedFile(std::shared_ptr<internal::abstract::DecodedFile> impl);
182-
explicit DecodedFile(const File &file);
183-
DecodedFile(const File &file, FileType as);
184-
explicit DecodedFile(const std::string &path);
185-
DecodedFile(const std::string &path, FileType as);
186-
DecodedFile(const std::string &path, const DecodePreference &preference);
184+
explicit DecodedFile(const File &file, Logger &logger = Logger::null());
185+
DecodedFile(const File &file, FileType as, Logger &logger = Logger::null());
186+
explicit DecodedFile(const std::string &path,
187+
Logger &logger = Logger::null());
188+
DecodedFile(const std::string &path, FileType as,
189+
Logger &logger = Logger::null());
190+
DecodedFile(const std::string &path, const DecodePreference &preference,
191+
Logger &logger = Logger::null());
187192

188193
[[nodiscard]] File file() const;
189194

@@ -255,7 +260,8 @@ class DocumentFile final : public DecodedFile {
255260
static FileMeta meta(const std::string &path);
256261

257262
explicit DocumentFile(std::shared_ptr<internal::abstract::DocumentFile>);
258-
explicit DocumentFile(const std::string &path);
263+
explicit DocumentFile(const std::string &path,
264+
Logger &logger = Logger::null());
259265

260266
[[nodiscard]] DocumentType document_type() const;
261267
[[nodiscard]] DocumentMeta document_meta() const;

src/odr/internal/open_strategy.cpp

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
#include <odr/exceptions.hpp>
44
#include <odr/file.hpp>
5+
#include <odr/logger.hpp>
56
#include <odr/odr.hpp>
67

78
#include <odr/internal/abstract/archive.hpp>
@@ -150,8 +151,8 @@ open_strategy::list_file_types(const std::shared_ptr<abstract::File> &file,
150151
return result;
151152
}
152153

153-
std::vector<DecoderEngine> open_strategy::list_decoder_engines(
154-
const std::shared_ptr<abstract::File> & /*file*/, FileType as) {
154+
std::vector<DecoderEngine>
155+
open_strategy::list_decoder_engines(const FileType as) {
155156
std::vector<DecoderEngine> result;
156157

157158
result.push_back(DecoderEngine::odr);
@@ -271,11 +272,11 @@ open_strategy::open_file(std::shared_ptr<abstract::File> file, Logger &logger) {
271272
}
272273
#endif
273274

274-
ODR_VERBOSE(logger, "unknown file type");
275+
ODR_ERROR(logger, "unknown file type");
275276
throw UnknownFileType();
276277
}
277278

278-
ODR_VERBOSE(logger, "unsupported file type");
279+
ODR_ERROR(logger, "unsupported file type");
279280
throw UnsupportedFileType(file_type);
280281
}
281282

@@ -307,8 +308,8 @@ open_strategy::open_file(std::shared_ptr<abstract::File> file, FileType as,
307308
}
308309
throw NoOpenDocumentFile();
309310
}
310-
ODR_VERBOSE(logger, "unsupported decoder engine for odf "
311-
<< decoder_engine_to_string(with));
311+
ODR_ERROR(logger, "unsupported decoder engine for odf "
312+
<< decoder_engine_to_string(with));
312313
throw UnsupportedDecoderEngine(with);
313314
}
314315

@@ -337,8 +338,8 @@ open_strategy::open_file(std::shared_ptr<abstract::File> file, FileType as,
337338
}
338339
throw NoOfficeOpenXmlFile();
339340
}
340-
ODR_VERBOSE(logger, "unsupported decoder engine for ooxml "
341-
<< decoder_engine_to_string(with));
341+
ODR_ERROR(logger, "unsupported decoder engine for ooxml "
342+
<< decoder_engine_to_string(with));
342343
throw UnsupportedDecoderEngine(with);
343344
}
344345

@@ -371,8 +372,8 @@ open_strategy::open_file(std::shared_ptr<abstract::File> file, FileType as,
371372
throw NoLegacyMicrosoftFile();
372373
}
373374
#endif
374-
ODR_VERBOSE(logger, "unsupported decoder engine for legacy ms "
375-
<< decoder_engine_to_string(with));
375+
ODR_ERROR(logger, "unsupported decoder engine for legacy ms "
376+
<< decoder_engine_to_string(with));
376377
throw UnsupportedDecoderEngine(with);
377378
}
378379

@@ -399,8 +400,8 @@ open_strategy::open_file(std::shared_ptr<abstract::File> file, FileType as,
399400
throw NoPdfFile();
400401
}
401402
#endif
402-
ODR_VERBOSE(logger, "unsupported decoder engine for pdf "
403-
<< decoder_engine_to_string(with));
403+
ODR_ERROR(logger, "unsupported decoder engine for pdf "
404+
<< decoder_engine_to_string(with));
404405
throw UnsupportedDecoderEngine(with);
405406
}
406407

@@ -417,8 +418,8 @@ open_strategy::open_file(std::shared_ptr<abstract::File> file, FileType as,
417418
}
418419
throw NoImageFile();
419420
}
420-
ODR_VERBOSE(logger, "unsupported decoder engine for image "
421-
<< decoder_engine_to_string(with));
421+
ODR_ERROR(logger, "unsupported decoder engine for image "
422+
<< decoder_engine_to_string(with));
422423
throw UnsupportedDecoderEngine(with);
423424
}
424425

@@ -434,8 +435,8 @@ open_strategy::open_file(std::shared_ptr<abstract::File> file, FileType as,
434435
}
435436
throw NoSvmFile();
436437
}
437-
ODR_VERBOSE(logger, "unsupported decoder engine for svm "
438-
<< decoder_engine_to_string(with));
438+
ODR_ERROR(logger, "unsupported decoder engine for svm "
439+
<< decoder_engine_to_string(with));
439440
throw UnsupportedDecoderEngine(with);
440441
}
441442

@@ -450,8 +451,8 @@ open_strategy::open_file(std::shared_ptr<abstract::File> file, FileType as,
450451
}
451452
throw NoTextFile();
452453
}
453-
ODR_VERBOSE(logger, "unsupported decoder engine for text file "
454-
<< decoder_engine_to_string(with));
454+
ODR_ERROR(logger, "unsupported decoder engine for text file "
455+
<< decoder_engine_to_string(with));
455456
throw UnsupportedDecoderEngine(with);
456457
}
457458

@@ -467,8 +468,8 @@ open_strategy::open_file(std::shared_ptr<abstract::File> file, FileType as,
467468
}
468469
throw NoCsvFile();
469470
}
470-
ODR_VERBOSE(logger, "unsupported decoder engine for csv "
471-
<< decoder_engine_to_string(with));
471+
ODR_ERROR(logger, "unsupported decoder engine for csv "
472+
<< decoder_engine_to_string(with));
472473
throw UnsupportedDecoderEngine(with);
473474
}
474475

@@ -484,8 +485,8 @@ open_strategy::open_file(std::shared_ptr<abstract::File> file, FileType as,
484485
}
485486
throw NoJsonFile();
486487
}
487-
ODR_VERBOSE(logger, "unsupported decoder engine for json "
488-
<< decoder_engine_to_string(with));
488+
ODR_ERROR(logger, "unsupported decoder engine for json "
489+
<< decoder_engine_to_string(with));
489490
throw UnsupportedDecoderEngine(with);
490491
}
491492

@@ -501,8 +502,8 @@ open_strategy::open_file(std::shared_ptr<abstract::File> file, FileType as,
501502
}
502503
throw NoZipFile();
503504
}
504-
ODR_VERBOSE(logger, "unsupported decoder engine for zip "
505-
<< decoder_engine_to_string(with));
505+
ODR_ERROR(logger, "unsupported decoder engine for zip "
506+
<< decoder_engine_to_string(with));
506507
throw UnsupportedDecoderEngine(with);
507508
}
508509

@@ -518,14 +519,14 @@ open_strategy::open_file(std::shared_ptr<abstract::File> file, FileType as,
518519
}
519520
throw NoCfbFile();
520521
}
521-
ODR_VERBOSE(logger, "unsupported decoder engine for cfb "
522-
<< decoder_engine_to_string(with));
522+
ODR_ERROR(logger, "unsupported decoder engine for cfb "
523+
<< decoder_engine_to_string(with));
523524
throw UnsupportedDecoderEngine(with);
524525
}
525526

526-
ODR_VERBOSE(logger, "unsupported file type "
527-
<< file_type_to_string(as) << " with decoder engine "
528-
<< decoder_engine_to_string(with));
527+
ODR_ERROR(logger, "unsupported file type " << file_type_to_string(as)
528+
<< " with decoder engine "
529+
<< decoder_engine_to_string(with));
529530
throw UnsupportedFileType(as);
530531
}
531532

@@ -539,7 +540,7 @@ open_strategy::open_file(std::shared_ptr<abstract::File> file,
539540
probe_types.push_back(*preference.as_file_type);
540541
} else {
541542
ODR_VERBOSE(logger, "probe file types");
542-
std::vector<FileType> detected_types = list_file_types(file);
543+
std::vector<FileType> detected_types = list_file_types(file, logger);
543544
probe_types.insert(probe_types.end(), detected_types.begin(),
544545
detected_types.end());
545546
auto probe_types_end = std::unique(probe_types.begin(), probe_types.end());
@@ -562,7 +563,7 @@ open_strategy::open_file(std::shared_ptr<abstract::File> file,
562563
} else {
563564
ODR_VERBOSE(logger, "probe decoder engines");
564565
std::vector<DecoderEngine> detected_engines =
565-
list_decoder_engines(file, as);
566+
open_strategy::list_decoder_engines(as);
566567
probe_engines.insert(probe_engines.end(), detected_engines.begin(),
567568
detected_engines.end());
568569
auto probe_engines_end =
@@ -587,7 +588,7 @@ open_strategy::open_file(std::shared_ptr<abstract::File> file,
587588
}
588589
}
589590

590-
ODR_VERBOSE(logger, "no suitable file type found");
591+
ODR_ERROR(logger, "no suitable file type found");
591592
throw UnknownFileType();
592593
}
593594

@@ -646,8 +647,8 @@ open_strategy::open_document_file(std::shared_ptr<abstract::File> file,
646647
}
647648
}
648649

649-
ODR_VERBOSE(logger, "unsupported file type for document file "
650-
<< file_type_to_string(file_type));
650+
ODR_ERROR(logger, "unsupported file type for document file "
651+
<< file_type_to_string(file_type));
651652
throw NoDocumentFile();
652653
}
653654

src/odr/internal/open_strategy.hpp

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
#pragma once
22

3-
#include <odr/logger.hpp>
4-
53
#include <memory>
64
#include <vector>
75

86
namespace odr {
97
enum class FileType;
108
enum class DecoderEngine;
119
struct DecodePreference;
10+
class Logger;
1211
} // namespace odr
1312

1413
namespace odr::internal::abstract {
@@ -24,26 +23,23 @@ class Path;
2423
namespace odr::internal::open_strategy {
2524
std::vector<FileType>
2625
list_file_types(const std::shared_ptr<internal::abstract::File> &file,
27-
Logger &logger = Logger::null());
28-
std::vector<DecoderEngine>
29-
list_decoder_engines(const std::shared_ptr<internal::abstract::File> &file,
30-
FileType as);
26+
Logger &logger);
27+
std::vector<DecoderEngine> list_decoder_engines(FileType as);
3128

3229
std::unique_ptr<internal::abstract::DecodedFile>
33-
open_file(std::shared_ptr<internal::abstract::File> file,
34-
Logger &logger = Logger::null());
30+
open_file(std::shared_ptr<internal::abstract::File> file, Logger &logger);
3531
std::unique_ptr<internal::abstract::DecodedFile>
3632
open_file(std::shared_ptr<internal::abstract::File> file, FileType as,
37-
Logger &logger = Logger::null());
33+
Logger &logger);
3834

3935
std::unique_ptr<internal::abstract::DecodedFile>
4036
open_file(std::shared_ptr<internal::abstract::File> file, FileType as,
41-
DecoderEngine with, Logger &logger = Logger::null());
37+
DecoderEngine with, Logger &logger);
4238
std::unique_ptr<internal::abstract::DecodedFile>
4339
open_file(std::shared_ptr<internal::abstract::File> file,
44-
const DecodePreference &preference, Logger &logger = Logger::null());
40+
const DecodePreference &preference, Logger &logger);
4541

4642
std::unique_ptr<internal::abstract::DocumentFile>
4743
open_document_file(std::shared_ptr<internal::abstract::File> file,
48-
Logger &logger = Logger::null());
44+
Logger &logger);
4945
} // namespace odr::internal::open_strategy

src/odr/odr.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -229,20 +229,20 @@ std::vector<odr::FileType> odr::list_file_types(const std::string &path) {
229229
return DecodedFile::list_file_types(path);
230230
}
231231

232-
std::vector<odr::DecoderEngine>
233-
odr::list_decoder_engines(const std::string &path, const FileType as) {
234-
return DecodedFile::list_decoder_engines(path, as);
232+
std::vector<odr::DecoderEngine> odr::list_decoder_engines(const FileType as) {
233+
return DecodedFile::list_decoder_engines(as);
235234
}
236235

237-
odr::DecodedFile odr::open(const std::string &path) {
238-
return DecodedFile(path);
236+
odr::DecodedFile odr::open(const std::string &path, Logger &logger) {
237+
return DecodedFile(path, logger);
239238
}
240239

241-
odr::DecodedFile odr::open(const std::string &path, const FileType as) {
242-
return DecodedFile(path, as);
240+
odr::DecodedFile odr::open(const std::string &path, const FileType as,
241+
Logger &logger) {
242+
return DecodedFile(path, as, logger);
243243
}
244244

245245
odr::DecodedFile odr::open(const std::string &path,
246-
const DecodePreference &preference) {
247-
return DecodedFile(path, preference);
246+
const DecodePreference &preference, Logger &logger) {
247+
return DecodedFile(path, preference, logger);
248248
}

0 commit comments

Comments
 (0)