1 #ifndef __NDS_COMPOSER_HH__
2 #define __NDS_COMPOSER_HH__
24 const NDS::connection::channel_names_type& channel_names,
27 bool buffers_have_been_initialized );
39 template <
typename T >
51 chans.reserve( buffers.size( ) );
55 std::back_inserter( chans ),
56 [&selector](
const std::string& name ) -> NDS::channel {
65 throw connection::daq_error(
67 "Internal client error, unable to "
68 "determine the channel meta data for a "
76 template <
typename T >
84 if ( ref_set.size( ) != buffers.size( ) )
89 for (
typename T::const_iterator cur_buf = ref_set.begin( );
90 cur_buf != ref_set.end( );
95 <<
"Initializing buffer for " << buffers[ j ]->Name( )
96 <<
" with " << buffers[ j ]->Samples( ) <<
" entries"
103 buffer::size_type start_sample,
104 buffer::size_type end_sample );
107 buffer::size_type cur_fill,
108 buffer::size_type offset_start,
109 buffer::size_type offset_end );
118 std::vector< std::unique_ptr< delayed_gap_handler > >
129 buffer::size_type start_sample,
130 buffer::size_type end_sample )
132 static const std::string tname(
".n,s-trend" );
133 static const std::string cmp(
".n," );
141 const std::string& name = cur_buffer.Name( );
142 if ( name.size( ) > tname.size( ) &&
144 name.size( ) - tname.size( ), cmp.size( ), cmp ) == 0 )
147 cur_buffer, start_sample, end_sample );
151 std::unique_ptr< delayed_gap_handler > tmp(
153 cur_buffer, start_sample, end_sample ) );
164 #endif // __NDS_COMPOSER_H__
virtual DLL_EXPORT std::unique_ptr< delayed_gap_handler > fill_gap(buffer &cur_buffer, buffer::size_type start_sample_offset, buffer::size_type end_sample_offset) const =0
DLL_EXPORT void add_segment(const buffers_type &cur_bufs)
Definition: nds_composer.cc:42
request_fragment::working_buffers & buffers
Definition: nds_composer.hh:113
Definition: nds_connection_ptype.hh:113
std::vector< buffer * > working_buffers
Definition: nds_request_fragment.hh:17
std::ostream & dout()
Definition: debug_stream.cc:23
bool finished
Definition: nds_composer.hh:122
void bounds_check(const buffer &cur_buffer, buffer::size_type cur_fill, buffer::size_type offset_start, buffer::size_type offset_end)
Definition: nds_composer.cc:167
Definition: nds_composer.hh:12
DLL_EXPORT void do_finish_gap_handling()
Definition: nds_composer.cc:126
const gap_handler & _gap_handler
Definition: nds_composer.hh:116
std::vector< std::unique_ptr< delayed_gap_handler > > delayed_handlers
Definition: nds_composer.hh:119
#define DLL_EXPORT
Definition: channel.h:12
selection_method
Definition: nds_channel_selection.hh:35
composer & operator=(const composer &other)=delete
bool initialized
Definition: nds_composer.hh:121
void fill_gap(buffer &cur_buffer, buffer::size_type start_sample, buffer::size_type end_sample)
Definition: nds_composer.hh:128
void initialize_buffers(const T &ref_set)
Definition: nds_composer.hh:78
#define DAQD_ERROR
Definition: daqc_response.h:17
const NDS::detail::buffer_initializer initializer
Definition: nds_composer.hh:115
Definition: nds_gap_handler.hh:44
Definition: nds_gap_handler.hh:28
void finish(T &selector)
Definition: nds_composer.hh:41
std::vector< channel > channels_type
Definition: nds_channel.hh:298
DLL_EXPORT void reset_buffer(buffer *cur_buffer, const channel &channel_info) const
Definition: nds_connection_ptype.cc:204
bool empty_is_safe
Definition: nds_composer.hh:120
std::vector< buffer::size_type > cur_progress
Definition: nds_composer.hh:117
std::vector< buffer > buffers_type
Definition: nds_buffer.hh:356
DLL_EXPORT std::unique_ptr< delayed_gap_handler > fill_gap(buffer &cur_buffer, buffer::size_type start_sample_offset, buffer::size_type end_sample_offset) const override
Definition: nds_gap_handler.cc:163
static fixed_point_gap_handler zero_gap_handler
Definition: nds_composer.hh:124
const NDS::connection::channel_names_type _channel_names
Definition: nds_composer.hh:114