vg
tools for working with variation graphs
Classes | Namespaces | Typedefs | Functions
registry.hpp File Reference
#include <string>
#include <unordered_map>
#include <typeinfo>
#include <typeindex>
#include <type_traits>
#include <functional>
#include <iostream>
#include <vector>
#include <google/protobuf/util/type_resolver.h>

Classes

class  vg::io::Registry
 
struct  vg::io::Registry::Tables
 

Namespaces

 vg
 
 vg::io
 

Typedefs

using vg::io::message_consumer_function_t = function< void(const string &)>
 This is the type of a function that can be fed a series of messages. More...
 
using vg::io::message_sender_function_t = function< void(const message_consumer_function_t &)>
 This is the type of a function that can be given a message consumer to feed messages to. More...
 
using vg::io::load_function_t = function< void *(const message_sender_function_t &)>
 This is the type of a function that can allocate and load an object of unspecified type from a message source. More...
 
using vg::io::save_function_t = function< void(const void *, const message_consumer_function_t &)>
 This is the type of a function that can serialize an object of unspecified type to a message consumer. More...
 
using vg::io::bare_load_function_t = function< void *(istream &)>
 This is the type of a function that can load an object of unspecified type from a bare input stream. More...
 
using vg::io::bare_load_function_with_filename_t = function< void *(istream &, const string &)>
 Like above, but keep track of an optional (can be empty) filename (ie where stream comes from) More...
 
using vg::io::bare_save_function_t = function< void(const void *, ostream &)>
 This is the type of a function that can save an object of unspecified type to a bare output stream. More...
 

Functions

auto vg::io::wrap_bare_loader (function< void *(istream &)> istream_loader) -> load_function_t
 
void vg::io::with_function_calling_stream (const message_consumer_function_t &emit_message, const function< void(ostream &)> &use_stream)
 
auto vg::io::wrap_bare_saver (function< void(const void *, ostream &)> ostream_saver) -> save_function_t
 

Detailed Description

Handles bookkeeping for the various data type tags in stream files.

TO ADD A PROTOBUF TYPE: