Beispiel #1
0
 static broker_ptr from(F fun) {
     // transform to STD function here, because GCC is unable
     // to select proper overload otherwise ...
     typedef decltype(fun((broker*) nullptr)) fres;
     std::function<fres(broker*)> stdfun{std::move(fun)};
     return from_impl(std::move(stdfun));
 }
 static void increment(
     hashed_index_node*& x,impl_pointer bbegin,impl_pointer bend)
 {
     impl_pointer xi=x->impl();
     trampoline::increment(xi,bbegin,bend);
     x=from_impl(xi);
 }
Beispiel #3
0
 static void increment(
   hashed_index_node*& x,
   hashed_index_node_impl* bbegin,hashed_index_node_impl* bend)
 {
   hashed_index_node_impl* xi=x->impl();
   impl_type::increment(xi,bbegin,bend);
   x=from_impl(xi);
 }
Beispiel #4
0
 static broker_ptr from(F fun,
                        input_stream_ptr in,
                        output_stream_ptr out,
                        Ts&&... args) {
     auto hdl = connection_handle::from_int(in->read_handle());
     return from_impl(std::bind(std::move(fun),
                                std::placeholders::_1,
                                hdl,
                                detail::fwd<Ts>(args)...),
                      std::move(in),
                      std::move(out));
 }
Beispiel #5
0
 static void decrement(sequenced_index_node*& x)
 {
   impl_pointer xi=x->impl();
   trampoline::decrement(xi);
   x=from_impl(xi);
 }
Beispiel #6
0
 static void advance(random_access_index_node*& x,std::ptrdiff_t n)
 {
   impl_pointer xi=x->impl();
   trampoline::advance(xi,n);
   x=from_impl(xi);
 }
Beispiel #7
0
 static void decrement(random_access_index_node*& x)
 {
   impl_pointer xi=x->impl();
   trampoline::decrement(xi);
   x=from_impl(xi);
 }
Beispiel #8
0
 static hashed_index_node* end(hashed_index_node* header)
 {
   return from_impl(impl_type::end(header->impl()));
 }