10#include <libssh/libssh.h>
14#include <boost/asio/version.hpp>
21#ifdef JOEDB_HAS_BROTLI
22#include <brotli/decode.h>
23#include <brotli/encode.h>
37 out <<
" file size: " << file.
get_size();
39 for (
int i = 0; i < 4; i++)
40 out <<
"\ncheckpoint[" << i <<
"]: " << header.
checkpoint[i];
42 out <<
"\nformat version: " << header.
version;
43 out <<
"\nsignature: ";
57 out <<
" https://www.joedb.org/\nfile format version: ";
61 out <<
"\nlibssh version: " << ssh_version(0) <<
" https://www.libssh.org/";
65 out <<
"\nasio version: ";
66 out << BOOST_ASIO_VERSION / 100000 <<
'.';
67 out << BOOST_ASIO_VERSION / 100 % 1000 <<
'.';
68 out << BOOST_ASIO_VERSION % 100;
69 out <<
" https://think-async.com/Asio/";
73 out <<
"\ncurl version: " << curl_version();
76#ifdef JOEDB_HAS_BROTLI
78 out <<
"\nbrotli decoder version: " << BrotliDecoderVersion();
79 out <<
"\nbrotli encoder version: " << BrotliEncoderVersion();
83 out <<
"\ncompiled: " << __DATE__ <<
' ' << __TIME__;
84 out <<
"\n__cplusplus = " << __cplusplus;
85 out <<
"\nsizeof(bool) = " <<
sizeof(bool);
86 out <<
"\nsizeof(size_t) = " <<
sizeof(size_t);
87 out <<
"\nsizeof(long) = " <<
sizeof(long);
88 out <<
"\nsizeof(std::streamoff) = " <<
sizeof(std::streamoff);
90 out <<
"\nsizeof(off_t) = " <<
sizeof(off_t);
94#ifdef JOEDB_HAS_BROKEN_POSIX_LOCKING
95 out <<
"\nbroken_posix_locking = true";
97 out <<
"\nbroken_posix_locking = false";
99#ifdef _POSIX_SYNCHRONIZED_IO
100 out <<
"\n_POSIX_SYNCHRONIZED_IO = " << _POSIX_SYNCHRONIZED_IO;
#define JOEDB_INCLUDE(name, extension)
#define JOEDB_SYSTEM_LOGGER
virtual int64_t get_size() const
Get the size of the file, or -1 if it is unknown.
virtual size_t pread(char *data, size_t size, int64_t offset) const
Read a range of bytes.
static constexpr uint32_t format_version
constexpr const char * get_version()
void about_joedb(std::ostream &out)
void dump_header(std::ostream &out, Abstract_File &file)
void write_string(std::ostream &out, const std::string &s, bool json)