Line data Source code
1 : #ifdef __PLUMED_HAS_ASMJIT 2 : // This file is part of AsmJit project <https://asmjit.com> 3 : // 4 : // See asmjit.h or LICENSE.md for license and copyright information 5 : // SPDX-License-Identifier: Zlib 6 : 7 : #include "api-build_p.h" 8 : #ifndef ASMJIT_NO_LOGGING 9 : 10 : #include "logger.h" 11 : #include "moved_string.h" 12 : #include "support.h" 13 : 14 : ASMJIT_BEGIN_NAMESPACE 15 : 16 : // Logger - Implementation 17 : // ======================= 18 : 19 0 : Logger::Logger() noexcept 20 0 : : _options() {} 21 0 : Logger::~Logger() noexcept {} 22 : 23 0 : Error Logger::logf(const char* fmt, ...) noexcept { 24 : Error err; 25 : va_list ap; 26 : 27 0 : va_start(ap, fmt); 28 0 : err = logv(fmt, ap); 29 0 : va_end(ap); 30 : 31 0 : return err; 32 : } 33 : 34 0 : Error Logger::logv(const char* fmt, va_list ap) noexcept { 35 : StringTmp<2048> sb; 36 0 : ASMJIT_PROPAGATE(sb.appendVFormat(fmt, ap)); 37 0 : return log(sb); 38 : } 39 : 40 : // FileLogger - Implementation 41 : // =========================== 42 : 43 0 : FileLogger::FileLogger(FILE* file) noexcept 44 0 : : _file(file) {} 45 0 : FileLogger::~FileLogger() noexcept {} 46 : 47 0 : Error FileLogger::_log(const char* data, size_t size) noexcept { 48 0 : if (!_file) 49 : return kErrorOk; 50 : 51 0 : if (size == SIZE_MAX) 52 0 : size = strlen(data); 53 : 54 0 : fwrite(data, 1, size, _file); 55 0 : return kErrorOk; 56 : } 57 : 58 : // StringLogger - Implementation 59 : // ============================= 60 : 61 0 : StringLogger::StringLogger() noexcept {} 62 0 : StringLogger::~StringLogger() noexcept {} 63 : 64 0 : Error StringLogger::_log(const char* data, size_t size) noexcept { 65 0 : return _content.append(data, size); 66 : } 67 : 68 : ASMJIT_END_NAMESPACE 69 : 70 : #endif 71 : 72 : #endif // __PLUMED_HAS_ASMJIT