Go to the source code of this file.
Classes | |
| struct | graphlab::dc_impl::portable_detail::find_dispatcher< F, Fret, Nargs, f, IsRPCCall > |
Namespaces | |
| namespace | graphlab |
The namespace containing all graphlab objects and functions. | |
Functions | |
| graphlab::dc_impl::BOOST_PP_REPEAT (BOOST_PP_INC(6), PORTABLE_DISPATCH_GENERATOR, _) namespace portable_detail | |
This is an internal function and should not be used directly.
The portable calls work in a slightly different way as the regular RPC system. The receiving function of any portable call must be registered through the REGISTER_RPC macro.
This macro does a few things. Firstly, it instantiates a find_dispatcher class. The job of the find_dispatcher class is to expand the number of arguments and the return type and figure out what is the right dispatch function type to use.
If the return type is void, the find_dispatcher is partially specialized, and will instantiate a PORTABLE_DISPATCH function, which will be returned in the operator() of the find_dispatch class.
Otherwise, it instantiates a PORTABLE_REQUESTDISPATCH function which sends back the return value of the function.
Finally, the macro inserts the pointer to the dispatch function into a hashmap in the distributed_control class.
Definition in file portable_dispatch.hpp.
1.7.1