vg
tools for working with variation graphs
Namespaces | Functions | Variables
stream.hpp File Reference
#include <cassert>
#include <iostream>
#include <istream>
#include <fstream>
#include <functional>
#include <vector>
#include <list>
#include <limits>
#include "registry.hpp"
#include "message_iterator.hpp"
#include "protobuf_iterator.hpp"
#include "protobuf_emitter.hpp"

Namespaces

 vg
 
 vg::io
 

Functions

size_t vg::io::get_stream_length (std::istream &in)
 Get the length of the input stream, or std::numeric_limits<size_t>::max() if unavailable. More...
 
size_t vg::io::get_stream_position (std::istream &in)
 Get the current offset in the input stream, or std;:numeric_limits<size_t>::max() if unavailable. More...
 
void vg::io::finish (std::ostream &out, bool compressed)
 
template<typename T >
bool vg::io::write (std::ostream &out, size_t count, const std::function< T &(size_t)> &lambda, bool compressed=true)
 
template<typename T >
bool vg::io::write (std::ostream &out, size_t count, const std::function< T(size_t)> &lambda, bool compressed=true)
 
template<typename T >
bool vg::io::write_buffered (std::ostream &out, std::vector< T > &buffer, size_t buffer_limit, bool compressed=true)
 
template<typename T >
void vg::io::write_to_file (const T &item, const string &filename)
 Write a single message to a file. More...
 
template<typename T >
void vg::io::for_each (std::istream &in, const std::function< void(int64_t, T &)> &lambda, const std::function< void(size_t, size_t)> &progress=NO_PROGRESS)
 
template<typename T >
void vg::io::for_each (std::istream &in, const std::function< void(T &)> &lambda, const std::function< void(size_t, size_t)> &progress=NO_PROGRESS)
 
template<typename T >
void vg::io::for_each_parallel_impl (std::istream &in, const std::function< void(T &, T &)> &lambda2, const std::function< void(T &)> &lambda1, const std::function< bool(void)> &single_threaded_until_true, size_t batch_size, const std::function< void(size_t, size_t)> &progress=NO_PROGRESS)
 
template<typename T >
void vg::io::for_each_interleaved_pair_parallel (std::istream &in, const std::function< void(T &, T &)> &lambda2, size_t batch_size=256, const std::function< void(size_t, size_t)> &progress=NO_PROGRESS)
 
template<typename T >
void vg::io::for_each_interleaved_pair_parallel_after_wait (std::istream &in, const std::function< void(T &, T &)> &lambda2, const std::function< bool(void)> &single_threaded_until_true, size_t batch_size=256, const std::function< void(size_t, size_t)> &progress=NO_PROGRESS)
 
template<typename T >
void vg::io::for_each_parallel (std::istream &in, const std::function< void(T &)> &lambda1, size_t batch_size=256, const std::function< void(size_t, size_t)> &progress=NO_PROGRESS)
 

Variables

const std::function< void(size_t, size_t)> vg::io::NO_PROGRESS = [](size_t, size_t) {}
 
const std::function< bool(void)> vg::io::NO_WAIT = []() { return true; }