12static int write_server_blob(
int argc,
char **argv)
16 std::cerr <<
"usage: " << argv[0] <<
" <blob_string>\n";
17 std::cerr <<
"This program will try to connect to a local server.\n";
18 std::cerr <<
"Before running this program, start a joedb server with:\n";
19 std::cerr <<
"joedb_server --socket blobs.sock blobs.joedb\n";
20 std::cerr <<
"You can interactively read and write blobs this way:\n";
21 std::cerr <<
"joedb_client --db none server local blobs.sock\n";
36 for (
int i = 3; --i >= 0;)
38 const joedb::Blob blob = lock.get_journal().write_blob(argv[1]);
39 lock.checkpoint_and_push();
40 std::cout <<
"wrote blob with lock: " << blob.
get_position() <<
'\n';
41 std::cout <<
"blob: " << server_file.read_blob(blob) <<
'\n';
48 for (
int i = 3; --i >= 0;)
54 std::cout <<
"wrote blob with transaction: " << blob.
get_position() <<
'\n';
55 std::cout <<
"blob: " << server_file.read_blob(blob) <<
'\n';
61int main(
int argc,
char **argv)
int64_t get_position() const noexcept
Directly read file served from joedb_server.
Blob write_blob(const std::string &data) final
int main_exception_catcher(int(*main)(int, char **), int argc, char **argv)
Catch exception from main.