// WebURLLoaderTestDelegate overrides:
        void didReceiveData(WebURLLoaderClient* originalClient, WebURLLoader* loader, const char* data, int dataLength, int encodedDataLength) override
        {
            EXPECT_EQ(34, dataLength) << "foo.html was not served in a single chunk";

            m_loaderClient = originalClient;
            m_loader = loader;
            for (int i = 0; i < dataLength; ++i)
                m_data.push(data[i]);

            {
                // Serve the first byte to the real WebURLLoaderCLient, which
                // should trigger frameDetach() due to committing a provisional
                // load.
                TemporaryChange<bool> dispatching(m_dispatchingDidReceiveData, true);
                dispatchOneByte();
            }
            // Serve the remaining bytes to complete the load.
            EXPECT_FALSE(m_data.empty());
            while (!m_data.empty())
                dispatchOneByte();
        }
Example #2
0
   /*!
     @brief cotangent generic tag

     Represents the cotangent function in generic contexts.

     @par Models:
        Hierarchy
   **/
    template <class T>
    struct cotangent_ : ext::elementwise_< cotangent_<T> >
    {
      /// @brief Parent hierarchy
      typedef ext::elementwise_< cotangent_<T> > parent;
      template<class... Args>
      static BOOST_FORCEINLINE BOOST_AUTO_DECLTYPE dispatch(Args&&... args)
      BOOST_AUTO_DECLTYPE_HEADER( dispatching( ext::adl_helper(), *(cotangent_*)0, static_cast<Args&&>(args)... ) )
      {
        return dispatching( ext::adl_helper(), cotangent_(), static_cast<Args&&>(args)... );
      }
    };
  }
  /*!
    cotangent with template selection.

    @par Semantic:

    For template selector @c Range in proper selector types choice
    and for every parameter of floating type T0:

    @code
    T0 r = cotangent<Range>(x);
Example #3
0
// What the f**k with adl_helper ? Well, as pointed out by Johannes Schaub
// it is mandated by the standard so ADL kicks in on resolving calls to
// dispatching without having to order them BEFORE the actual dispatch_call
// class definitions. Without it, the whole system brittles.
//==============================================================================
//==============================================================================
// Actual dispatching mechanism implementation
//==============================================================================
namespace boost { namespace dispatch { namespace meta
{
  struct adl_helper {};
  //============================================================================
  // Default dispatch overload set for catching calls to unsupported functor
  // overload or unregistered types.
  //============================================================================
  template< class Tag, class Site > BOOST_FORCEINLINE boost::dispatch::meta:: implement<tag::unknown_, Site, Tag()> dispatching ( meta::unknown_<Tag>, meta::unknown_<Site> , adl_helper = adl_helper() ) { boost::dispatch::meta::implement<tag::unknown_, Site , Tag() > that; return that; } template< class Tag, class Site , class A0> BOOST_FORCEINLINE boost::dispatch::meta:: implement<tag::unknown_, Site, Tag(typename meta::hierarchy_of<A0>::type)> dispatching ( meta::unknown_<Tag>, meta::unknown_<Site> , meta::unknown_<A0> , adl_helper = adl_helper() ) { boost::dispatch::meta::implement<tag::unknown_, Site , Tag(typename meta::hierarchy_of<A0>::type) > that; return that; } template< class Tag, class Site , class A0 , class A1> BOOST_FORCEINLINE boost::dispatch::meta:: implement<tag::unknown_, Site, Tag(typename meta::hierarchy_of<A0>::type , typename meta::hierarchy_of<A1>::type)> dispatching ( meta::unknown_<Tag>, meta::unknown_<Site> , meta::unknown_<A0> , meta::unknown_<A1> , adl_helper = adl_helper() ) { boost::dispatch::meta::implement<tag::unknown_, Site , Tag(typename meta::hierarchy_of<A0>::type , typename meta::hierarchy_of<A1>::type) > that; return that; } template< class Tag, class Site , class A0 , class A1 , class A2> BOOST_FORCEINLINE boost::dispatch::meta:: implement<tag::unknown_, Site, Tag(typename meta::hierarchy_of<A0>::type , typename meta::hierarchy_of<A1>::type , typename meta::hierarchy_of<A2>::type)> dispatching ( meta::unknown_<Tag>, meta::unknown_<Site> , meta::unknown_<A0> , meta::unknown_<A1> , meta::unknown_<A2> , adl_helper = adl_helper() ) { boost::dispatch::meta::implement<tag::unknown_, Site , Tag(typename meta::hierarchy_of<A0>::type , typename meta::hierarchy_of<A1>::type , typename meta::hierarchy_of<A2>::type) > that; return that; } template< class Tag, class Site , class A0 , class A1 , class A2 , class A3> BOOST_FORCEINLINE boost::dispatch::meta:: implement<tag::unknown_, Site, Tag(typename meta::hierarchy_of<A0>::type , typename meta::hierarchy_of<A1>::type , typename meta::hierarchy_of<A2>::type , typename meta::hierarchy_of<A3>::type)> dispatching ( meta::unknown_<Tag>, meta::unknown_<Site> , meta::unknown_<A0> , meta::unknown_<A1> , meta::unknown_<A2> , meta::unknown_<A3> , adl_helper = adl_helper() ) { boost::dispatch::meta::implement<tag::unknown_, Site , Tag(typename meta::hierarchy_of<A0>::type , typename meta::hierarchy_of<A1>::type , typename meta::hierarchy_of<A2>::type , typename meta::hierarchy_of<A3>::type) > that; return that; } template< class Tag, class Site , class A0 , class A1 , class A2 , class A3 , class A4> BOOST_FORCEINLINE boost::dispatch::meta:: implement<tag::unknown_, Site, Tag(typename meta::hierarchy_of<A0>::type , typename meta::hierarchy_of<A1>::type , typename meta::hierarchy_of<A2>::type , typename meta::hierarchy_of<A3>::type , typename meta::hierarchy_of<A4>::type)> dispatching ( meta::unknown_<Tag>, meta::unknown_<Site> , meta::unknown_<A0> , meta::unknown_<A1> , meta::unknown_<A2> , meta::unknown_<A3> , meta::unknown_<A4> , adl_helper = adl_helper() ) { boost::dispatch::meta::implement<tag::unknown_, Site , Tag(typename meta::hierarchy_of<A0>::type , typename meta::hierarchy_of<A1>::type , typename meta::hierarchy_of<A2>::type , typename meta::hierarchy_of<A3>::type , typename meta::hierarchy_of<A4>::type) > that; return that; } template< class Tag, class Site , class A0 , class A1 , class A2 , class A3 , class A4 , class A5> BOOST_FORCEINLINE boost::dispatch::meta:: implement<tag::unknown_, Site, Tag(typename meta::hierarchy_of<A0>::type , typename meta::hierarchy_of<A1>::type , typename meta::hierarchy_of<A2>::type , typename meta::hierarchy_of<A3>::type , typename meta::hierarchy_of<A4>::type , typename meta::hierarchy_of<A5>::type)> dispatching ( meta::unknown_<Tag>, meta::unknown_<Site> , meta::unknown_<A0> , meta::unknown_<A1> , meta::unknown_<A2> , meta::unknown_<A3> , meta::unknown_<A4> , meta::unknown_<A5> , adl_helper = adl_helper() ) { boost::dispatch::meta::implement<tag::unknown_, Site , Tag(typename meta::hierarchy_of<A0>::type , typename meta::hierarchy_of<A1>::type , typename meta::hierarchy_of<A2>::type , typename meta::hierarchy_of<A3>::type , typename meta::hierarchy_of<A4>::type , typename meta::hierarchy_of<A5>::type) > that; return that; }
} } }
//==============================================================================
// Local macro to generate the dispatch selector
//==============================================================================
/**/
namespace boost { namespace dispatch { namespace meta
{
  //==============================================================================
  // dispatch_call finds the proper call overload for evaluating a given
  // functor over a set of types on a given site
  //==============================================================================
  template<class Sig, class Site> struct dispatch_call;
  template< class Tag, class Site > struct dispatch_call<Tag(), Site> { typedef BOOST_DISPATCH_TYPEOF ( dispatching ( (typename meta::hierarchy_of<Tag>::type()) , (typename meta::hierarchy_of<Site>::type()) , adl_helper() ) ) type; }; template< class Tag, class Site , class A0 > struct dispatch_call<Tag(A0), Site> { typedef BOOST_DISPATCH_TYPEOF ( dispatching ( (typename meta::hierarchy_of<Tag>::type()) , (typename meta::hierarchy_of<Site>::type()) , (typename meta::hierarchy_of<A0>::type()) , adl_helper() ) ) type; }; template< class Tag, class Site , class A0 , class A1 > struct dispatch_call<Tag(A0 , A1), Site> { typedef BOOST_DISPATCH_TYPEOF ( dispatching ( (typename meta::hierarchy_of<Tag>::type()) , (typename meta::hierarchy_of<Site>::type()) , (typename meta::hierarchy_of<A0>::type()) , (typename meta::hierarchy_of<A1>::type()) , adl_helper() ) ) type; }; template< class Tag, class Site , class A0 , class A1 , class A2 > struct dispatch_call<Tag(A0 , A1 , A2), Site> { typedef BOOST_DISPATCH_TYPEOF ( dispatching ( (typename meta::hierarchy_of<Tag>::type()) , (typename meta::hierarchy_of<Site>::type()) , (typename meta::hierarchy_of<A0>::type()) , (typename meta::hierarchy_of<A1>::type()) , (typename meta::hierarchy_of<A2>::type()) , adl_helper() ) ) type; }; template< class Tag, class Site , class A0 , class A1 , class A2 , class A3 > struct dispatch_call<Tag(A0 , A1 , A2 , A3), Site> { typedef BOOST_DISPATCH_TYPEOF ( dispatching ( (typename meta::hierarchy_of<Tag>::type()) , (typename meta::hierarchy_of<Site>::type()) , (typename meta::hierarchy_of<A0>::type()) , (typename meta::hierarchy_of<A1>::type()) , (typename meta::hierarchy_of<A2>::type()) , (typename meta::hierarchy_of<A3>::type()) , adl_helper() ) ) type; }; template< class Tag, class Site , class A0 , class A1 , class A2 , class A3 , class A4 > struct dispatch_call<Tag(A0 , A1 , A2 , A3 , A4), Site> { typedef BOOST_DISPATCH_TYPEOF ( dispatching ( (typename meta::hierarchy_of<Tag>::type()) , (typename meta::hierarchy_of<Site>::type()) , (typename meta::hierarchy_of<A0>::type()) , (typename meta::hierarchy_of<A1>::type()) , (typename meta::hierarchy_of<A2>::type()) , (typename meta::hierarchy_of<A3>::type()) , (typename meta::hierarchy_of<A4>::type()) , adl_helper() ) ) type; }; template< class Tag, class Site , class A0 , class A1 , class A2 , class A3 , class A4 , class A5 > struct dispatch_call<Tag(A0 , A1 , A2 , A3 , A4 , A5), Site> { typedef BOOST_DISPATCH_TYPEOF ( dispatching ( (typename meta::hierarchy_of<Tag>::type()) , (typename meta::hierarchy_of<Site>::type()) , (typename meta::hierarchy_of<A0>::type()) , (typename meta::hierarchy_of<A1>::type()) , (typename meta::hierarchy_of<A2>::type()) , (typename meta::hierarchy_of<A3>::type()) , (typename meta::hierarchy_of<A4>::type()) , (typename meta::hierarchy_of<A5>::type()) , adl_helper() ) ) type; };
} } }
Example #4
0
 BOOST_FORCEINLINE typename result<generic_dispatcher(Args&&...)>::type
 operator()(Args&&... args) const
 {
   return dispatching(meta::adl_helper(), Tag(), boost::dispatch::default_site_t<Site>(), boost::dispatch::meta::hierarchy_of_t<Args&&>()...)(static_cast<Args&&>(args)...);
 }
