9#include <libssh/libssh.h>
13#include <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 << ASIO_VERSION / 100000 <<
'.';
66 out << ASIO_VERSION / 100 % 1000 <<
'.';
67 out << 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 <<
"\nsizeof(bool) = " <<
sizeof(bool);
84 out <<
"\nsizeof(size_t) = " <<
sizeof(size_t);
85 out <<
"\nsizeof(long) = " <<
sizeof(long);
86 out <<
"\nsizeof(std::streamoff) = " <<
sizeof(std::streamoff);
88 out <<
"\nsizeof(off_t) = " <<
sizeof(off_t);
91#ifdef JOEDB_HAS_BROKEN_POSIX_LOCKING
92 out <<
"\nbroken_posix_locking = true";
94 out <<
"\nbroken_posix_locking = false";
96#ifdef _POSIX_SYNCHRONIZED_IO
97 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 dump_header(std::ostream &out, Buffered_File &file)
void about_joedb(std::ostream &out)
void write_string(std::ostream &out, const std::string &s, bool json)