| #ifndef QUICHE_HTTP2_ADAPTER_NGHTTP2_DATA_PROVIDER_H_ |
| #define QUICHE_HTTP2_ADAPTER_NGHTTP2_DATA_PROVIDER_H_ |
| |
| #include <cstdint> |
| #include <memory> |
| |
| #include "http2/adapter/data_source.h" |
| #include "http2/adapter/nghttp2.h" |
| |
| namespace http2 { |
| namespace adapter { |
| namespace callbacks { |
| |
| // Assumes |source| is a DataFrameSource. |
| ssize_t DataFrameSourceReadCallback(nghttp2_session* /*session */, |
| int32_t /* stream_id */, |
| uint8_t* /* buf */, |
| size_t length, |
| uint32_t* data_flags, |
| nghttp2_data_source* source, |
| void* /* user_data */); |
| |
| int DataFrameSourceSendCallback(nghttp2_session* /* session */, |
| nghttp2_frame* /* frame */, |
| const uint8_t* framehd, |
| size_t length, |
| nghttp2_data_source* source, |
| void* /* user_data */); |
| |
| } // namespace callbacks |
| |
| // Transforms a DataFrameSource into a nghttp2_data_provider. Does not take |
| // ownership of |source|. Returns nullptr if |source| is nullptr. |
| std::unique_ptr<nghttp2_data_provider> MakeDataProvider( |
| DataFrameSource* source); |
| |
| } // namespace adapter |
| } // namespace http2 |
| |
| #endif // QUICHE_HTTP2_ADAPTER_NGHTTP2_DATA_PROVIDER_H_ |