24 #ifndef DC_STREAM_RECEIVE_HPP
25 #define DC_STREAM_RECEIVE_HPP
26 #include <boost/type_traits/is_base_of.hpp>
27 #include <graphlab/rpc/circular_char_buffer.hpp>
28 #include <graphlab/rpc/dc_internal_types.hpp>
29 #include <graphlab/rpc/dc_types.hpp>
30 #include <graphlab/rpc/dc_receive.hpp>
31 #include <graphlab/parallel/atomic.hpp>
32 #include <graphlab/parallel/pthread_tools.hpp>
35 class distributed_control;
49 class dc_stream_receive:
public dc_receive{
52 dc_stream_receive(distributed_control* dc,
procid_t associated_proc):
53 header_read(0), writebuffer(NULL),
54 write_buffer_written(0), dc(dc), associated_proc(associated_proc)
60 block_header_type cur_chunk_header;
62 size_t write_buffer_written;
65 distributed_control* dc;
72 char* get_buffer(
size_t& retbuflength);
75 char* advance_buffer(
char* c,
size_t wrotelength,
76 size_t& retbuflength);