#ifndef GRPCPP_SUPPORT_ASYNC_STREAM_H
#define GRPCPP_SUPPORT_ASYNC_STREAM_H
#include <grpc/grpc.h>
#include <grpc/support/log.h>
#include <grpcpp/impl/call.h>
#include <grpcpp/impl/channel_interface.h>
#include <grpcpp/impl/service_type.h>
#include <grpcpp/server_context.h>
#include <grpcpp/support/status.h>
namespace grpc {
namespace internal {
class ClientAsyncStreamingInterface { … };
template <class R>
class AsyncReaderInterface { … };
template <class W>
class AsyncWriterInterface { … };
}
template <class R>
class ClientAsyncReaderInterface
: public internal::ClientAsyncStreamingInterface,
public internal::AsyncReaderInterface<R> { … };
namespace internal {
template <class R>
class ClientAsyncReaderFactory { … };
}
template <class R>
class ClientAsyncReader final : public ClientAsyncReaderInterface<R> { … };
template <class W>
class ClientAsyncWriterInterface
: public internal::ClientAsyncStreamingInterface,
public internal::AsyncWriterInterface<W> { … };
namespace internal {
template <class W>
class ClientAsyncWriterFactory { … };
}
template <class W>
class ClientAsyncWriter final : public ClientAsyncWriterInterface<W> { … };
template <class W, class R>
class ClientAsyncReaderWriterInterface
: public internal::ClientAsyncStreamingInterface,
public internal::AsyncWriterInterface<W>,
public internal::AsyncReaderInterface<R> { … };
namespace internal {
template <class W, class R>
class ClientAsyncReaderWriterFactory { … };
}
template <class W, class R>
class ClientAsyncReaderWriter final
: public ClientAsyncReaderWriterInterface<W, R> { … };
template <class W, class R>
class ServerAsyncReaderInterface
: public grpc::internal::ServerAsyncStreamingInterface,
public internal::AsyncReaderInterface<R> { … };
template <class W, class R>
class ServerAsyncReader final : public ServerAsyncReaderInterface<W, R> { … };
template <class W>
class ServerAsyncWriterInterface
: public grpc::internal::ServerAsyncStreamingInterface,
public internal::AsyncWriterInterface<W> { … };
template <class W>
class ServerAsyncWriter final : public ServerAsyncWriterInterface<W> { … };
template <class W, class R>
class ServerAsyncReaderWriterInterface
: public grpc::internal::ServerAsyncStreamingInterface,
public internal::AsyncWriterInterface<W>,
public internal::AsyncReaderInterface<R> { … };
template <class W, class R>
class ServerAsyncReaderWriter final
: public ServerAsyncReaderWriterInterface<W, R> { … };
}
#endif