9#include <libssh/libssh.h>
13#include <boost/asio/version.hpp>
20#ifdef JOEDB_HAS_BROTLI
21#include <brotli/decode.h>
22#include <brotli/encode.h>
36 out <<
" file size: " << file.
get_size();
38 for (
int i = 0; i < 4; i++)
39 out <<
"\ncheckpoint[" << i <<
"]: " << header.
checkpoint[i];
41 out <<
"\nformat version: " << header.
version;
42 out <<
"\nsignature: ";
56 out <<
" https://www.joedb.org/\nfile format version: ";
60 out <<
"\nlibssh version: " << ssh_version(0) <<
" https://www.libssh.org/";
64 out <<
"\nasio version: ";
65 out << BOOST_ASIO_VERSION / 100000 <<
'.';
66 out << BOOST_ASIO_VERSION / 100 % 1000 <<
'.';
67 out << BOOST_ASIO_VERSION % 100;
68 out <<
" https://think-async.com/Asio/";
72 out <<
"\ncurl version: " << curl_version();
75#ifdef JOEDB_HAS_BROTLI
77 out <<
"\nbrotli decoder version: " << BrotliDecoderVersion();
78 out <<
"\nbrotli encoder version: " << BrotliEncoderVersion();
82 out <<
"\ncompiled: " << __DATE__ <<
' ' << __TIME__;
83 out <<
"\n__cplusplus = " << __cplusplus;
84 out <<
"\nsizeof(bool) = " <<
sizeof(bool);
85 out <<
"\nsizeof(size_t) = " <<
sizeof(size_t);
86 out <<
"\nsizeof(long) = " <<
sizeof(long);
87 out <<
"\nsizeof(std::streamoff) = " <<
sizeof(std::streamoff);
89 out <<
"\nsizeof(off_t) = " <<
sizeof(off_t);
92#ifdef JOEDB_HAS_BROKEN_POSIX_LOCKING
93 out <<
"\nbroken_posix_locking = true";
95 out <<
"\nbroken_posix_locking = false";
97#ifdef _POSIX_SYNCHRONIZED_IO
98 out <<
"\n_POSIX_SYNCHRONIZED_IO = " << _POSIX_SYNCHRONIZED_IO;
#define JOEDB_INCLUDE(name, extension)
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)