1 /** 2 * Autogenerated by Thrift for src/module.thrift 3 * 4 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING 5 * @generated @nocommit 6 */ 7 #pragma once 8 9 #include <thrift/lib/cpp2/gen/client_h.h> 10 11 #include "thrift/compiler/test/fixtures/basic-stack-arguments/gen-cpp2/module_types.h" 12 13 namespace apache { namespace thrift { 14 class Cpp2RequestContext; 15 namespace detail { namespace ac { struct ClientRequestContext; }} 16 namespace transport { class THeader; } 17 }} 18 19 namespace cpp2 { 20 21 class MyServiceFastAsyncClient : public apache::thrift::GeneratedAsyncClient { 22 public: 23 using apache::thrift::GeneratedAsyncClient::GeneratedAsyncClient; 24 getServiceName()25 char const* getServiceName() const noexcept override { 26 return "MyServiceFast"; 27 } 28 29 30 virtual void hasDataById(std::unique_ptr<apache::thrift::RequestCallback> callback, ::std::int64_t p_id); 31 virtual void hasDataById(apache::thrift::RpcOptions& rpcOptions, std::unique_ptr<apache::thrift::RequestCallback> callback, ::std::int64_t p_id); 32 protected: 33 void hasDataByIdImpl(apache::thrift::RpcOptions& rpcOptions, std::shared_ptr<apache::thrift::transport::THeader> header, apache::thrift::ContextStack* contextStack, apache::thrift::RequestClientCallback::Ptr callback, ::std::int64_t p_id, bool stealRpcOptions = false); 34 public: 35 36 virtual bool sync_hasDataById(::std::int64_t p_id); 37 virtual bool sync_hasDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id); 38 39 virtual folly::Future<bool> future_hasDataById(::std::int64_t p_id); 40 virtual folly::SemiFuture<bool> semifuture_hasDataById(::std::int64_t p_id); 41 virtual folly::Future<bool> future_hasDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id); 42 virtual folly::SemiFuture<bool> semifuture_hasDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id); 43 virtual folly::Future<std::pair<bool, std::unique_ptr<apache::thrift::transport::THeader>>> header_future_hasDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id); 44 virtual folly::SemiFuture<std::pair<bool, std::unique_ptr<apache::thrift::transport::THeader>>> header_semifuture_hasDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id); 45 FOLLY_NODISCARD [[deprecated("To be replaced by new API soon")]] virtual folly::Try<apache::thrift::RpcResponseComplete<bool>> sync_complete_hasDataById( 46 apache::thrift::RpcOptions&& rpcOptions, ::std::int64_t p_id); 47 48 #if FOLLY_HAS_COROUTINES 49 template <int = 0> co_hasDataById(::std::int64_t p_id)50 folly::coro::Task<bool> co_hasDataById(::std::int64_t p_id) { 51 return co_hasDataById<false>(nullptr, p_id); 52 } 53 template <int = 0> co_hasDataById(apache::thrift::RpcOptions & rpcOptions,::std::int64_t p_id)54 folly::coro::Task<bool> co_hasDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id) { 55 return co_hasDataById<true>(&rpcOptions, p_id); 56 } 57 private: 58 template <bool hasRpcOptions> co_hasDataById(apache::thrift::RpcOptions * rpcOptions,::std::int64_t p_id)59 folly::coro::Task<bool> co_hasDataById(apache::thrift::RpcOptions* rpcOptions, ::std::int64_t p_id) { 60 const folly::CancellationToken& cancelToken = 61 co_await folly::coro::co_current_cancellation_token; 62 const bool cancellable = cancelToken.canBeCancelled(); 63 apache::thrift::ClientReceiveState returnState; 64 apache::thrift::ClientSyncCallback<false> callback(&returnState); 65 auto protocolId = apache::thrift::GeneratedAsyncClient::getChannel()->getProtocolId(); 66 auto [ctx, header] = hasDataByIdCtx(rpcOptions); 67 using CancellableCallback = apache::thrift::CancellableRequestClientCallback<false>; 68 auto cancellableCallback = cancellable ? CancellableCallback::create(&callback, channel_) : nullptr; 69 static apache::thrift::RpcOptions defaultRpcOptions; 70 auto wrappedCallback = apache::thrift::RequestClientCallback::Ptr(cancellableCallback ? (apache::thrift::RequestClientCallback*)cancellableCallback.get() : &callback); 71 if constexpr (hasRpcOptions) { 72 hasDataByIdImpl(*rpcOptions, std::move(header), ctx.get(), std::move(wrappedCallback), p_id); 73 } else { 74 hasDataByIdImpl(defaultRpcOptions, std::move(header), ctx.get(), std::move(wrappedCallback), p_id); 75 } 76 if (cancellable) { 77 folly::CancellationCallback cb(cancelToken, [&] { CancellableCallback::cancel(std::move(cancellableCallback)); }); 78 co_await callback.co_waitUntilDone(); 79 } else { 80 co_await callback.co_waitUntilDone(); 81 } 82 if (returnState.isException()) { 83 co_yield folly::coro::co_error(std::move(returnState.exception())); 84 } 85 returnState.resetProtocolId(protocolId); 86 returnState.resetCtx(std::move(ctx)); 87 SCOPE_EXIT { 88 if (hasRpcOptions && returnState.header()) { 89 auto* rheader = returnState.header(); 90 if (!rheader->getHeaders().empty()) { 91 rpcOptions->setReadHeaders(rheader->releaseHeaders()); 92 } 93 rpcOptions->setRoutingData(rheader->releaseRoutingData()); 94 } 95 }; 96 bool _return; 97 if (auto ew = recv_wrapped_hasDataById(_return, returnState)) { 98 co_yield folly::coro::co_error(std::move(ew)); 99 } 100 co_return _return; 101 } 102 public: 103 #endif // FOLLY_HAS_COROUTINES 104 105 virtual void hasDataById(folly::Function<void (::apache::thrift::ClientReceiveState&&)> callback, ::std::int64_t p_id); 106 107 108 static folly::exception_wrapper recv_wrapped_hasDataById(bool& _return, ::apache::thrift::ClientReceiveState& state); 109 static bool recv_hasDataById(::apache::thrift::ClientReceiveState& state); 110 // Mock friendly virtual instance method 111 virtual bool recv_instance_hasDataById(::apache::thrift::ClientReceiveState& state); 112 virtual folly::exception_wrapper recv_instance_wrapped_hasDataById(bool& _return, ::apache::thrift::ClientReceiveState& state); 113 private: 114 template <typename Protocol_, typename RpcOptions> 115 void hasDataByIdT(Protocol_* prot, RpcOptions&& rpcOptions, std::shared_ptr<apache::thrift::transport::THeader> header, apache::thrift::ContextStack* contextStack, apache::thrift::RequestClientCallback::Ptr callback, ::std::int64_t p_id); 116 std::pair<std::unique_ptr<::apache::thrift::ContextStack>, std::shared_ptr<::apache::thrift::transport::THeader>> hasDataByIdCtx(apache::thrift::RpcOptions* rpcOptions); 117 public: 118 virtual void getDataById(std::unique_ptr<apache::thrift::RequestCallback> callback, ::std::int64_t p_id); 119 virtual void getDataById(apache::thrift::RpcOptions& rpcOptions, std::unique_ptr<apache::thrift::RequestCallback> callback, ::std::int64_t p_id); 120 protected: 121 void getDataByIdImpl(apache::thrift::RpcOptions& rpcOptions, std::shared_ptr<apache::thrift::transport::THeader> header, apache::thrift::ContextStack* contextStack, apache::thrift::RequestClientCallback::Ptr callback, ::std::int64_t p_id, bool stealRpcOptions = false); 122 public: 123 124 virtual void sync_getDataById(::std::string& _return, ::std::int64_t p_id); 125 virtual void sync_getDataById(apache::thrift::RpcOptions& rpcOptions, ::std::string& _return, ::std::int64_t p_id); 126 127 virtual folly::Future<::std::string> future_getDataById(::std::int64_t p_id); 128 virtual folly::SemiFuture<::std::string> semifuture_getDataById(::std::int64_t p_id); 129 virtual folly::Future<::std::string> future_getDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id); 130 virtual folly::SemiFuture<::std::string> semifuture_getDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id); 131 virtual folly::Future<std::pair<::std::string, std::unique_ptr<apache::thrift::transport::THeader>>> header_future_getDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id); 132 virtual folly::SemiFuture<std::pair<::std::string, std::unique_ptr<apache::thrift::transport::THeader>>> header_semifuture_getDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id); 133 FOLLY_NODISCARD [[deprecated("To be replaced by new API soon")]] virtual folly::Try<apache::thrift::RpcResponseComplete<::std::string>> sync_complete_getDataById( 134 apache::thrift::RpcOptions&& rpcOptions, ::std::int64_t p_id); 135 136 #if FOLLY_HAS_COROUTINES 137 template <int = 0> co_getDataById(::std::int64_t p_id)138 folly::coro::Task<::std::string> co_getDataById(::std::int64_t p_id) { 139 return co_getDataById<false>(nullptr, p_id); 140 } 141 template <int = 0> co_getDataById(apache::thrift::RpcOptions & rpcOptions,::std::int64_t p_id)142 folly::coro::Task<::std::string> co_getDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id) { 143 return co_getDataById<true>(&rpcOptions, p_id); 144 } 145 private: 146 template <bool hasRpcOptions> co_getDataById(apache::thrift::RpcOptions * rpcOptions,::std::int64_t p_id)147 folly::coro::Task<::std::string> co_getDataById(apache::thrift::RpcOptions* rpcOptions, ::std::int64_t p_id) { 148 const folly::CancellationToken& cancelToken = 149 co_await folly::coro::co_current_cancellation_token; 150 const bool cancellable = cancelToken.canBeCancelled(); 151 apache::thrift::ClientReceiveState returnState; 152 apache::thrift::ClientSyncCallback<false> callback(&returnState); 153 auto protocolId = apache::thrift::GeneratedAsyncClient::getChannel()->getProtocolId(); 154 auto [ctx, header] = getDataByIdCtx(rpcOptions); 155 using CancellableCallback = apache::thrift::CancellableRequestClientCallback<false>; 156 auto cancellableCallback = cancellable ? CancellableCallback::create(&callback, channel_) : nullptr; 157 static apache::thrift::RpcOptions defaultRpcOptions; 158 auto wrappedCallback = apache::thrift::RequestClientCallback::Ptr(cancellableCallback ? (apache::thrift::RequestClientCallback*)cancellableCallback.get() : &callback); 159 if constexpr (hasRpcOptions) { 160 getDataByIdImpl(*rpcOptions, std::move(header), ctx.get(), std::move(wrappedCallback), p_id); 161 } else { 162 getDataByIdImpl(defaultRpcOptions, std::move(header), ctx.get(), std::move(wrappedCallback), p_id); 163 } 164 if (cancellable) { 165 folly::CancellationCallback cb(cancelToken, [&] { CancellableCallback::cancel(std::move(cancellableCallback)); }); 166 co_await callback.co_waitUntilDone(); 167 } else { 168 co_await callback.co_waitUntilDone(); 169 } 170 if (returnState.isException()) { 171 co_yield folly::coro::co_error(std::move(returnState.exception())); 172 } 173 returnState.resetProtocolId(protocolId); 174 returnState.resetCtx(std::move(ctx)); 175 SCOPE_EXIT { 176 if (hasRpcOptions && returnState.header()) { 177 auto* rheader = returnState.header(); 178 if (!rheader->getHeaders().empty()) { 179 rpcOptions->setReadHeaders(rheader->releaseHeaders()); 180 } 181 rpcOptions->setRoutingData(rheader->releaseRoutingData()); 182 } 183 }; 184 ::std::string _return; 185 if (auto ew = recv_wrapped_getDataById(_return, returnState)) { 186 co_yield folly::coro::co_error(std::move(ew)); 187 } 188 co_return _return; 189 } 190 public: 191 #endif // FOLLY_HAS_COROUTINES 192 193 virtual void getDataById(folly::Function<void (::apache::thrift::ClientReceiveState&&)> callback, ::std::int64_t p_id); 194 195 196 static folly::exception_wrapper recv_wrapped_getDataById(::std::string& _return, ::apache::thrift::ClientReceiveState& state); 197 static void recv_getDataById(::std::string& _return, ::apache::thrift::ClientReceiveState& state); 198 // Mock friendly virtual instance method 199 virtual void recv_instance_getDataById(::std::string& _return, ::apache::thrift::ClientReceiveState& state); 200 virtual folly::exception_wrapper recv_instance_wrapped_getDataById(::std::string& _return, ::apache::thrift::ClientReceiveState& state); 201 private: 202 template <typename Protocol_, typename RpcOptions> 203 void getDataByIdT(Protocol_* prot, RpcOptions&& rpcOptions, std::shared_ptr<apache::thrift::transport::THeader> header, apache::thrift::ContextStack* contextStack, apache::thrift::RequestClientCallback::Ptr callback, ::std::int64_t p_id); 204 std::pair<std::unique_ptr<::apache::thrift::ContextStack>, std::shared_ptr<::apache::thrift::transport::THeader>> getDataByIdCtx(apache::thrift::RpcOptions* rpcOptions); 205 public: 206 virtual void putDataById(std::unique_ptr<apache::thrift::RequestCallback> callback, ::std::int64_t p_id, const ::std::string& p_data); 207 virtual void putDataById(apache::thrift::RpcOptions& rpcOptions, std::unique_ptr<apache::thrift::RequestCallback> callback, ::std::int64_t p_id, const ::std::string& p_data); 208 protected: 209 void putDataByIdImpl(apache::thrift::RpcOptions& rpcOptions, std::shared_ptr<apache::thrift::transport::THeader> header, apache::thrift::ContextStack* contextStack, apache::thrift::RequestClientCallback::Ptr callback, ::std::int64_t p_id, const ::std::string& p_data, bool stealRpcOptions = false); 210 public: 211 212 virtual void sync_putDataById(::std::int64_t p_id, const ::std::string& p_data); 213 virtual void sync_putDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id, const ::std::string& p_data); 214 215 virtual folly::Future<folly::Unit> future_putDataById(::std::int64_t p_id, const ::std::string& p_data); 216 virtual folly::SemiFuture<folly::Unit> semifuture_putDataById(::std::int64_t p_id, const ::std::string& p_data); 217 virtual folly::Future<folly::Unit> future_putDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id, const ::std::string& p_data); 218 virtual folly::SemiFuture<folly::Unit> semifuture_putDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id, const ::std::string& p_data); 219 virtual folly::Future<std::pair<folly::Unit, std::unique_ptr<apache::thrift::transport::THeader>>> header_future_putDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id, const ::std::string& p_data); 220 virtual folly::SemiFuture<std::pair<folly::Unit, std::unique_ptr<apache::thrift::transport::THeader>>> header_semifuture_putDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id, const ::std::string& p_data); 221 FOLLY_NODISCARD [[deprecated("To be replaced by new API soon")]] virtual folly::Try<apache::thrift::RpcResponseComplete<void>> sync_complete_putDataById( 222 apache::thrift::RpcOptions&& rpcOptions, ::std::int64_t p_id, const ::std::string& p_data); 223 224 #if FOLLY_HAS_COROUTINES 225 template <int = 0> co_putDataById(::std::int64_t p_id,const::std::string & p_data)226 folly::coro::Task<void> co_putDataById(::std::int64_t p_id, const ::std::string& p_data) { 227 return co_putDataById<false>(nullptr, p_id, p_data); 228 } 229 template <int = 0> co_putDataById(apache::thrift::RpcOptions & rpcOptions,::std::int64_t p_id,const::std::string & p_data)230 folly::coro::Task<void> co_putDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id, const ::std::string& p_data) { 231 return co_putDataById<true>(&rpcOptions, p_id, p_data); 232 } 233 private: 234 template <bool hasRpcOptions> co_putDataById(apache::thrift::RpcOptions * rpcOptions,::std::int64_t p_id,const::std::string & p_data)235 folly::coro::Task<void> co_putDataById(apache::thrift::RpcOptions* rpcOptions, ::std::int64_t p_id, const ::std::string& p_data) { 236 const folly::CancellationToken& cancelToken = 237 co_await folly::coro::co_current_cancellation_token; 238 const bool cancellable = cancelToken.canBeCancelled(); 239 apache::thrift::ClientReceiveState returnState; 240 apache::thrift::ClientSyncCallback<false> callback(&returnState); 241 auto protocolId = apache::thrift::GeneratedAsyncClient::getChannel()->getProtocolId(); 242 auto [ctx, header] = putDataByIdCtx(rpcOptions); 243 using CancellableCallback = apache::thrift::CancellableRequestClientCallback<false>; 244 auto cancellableCallback = cancellable ? CancellableCallback::create(&callback, channel_) : nullptr; 245 static apache::thrift::RpcOptions defaultRpcOptions; 246 auto wrappedCallback = apache::thrift::RequestClientCallback::Ptr(cancellableCallback ? (apache::thrift::RequestClientCallback*)cancellableCallback.get() : &callback); 247 if constexpr (hasRpcOptions) { 248 putDataByIdImpl(*rpcOptions, std::move(header), ctx.get(), std::move(wrappedCallback), p_id, p_data); 249 } else { 250 putDataByIdImpl(defaultRpcOptions, std::move(header), ctx.get(), std::move(wrappedCallback), p_id, p_data); 251 } 252 if (cancellable) { 253 folly::CancellationCallback cb(cancelToken, [&] { CancellableCallback::cancel(std::move(cancellableCallback)); }); 254 co_await callback.co_waitUntilDone(); 255 } else { 256 co_await callback.co_waitUntilDone(); 257 } 258 if (returnState.isException()) { 259 co_yield folly::coro::co_error(std::move(returnState.exception())); 260 } 261 returnState.resetProtocolId(protocolId); 262 returnState.resetCtx(std::move(ctx)); 263 SCOPE_EXIT { 264 if (hasRpcOptions && returnState.header()) { 265 auto* rheader = returnState.header(); 266 if (!rheader->getHeaders().empty()) { 267 rpcOptions->setReadHeaders(rheader->releaseHeaders()); 268 } 269 rpcOptions->setRoutingData(rheader->releaseRoutingData()); 270 } 271 }; 272 if (auto ew = recv_wrapped_putDataById(returnState)) { 273 co_yield folly::coro::co_error(std::move(ew)); 274 } 275 } 276 public: 277 #endif // FOLLY_HAS_COROUTINES 278 279 virtual void putDataById(folly::Function<void (::apache::thrift::ClientReceiveState&&)> callback, ::std::int64_t p_id, const ::std::string& p_data); 280 281 282 static folly::exception_wrapper recv_wrapped_putDataById(::apache::thrift::ClientReceiveState& state); 283 static void recv_putDataById(::apache::thrift::ClientReceiveState& state); 284 // Mock friendly virtual instance method 285 virtual void recv_instance_putDataById(::apache::thrift::ClientReceiveState& state); 286 virtual folly::exception_wrapper recv_instance_wrapped_putDataById(::apache::thrift::ClientReceiveState& state); 287 private: 288 template <typename Protocol_, typename RpcOptions> 289 void putDataByIdT(Protocol_* prot, RpcOptions&& rpcOptions, std::shared_ptr<apache::thrift::transport::THeader> header, apache::thrift::ContextStack* contextStack, apache::thrift::RequestClientCallback::Ptr callback, ::std::int64_t p_id, const ::std::string& p_data); 290 std::pair<std::unique_ptr<::apache::thrift::ContextStack>, std::shared_ptr<::apache::thrift::transport::THeader>> putDataByIdCtx(apache::thrift::RpcOptions* rpcOptions); 291 public: 292 virtual void lobDataById(std::unique_ptr<apache::thrift::RequestCallback> callback, ::std::int64_t p_id, const ::std::string& p_data); 293 virtual void lobDataById(apache::thrift::RpcOptions& rpcOptions, std::unique_ptr<apache::thrift::RequestCallback> callback, ::std::int64_t p_id, const ::std::string& p_data); 294 protected: 295 void lobDataByIdImpl(apache::thrift::RpcOptions& rpcOptions, std::shared_ptr<apache::thrift::transport::THeader> header, apache::thrift::ContextStack* contextStack, apache::thrift::RequestClientCallback::Ptr callback, ::std::int64_t p_id, const ::std::string& p_data, bool stealRpcOptions = false); 296 public: 297 298 virtual void sync_lobDataById(::std::int64_t p_id, const ::std::string& p_data); 299 virtual void sync_lobDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id, const ::std::string& p_data); 300 301 virtual folly::Future<folly::Unit> future_lobDataById(::std::int64_t p_id, const ::std::string& p_data); 302 virtual folly::SemiFuture<folly::Unit> semifuture_lobDataById(::std::int64_t p_id, const ::std::string& p_data); 303 virtual folly::Future<folly::Unit> future_lobDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id, const ::std::string& p_data); 304 virtual folly::SemiFuture<folly::Unit> semifuture_lobDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id, const ::std::string& p_data); 305 306 #if FOLLY_HAS_COROUTINES 307 template <int = 0> co_lobDataById(::std::int64_t p_id,const::std::string & p_data)308 folly::coro::Task<void> co_lobDataById(::std::int64_t p_id, const ::std::string& p_data) { 309 return co_lobDataById<false>(nullptr, p_id, p_data); 310 } 311 template <int = 0> co_lobDataById(apache::thrift::RpcOptions & rpcOptions,::std::int64_t p_id,const::std::string & p_data)312 folly::coro::Task<void> co_lobDataById(apache::thrift::RpcOptions& rpcOptions, ::std::int64_t p_id, const ::std::string& p_data) { 313 return co_lobDataById<true>(&rpcOptions, p_id, p_data); 314 } 315 private: 316 template <bool hasRpcOptions> co_lobDataById(apache::thrift::RpcOptions * rpcOptions,::std::int64_t p_id,const::std::string & p_data)317 folly::coro::Task<void> co_lobDataById(apache::thrift::RpcOptions* rpcOptions, ::std::int64_t p_id, const ::std::string& p_data) { 318 const folly::CancellationToken& cancelToken = 319 co_await folly::coro::co_current_cancellation_token; 320 const bool cancellable = cancelToken.canBeCancelled(); 321 apache::thrift::ClientReceiveState returnState; 322 apache::thrift::ClientSyncCallback<true> callback(&returnState); 323 auto [ctx, header] = lobDataByIdCtx(rpcOptions); 324 using CancellableCallback = apache::thrift::CancellableRequestClientCallback<true>; 325 auto cancellableCallback = cancellable ? CancellableCallback::create(&callback, channel_) : nullptr; 326 static apache::thrift::RpcOptions defaultRpcOptions; 327 auto wrappedCallback = apache::thrift::RequestClientCallback::Ptr(cancellableCallback ? (apache::thrift::RequestClientCallback*)cancellableCallback.get() : &callback); 328 if constexpr (hasRpcOptions) { 329 lobDataByIdImpl(*rpcOptions, std::move(header), ctx.get(), std::move(wrappedCallback), p_id, p_data); 330 } else { 331 lobDataByIdImpl(defaultRpcOptions, std::move(header), ctx.get(), std::move(wrappedCallback), p_id, p_data); 332 } 333 if (cancellable) { 334 folly::CancellationCallback cb(cancelToken, [&] { CancellableCallback::cancel(std::move(cancellableCallback)); }); 335 co_await callback.co_waitUntilDone(); 336 } else { 337 co_await callback.co_waitUntilDone(); 338 } 339 if (returnState.isException()) { 340 co_yield folly::coro::co_error(std::move(returnState.exception())); 341 } 342 } 343 public: 344 #endif // FOLLY_HAS_COROUTINES 345 346 virtual void lobDataById(folly::Function<void (::apache::thrift::ClientReceiveState&&)> callback, ::std::int64_t p_id, const ::std::string& p_data); 347 348 349 private: 350 template <typename Protocol_, typename RpcOptions> 351 void lobDataByIdT(Protocol_* prot, RpcOptions&& rpcOptions, std::shared_ptr<apache::thrift::transport::THeader> header, apache::thrift::ContextStack* contextStack, apache::thrift::RequestClientCallback::Ptr callback, ::std::int64_t p_id, const ::std::string& p_data); 352 std::pair<std::unique_ptr<::apache::thrift::ContextStack>, std::shared_ptr<::apache::thrift::transport::THeader>> lobDataByIdCtx(apache::thrift::RpcOptions* rpcOptions); 353 public: 354 }; 355 356 } // cpp2 357