Example #5
0
           result_of< decltype(dispatching(meta::adl_helper(), Tag(), boost::dispatch::default_site_t<Site>(), boost::dispatch::meta::hierarchy_of_t<Args>()...))(Args...) >
    {
    };

    template<class... Args>
    BOOST_FORCEINLINE typename result<generic_dispatcher(Args&&...)>::type
    operator()(Args&&... args) const
    {
      return dispatching(meta::adl_helper(), Tag(), boost::dispatch::default_site_t<Site>(), boost::dispatch::meta::hierarchy_of_t<Args&&>()...)(static_cast<Args&&>(args)...);
    }
    #else
    template<class... Args>
    BOOST_FORCEINLINE auto
    operator()(Args&&... args) const
    BOOST_AUTO_DECLTYPE_BODY_SFINAE(
      dispatching(meta::adl_helper(), Tag(), boost::dispatch::default_site_t<Site>(), boost::dispatch::meta::hierarchy_of_t<Args&&>()...)(static_cast<Args&&>(args)...)
    )
    #endif
  };
} }

namespace boost { namespace simd { namespace ext
{
  struct adl_helper {};

  template<class Tag, class Site, class... Ts>
  BOOST_FORCEINLINE boost::dispatch::generic_dispatcher<Tag, Site>
  dispatching(adl_helper, unknown_<Tag>, unknown_<Site>, unknown_<Ts>...)
  {
    return boost::dispatch::generic_dispatcher<Tag, Site>();
  }
Example #6
0
// it is mandated by the standard so ADL kicks in on resolving calls to
// dispatching without having to order them BEFORE the actual dispatch_call
// class definitions. Without it, the whole system brittles.
//==============================================================================
//==============================================================================
// Actual dispatching mechanism implementation
//==============================================================================
namespace boost { namespace dispatch { namespace meta
{
  struct adl_helper {};
  //============================================================================
  // Default dispatch overload set for catching calls to unsupported functor
  // overload or unregistered types.
  //============================================================================
  template< class Tag, class Site > BOOST_FORCEINLINE boost::dispatch::meta:: implement<tag::unknown_, Site, Tag()> dispatching ( meta::unknown_<Tag>, meta::unknown_<Site> , adl_helper = adl_helper() ) { boost::dispatch::meta::implement<tag::unknown_, Site , Tag() > that; return that; } template< class Tag, class Site , class A0> BOOST_FORCEINLINE boost::dispatch::meta:: implement<tag::unknown_, Site, Tag(A0)> dispatching ( meta::unknown_<Tag>, meta::unknown_<Site> , meta::unknown_<A0> , adl_helper = adl_helper() ) { boost::dispatch::meta::implement<tag::unknown_, Site , Tag(A0) > that; return that; } template< class Tag, class Site , class A0 , class A1> BOOST_FORCEINLINE boost::dispatch::meta:: implement<tag::unknown_, Site, Tag(A0 , A1)> dispatching ( meta::unknown_<Tag>, meta::unknown_<Site> , meta::unknown_<A0> , meta::unknown_<A1> , adl_helper = adl_helper() ) { boost::dispatch::meta::implement<tag::unknown_, Site , Tag(A0 , A1) > that; return that; } template< class Tag, class Site , class A0 , class A1 , class A2> BOOST_FORCEINLINE boost::dispatch::meta:: implement<tag::unknown_, Site, Tag(A0 , A1 , A2)> dispatching ( meta::unknown_<Tag>, meta::unknown_<Site> , meta::unknown_<A0> , meta::unknown_<A1> , meta::unknown_<A2> , adl_helper = adl_helper() ) { boost::dispatch::meta::implement<tag::unknown_, Site , Tag(A0 , A1 , A2) > that; return that; } template< class Tag, class Site , class A0 , class A1 , class A2 , class A3> BOOST_FORCEINLINE boost::dispatch::meta:: implement<tag::unknown_, Site, Tag(A0 , A1 , A2 , A3)> dispatching ( meta::unknown_<Tag>, meta::unknown_<Site> , meta::unknown_<A0> , meta::unknown_<A1> , meta::unknown_<A2> , meta::unknown_<A3> , adl_helper = adl_helper() ) { boost::dispatch::meta::implement<tag::unknown_, Site , Tag(A0 , A1 , A2 , A3) > that; return that; } template< class Tag, class Site , class A0 , class A1 , class A2 , class A3 , class A4> BOOST_FORCEINLINE boost::dispatch::meta:: implement<tag::unknown_, Site, Tag(A0 , A1 , A2 , A3 , A4)> dispatching ( meta::unknown_<Tag>, meta::unknown_<Site> , meta::unknown_<A0> , meta::unknown_<A1> , meta::unknown_<A2> , meta::unknown_<A3> , meta::unknown_<A4> , adl_helper = adl_helper() ) { boost::dispatch::meta::implement<tag::unknown_, Site , Tag(A0 , A1 , A2 , A3 , A4) > that; return that; } template< class Tag, class Site , class A0 , class A1 , class A2 , class A3 , class A4 , class A5> BOOST_FORCEINLINE boost::dispatch::meta:: implement<tag::unknown_, Site, Tag(A0 , A1 , A2 , A3 , A4 , A5)> dispatching ( meta::unknown_<Tag>, meta::unknown_<Site> , meta::unknown_<A0> , meta::unknown_<A1> , meta::unknown_<A2> , meta::unknown_<A3> , meta::unknown_<A4> , meta::unknown_<A5> , adl_helper = adl_helper() ) { boost::dispatch::meta::implement<tag::unknown_, Site , Tag(A0 , A1 , A2 , A3 , A4 , A5) > that; return that; }
} } }
//==============================================================================
// Local macro to generate the dispatch selector
//==============================================================================
/**/
namespace boost { namespace dispatch { namespace meta
{
  //==============================================================================
  // dispatch_call finds the proper call overload for evaluating a given
  // functor over a set of types on a given site
  //==============================================================================
  template<class Sig, class Site = void>
  struct dispatch_call;
  template< class Tag, class Site_ > struct dispatch_call<Tag(), Site_> { typedef typename boost::mpl:: eval_if< is_void<Site_> , default_site<Tag> , mpl::identity<Site_> >::type Site; typedef BOOST_DISPATCH_TYPEOF ( dispatching ( (typename meta::hierarchy_of<Tag>::type()) , (typename meta::hierarchy_of<Site>::type()) , adl_helper() ) ) type; }; template< class Tag, class Site_ , class A0 > struct dispatch_call<Tag(A0), Site_> { typedef typename boost::mpl:: eval_if< is_void<Site_> , default_site<Tag> , mpl::identity<Site_> >::type Site; typedef BOOST_DISPATCH_TYPEOF ( dispatching ( (typename meta::hierarchy_of<Tag>::type()) , (typename meta::hierarchy_of<Site>::type()) , (typename meta::hierarchy_of<A0>::type()) , adl_helper() ) ) type; }; template< class Tag, class Site_ , class A0 , class A1 > struct dispatch_call<Tag(A0 , A1), Site_> { typedef typename boost::mpl:: eval_if< is_void<Site_> , default_site<Tag> , mpl::identity<Site_> >::type Site; typedef BOOST_DISPATCH_TYPEOF ( dispatching ( (typename meta::hierarchy_of<Tag>::type()) , (typename meta::hierarchy_of<Site>::type()) , (typename meta::hierarchy_of<A0>::type()) , (typename meta::hierarchy_of<A1>::type()) , adl_helper() ) ) type; }; template< class Tag, class Site_ , class A0 , class A1 , class A2 > struct dispatch_call<Tag(A0 , A1 , A2), Site_> { typedef typename boost::mpl:: eval_if< is_void<Site_> , default_site<Tag> , mpl::identity<Site_> >::type Site; typedef BOOST_DISPATCH_TYPEOF ( dispatching ( (typename meta::hierarchy_of<Tag>::type()) , (typename meta::hierarchy_of<Site>::type()) , (typename meta::hierarchy_of<A0>::type()) , (typename meta::hierarchy_of<A1>::type()) , (typename meta::hierarchy_of<A2>::type()) , adl_helper() ) ) type; }; template< class Tag, class Site_ , class A0 , class A1 , class A2 , class A3 > struct dispatch_call<Tag(A0 , A1 , A2 , A3), Site_> { typedef typename boost::mpl:: eval_if< is_void<Site_> , default_site<Tag> , mpl::identity<Site_> >::type Site; typedef BOOST_DISPATCH_TYPEOF ( dispatching ( (typename meta::hierarchy_of<Tag>::type()) , (typename meta::hierarchy_of<Site>::type()) , (typename meta::hierarchy_of<A0>::type()) , (typename meta::hierarchy_of<A1>::type()) , (typename meta::hierarchy_of<A2>::type()) , (typename meta::hierarchy_of<A3>::type()) , adl_helper() ) ) type; }; template< class Tag, class Site_ , class A0 , class A1 , class A2 , class A3 , class A4 > struct dispatch_call<Tag(A0 , A1 , A2 , A3 , A4), Site_> { typedef typename boost::mpl:: eval_if< is_void<Site_> , default_site<Tag> , mpl::identity<Site_> >::type Site; typedef BOOST_DISPATCH_TYPEOF ( dispatching ( (typename meta::hierarchy_of<Tag>::type()) , (typename meta::hierarchy_of<Site>::type()) , (typename meta::hierarchy_of<A0>::type()) , (typename meta::hierarchy_of<A1>::type()) , (typename meta::hierarchy_of<A2>::type()) , (typename meta::hierarchy_of<A3>::type()) , (typename meta::hierarchy_of<A4>::type()) , adl_helper() ) ) type; }; template< class Tag, class Site_ , class A0 , class A1 , class A2 , class A3 , class A4 , class A5 > struct dispatch_call<Tag(A0 , A1 , A2 , A3 , A4 , A5), Site_> { typedef typename boost::mpl:: eval_if< is_void<Site_> , default_site<Tag> , mpl::identity<Site_> >::type Site; typedef BOOST_DISPATCH_TYPEOF ( dispatching ( (typename meta::hierarchy_of<Tag>::type()) , (typename meta::hierarchy_of<Site>::type()) , (typename meta::hierarchy_of<A0>::type()) , (typename meta::hierarchy_of<A1>::type()) , (typename meta::hierarchy_of<A2>::type()) , (typename meta::hierarchy_of<A3>::type()) , (typename meta::hierarchy_of<A4>::type()) , (typename meta::hierarchy_of<A5>::type()) , adl_helper() ) ) type; };
} } }