#ifndef SERVICES_SERVICE_MANAGER_PUBLIC_CPP_INTERFACE_BINDER_H_
#define SERVICES_SERVICE_MANAGER_PUBLIC_CPP_INTERFACE_BINDER_H_
#include <string>
#include <utility>
#include "base/functional/bind.h"
#include "base/task/sequenced_task_runner.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/system/message_pipe.h"
namespace service_manager {
template <typename... BinderArgs>
void BindCallbackAdapter(
const base::RepeatingCallback<void(mojo::ScopedMessagePipeHandle,
BinderArgs...)>& callback,
const std::string& interface_name,
mojo::ScopedMessagePipeHandle handle,
BinderArgs... args) { … }
template <typename... BinderArgs>
class InterfaceBinder { … };
template <typename Interface, typename... BinderArgs>
class CallbackBinder : public InterfaceBinder<BinderArgs...> { … };
template <typename... BinderArgs>
class GenericCallbackBinder : public InterfaceBinder<BinderArgs...> { … };
}
#endif