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/service_h.h>
10 
11 #include "thrift/compiler/test/fixtures/interactions/gen-cpp2/MyServiceAsyncClient.h"
12 #include "thrift/compiler/test/fixtures/interactions/gen-cpp2/module_types.h"
13 #include <thrift/lib/cpp2/async/ServerStream.h>
14 #include <thrift/lib/cpp2/async/Sink.h>
15 
16 namespace folly {
17   class IOBuf;
18   class IOBufQueue;
19 }
20 namespace apache { namespace thrift {
21   class Cpp2RequestContext;
22   class BinaryProtocolReader;
23   class CompactProtocolReader;
24   namespace transport { class THeader; }
25 }}
26 
27 namespace cpp2 {
28 
29 class MyServiceSvAsyncIf {
30  public:
~MyServiceSvAsyncIf()31   virtual ~MyServiceSvAsyncIf() {}
32   virtual void async_tm_foo(std::unique_ptr<apache::thrift::HandlerCallback<void>> callback) = 0;
33   virtual folly::Future<folly::Unit> future_foo() = 0;
34   virtual folly::SemiFuture<folly::Unit> semifuture_foo() = 0;
35 };
36 
37 class MyServiceAsyncProcessor;
38 
39 class MyServiceSvIf : public MyServiceSvAsyncIf, public apache::thrift::ServerInterface {
40  public:
getGeneratedName()41   std::string_view getGeneratedName() const override { return "MyService"; }
42 
43   typedef MyServiceAsyncProcessor ProcessorType;
44   std::unique_ptr<apache::thrift::AsyncProcessor> getProcessor() override;
45   CreateMethodMetadataResult createMethodMetadata() override;
46 
47 class MyInteractionIf : public apache::thrift::Tile, public apache::thrift::ServerInterface {
48  public:
getGeneratedName()49   std::string_view getGeneratedName() const override { return "MyInteraction"; }
50 
51   typedef MyServiceAsyncProcessor ProcessorType;
52   virtual ~MyInteractionIf() = default;
getProcessor()53   std::unique_ptr<apache::thrift::AsyncProcessor> getProcessor() override {
54     std::terminate();
55   }
createMethodMetadata()56   CreateMethodMetadataResult createMethodMetadata() override {
57     std::terminate();
58   }
59   virtual ::std::int32_t frobnicate();
60   virtual folly::SemiFuture<::std::int32_t> semifuture_frobnicate();
61 #if FOLLY_HAS_COROUTINES
62   virtual folly::coro::Task<::std::int32_t> co_frobnicate();
63   virtual folly::coro::Task<::std::int32_t> co_frobnicate(apache::thrift::RequestParams params);
64 #endif
65   virtual void async_tm_frobnicate(std::unique_ptr<apache::thrift::HandlerCallback<::std::int32_t>> callback);
66   virtual void ping();
67   virtual folly::SemiFuture<folly::Unit> semifuture_ping();
68 #if FOLLY_HAS_COROUTINES
69   virtual folly::coro::Task<void> co_ping();
70   virtual folly::coro::Task<void> co_ping(apache::thrift::RequestParams params);
71 #endif
72   virtual void async_tm_ping(std::unique_ptr<apache::thrift::HandlerCallbackBase> callback);
73   virtual ::apache::thrift::ServerStream<bool> truthify();
74   virtual folly::SemiFuture<::apache::thrift::ServerStream<bool>> semifuture_truthify();
75 #if FOLLY_HAS_COROUTINES
76   virtual folly::coro::Task<::apache::thrift::ServerStream<bool>> co_truthify();
77   virtual folly::coro::Task<::apache::thrift::ServerStream<bool>> co_truthify(apache::thrift::RequestParams params);
78 #endif
79   virtual void async_tm_truthify(std::unique_ptr<apache::thrift::HandlerCallback<::apache::thrift::ServerStream<bool>>> callback);
80   virtual ::apache::thrift::ResponseAndSinkConsumer<::std::set<::std::int32_t>, ::std::string, ::std::string> encode();
81   virtual folly::SemiFuture<::apache::thrift::ResponseAndSinkConsumer<::std::set<::std::int32_t>, ::std::string, ::std::string>> semifuture_encode();
82 #if FOLLY_HAS_COROUTINES
83   virtual folly::coro::Task<::apache::thrift::ResponseAndSinkConsumer<::std::set<::std::int32_t>, ::std::string, ::std::string>> co_encode();
84   virtual folly::coro::Task<::apache::thrift::ResponseAndSinkConsumer<::std::set<::std::int32_t>, ::std::string, ::std::string>> co_encode(apache::thrift::RequestParams params);
85 #endif
86   virtual void async_tm_encode(std::unique_ptr<apache::thrift::HandlerCallback<::apache::thrift::ResponseAndSinkConsumer<::std::set<::std::int32_t>, ::std::string, ::std::string>>> callback);
87  private:
88   std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_frobnicate{apache::thrift::detail::si::InvocationType::AsyncTm};
89   std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_ping{apache::thrift::detail::si::InvocationType::AsyncTm};
90   std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_truthify{apache::thrift::detail::si::InvocationType::AsyncTm};
91   std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_encode{apache::thrift::detail::si::InvocationType::AsyncTm};
92 };class MyInteractionFastIf : public apache::thrift::Tile, public apache::thrift::ServerInterface {
93  public:
getGeneratedName()94   std::string_view getGeneratedName() const override { return "MyInteractionFast"; }
95 
96   typedef MyServiceAsyncProcessor ProcessorType;
97   virtual ~MyInteractionFastIf() = default;
getProcessor()98   std::unique_ptr<apache::thrift::AsyncProcessor> getProcessor() override {
99     std::terminate();
100   }
createMethodMetadata()101   CreateMethodMetadataResult createMethodMetadata() override {
102     std::terminate();
103   }
104   virtual void async_eb_frobnicate(std::unique_ptr<apache::thrift::HandlerCallback<::std::int32_t>> callback);
105   virtual void async_eb_ping(std::unique_ptr<apache::thrift::HandlerCallbackBase> callback);
106   virtual void async_eb_truthify(std::unique_ptr<apache::thrift::HandlerCallback<::apache::thrift::ServerStream<bool>>> callback);
107   virtual void async_eb_encode(std::unique_ptr<apache::thrift::HandlerCallback<::apache::thrift::ResponseAndSinkConsumer<::std::set<::std::int32_t>, ::std::string, ::std::string>>> callback);
108  private:
109 };class SerialInteractionIf : public apache::thrift::SerialInteractionTile, public apache::thrift::ServerInterface {
110  public:
getGeneratedName()111   std::string_view getGeneratedName() const override { return "SerialInteraction"; }
112 
113   typedef MyServiceAsyncProcessor ProcessorType;
114   virtual ~SerialInteractionIf() = default;
getProcessor()115   std::unique_ptr<apache::thrift::AsyncProcessor> getProcessor() override {
116     std::terminate();
117   }
createMethodMetadata()118   CreateMethodMetadataResult createMethodMetadata() override {
119     std::terminate();
120   }
121   virtual void frobnicate();
122   virtual folly::SemiFuture<folly::Unit> semifuture_frobnicate();
123 #if FOLLY_HAS_COROUTINES
124   virtual folly::coro::Task<void> co_frobnicate();
125   virtual folly::coro::Task<void> co_frobnicate(apache::thrift::RequestParams params);
126 #endif
127   virtual void async_tm_frobnicate(std::unique_ptr<apache::thrift::HandlerCallback<void>> callback);
128  private:
129   std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_frobnicate{apache::thrift::detail::si::InvocationType::AsyncTm};
130 };
131   virtual std::unique_ptr<MyInteractionIf> createMyInteraction() = 0;
132   virtual std::unique_ptr<MyInteractionFastIf> createMyInteractionFast() = 0;
133   virtual std::unique_ptr<SerialInteractionIf> createSerialInteraction() = 0;
134   virtual void foo();
135   folly::Future<folly::Unit> future_foo() override;
136   folly::SemiFuture<folly::Unit> semifuture_foo() override;
137   void async_tm_foo(std::unique_ptr<apache::thrift::HandlerCallback<void>> callback) override;
138  private:
139   std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_createMyInteraction{apache::thrift::detail::si::InvocationType::AsyncTm};
140   std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_createMyInteractionFast{apache::thrift::detail::si::InvocationType::AsyncTm};
141   std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_createSerialInteraction{apache::thrift::detail::si::InvocationType::AsyncTm};
142   std::atomic<apache::thrift::detail::si::InvocationType> __fbthrift_invocation_foo{apache::thrift::detail::si::InvocationType::AsyncTm};
143 };
144 
145 class MyServiceSvNull : public MyServiceSvIf {
146  public:
147   void foo() override;
148 };
149 
150 class MyServiceAsyncProcessor : public ::apache::thrift::GeneratedAsyncProcessor {
151  public:
152   const char* getServiceName() override;
153   void getServiceMetadata(apache::thrift::metadata::ThriftServiceMetadataResponse& response) override;
154   using BaseAsyncProcessor = void;
155  protected:
156   MyServiceSvIf* iface_;
157  public:
158   // This is implemented in case the corresponding AsyncProcessorFactory did not implement createMethodMetadata.
159   // This can happen if the service is using a custom AsyncProcessorFactory but re-using the same AsyncProcessor.
160   void processSerializedCompressedRequest(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::protocol::PROTOCOL_TYPES protType, apache::thrift::Cpp2RequestContext* context, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm) override;
161   // By default, this overload will be called for generated services
162   void processSerializedCompressedRequestWithMetadata(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, const apache::thrift::AsyncProcessorFactory::MethodMetadata& methodMetadata, apache::thrift::protocol::PROTOCOL_TYPES protType, apache::thrift::Cpp2RequestContext* context, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm) override;
163  public:
164   using ProcessFuncs = GeneratedAsyncProcessor::ProcessFuncs<MyServiceAsyncProcessor>;
165   using ProcessMap = GeneratedAsyncProcessor::ProcessMap<ProcessFuncs>;
166   using InteractionConstructor = GeneratedAsyncProcessor::InteractionConstructor<MyServiceAsyncProcessor>;
167   using InteractionConstructorMap = GeneratedAsyncProcessor::InteractionConstructorMap<InteractionConstructor>;
168   static const MyServiceAsyncProcessor::ProcessMap& getOwnProcessMap();
169   static const MyServiceAsyncProcessor::InteractionConstructorMap& getInteractionConstructorMap();
170   std::unique_ptr<apache::thrift::Tile> createInteractionImpl(const std::string& name) override;
171  private:
172   static const MyServiceAsyncProcessor::ProcessMap kOwnProcessMap_;
173   static const MyServiceAsyncProcessor::InteractionConstructorMap interactionConstructorMap_;
174  private:
createMyInteraction()175   std::unique_ptr<apache::thrift::Tile> createMyInteraction() {
176     return iface_->createMyInteraction();
177   }
createMyInteractionFast()178   std::unique_ptr<apache::thrift::Tile> createMyInteractionFast() {
179     return iface_->createMyInteractionFast();
180   }
createSerialInteraction()181   std::unique_ptr<apache::thrift::Tile> createSerialInteraction() {
182     return iface_->createSerialInteraction();
183   }
184   template <typename ProtocolIn_, typename ProtocolOut_>
185   void setUpAndProcess_foo(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
186   template <typename ProtocolIn_, typename ProtocolOut_>
187   void process_foo(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx,folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
188   template <class ProtocolIn_, class ProtocolOut_>
189   static apache::thrift::SerializedResponse return_foo(apache::thrift::ContextStack* ctx);
190   template <class ProtocolIn_, class ProtocolOut_>
191   static void throw_wrapped_foo(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
192   template <typename ProtocolIn_, typename ProtocolOut_>
193   void setUpAndProcess_MyInteraction_frobnicate(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
194   template <typename ProtocolIn_, typename ProtocolOut_>
195   void process_MyInteraction_frobnicate(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx,folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
196   template <class ProtocolIn_, class ProtocolOut_>
197   static apache::thrift::SerializedResponse return_MyInteraction_frobnicate(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
198   template <class ProtocolIn_, class ProtocolOut_>
199   static void throw_wrapped_MyInteraction_frobnicate(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
200   template <typename ProtocolIn_, typename ProtocolOut_>
201   void setUpAndProcess_MyInteraction_ping(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
202   template <typename ProtocolIn_, typename ProtocolOut_>
203   void process_MyInteraction_ping(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx,folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
204   template <typename ProtocolIn_, typename ProtocolOut_>
205   void setUpAndProcess_MyInteraction_truthify(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
206   template <typename ProtocolIn_, typename ProtocolOut_>
207   void process_MyInteraction_truthify(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx,folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
208   template <class ProtocolIn_, class ProtocolOut_>
209   static apache::thrift::ResponseAndServerStreamFactory return_MyInteraction_truthify(apache::thrift::ContextStack* ctx, folly::Executor::KeepAlive<> executor, ::apache::thrift::ServerStream<bool>&& _return);
210   template <class ProtocolIn_, class ProtocolOut_>
211   static void throw_wrapped_MyInteraction_truthify(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
212   template <typename ProtocolIn_, typename ProtocolOut_>
213   void setUpAndProcess_MyInteraction_encode(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
214   template <typename ProtocolIn_, typename ProtocolOut_>
215   void process_MyInteraction_encode(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx,folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
216   template <class ProtocolIn_, class ProtocolOut_>
217   static std::pair<apache::thrift::SerializedResponse, apache::thrift::detail::SinkConsumerImpl> return_MyInteraction_encode(apache::thrift::ContextStack* ctx, ::apache::thrift::ResponseAndSinkConsumer<::std::set<::std::int32_t>, ::std::string, ::std::string>&& _return, folly::Executor::KeepAlive<> executor);
218   template <class ProtocolIn_, class ProtocolOut_>
219   static void throw_wrapped_MyInteraction_encode(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
220   template <typename ProtocolIn_, typename ProtocolOut_>
221   void setUpAndProcess_MyInteractionFast_frobnicate(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
222   template <typename ProtocolIn_, typename ProtocolOut_>
223   void process_MyInteractionFast_frobnicate(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx,folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
224   template <class ProtocolIn_, class ProtocolOut_>
225   static apache::thrift::SerializedResponse return_MyInteractionFast_frobnicate(apache::thrift::ContextStack* ctx, ::std::int32_t const& _return);
226   template <class ProtocolIn_, class ProtocolOut_>
227   static void throw_wrapped_MyInteractionFast_frobnicate(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
228   template <typename ProtocolIn_, typename ProtocolOut_>
229   void setUpAndProcess_MyInteractionFast_ping(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
230   template <typename ProtocolIn_, typename ProtocolOut_>
231   void process_MyInteractionFast_ping(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx,folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
232   template <typename ProtocolIn_, typename ProtocolOut_>
233   void setUpAndProcess_MyInteractionFast_truthify(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
234   template <typename ProtocolIn_, typename ProtocolOut_>
235   void process_MyInteractionFast_truthify(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx,folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
236   template <class ProtocolIn_, class ProtocolOut_>
237   static apache::thrift::ResponseAndServerStreamFactory return_MyInteractionFast_truthify(apache::thrift::ContextStack* ctx, folly::Executor::KeepAlive<> executor, ::apache::thrift::ServerStream<bool>&& _return);
238   template <class ProtocolIn_, class ProtocolOut_>
239   static void throw_wrapped_MyInteractionFast_truthify(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
240   template <typename ProtocolIn_, typename ProtocolOut_>
241   void setUpAndProcess_MyInteractionFast_encode(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
242   template <typename ProtocolIn_, typename ProtocolOut_>
243   void process_MyInteractionFast_encode(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx,folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
244   template <class ProtocolIn_, class ProtocolOut_>
245   static std::pair<apache::thrift::SerializedResponse, apache::thrift::detail::SinkConsumerImpl> return_MyInteractionFast_encode(apache::thrift::ContextStack* ctx, ::apache::thrift::ResponseAndSinkConsumer<::std::set<::std::int32_t>, ::std::string, ::std::string>&& _return, folly::Executor::KeepAlive<> executor);
246   template <class ProtocolIn_, class ProtocolOut_>
247   static void throw_wrapped_MyInteractionFast_encode(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
248   template <typename ProtocolIn_, typename ProtocolOut_>
249   void setUpAndProcess_SerialInteraction_frobnicate(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx, folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
250   template <typename ProtocolIn_, typename ProtocolOut_>
251   void process_SerialInteraction_frobnicate(apache::thrift::ResponseChannelRequest::UniquePtr req, apache::thrift::SerializedCompressedRequest&& serializedRequest, apache::thrift::Cpp2RequestContext* ctx,folly::EventBase* eb, apache::thrift::concurrency::ThreadManager* tm);
252   template <class ProtocolIn_, class ProtocolOut_>
253   static apache::thrift::SerializedResponse return_SerialInteraction_frobnicate(apache::thrift::ContextStack* ctx);
254   template <class ProtocolIn_, class ProtocolOut_>
255   static void throw_wrapped_SerialInteraction_frobnicate(apache::thrift::ResponseChannelRequest::UniquePtr req,int32_t protoSeqId,apache::thrift::ContextStack* ctx,folly::exception_wrapper ew,apache::thrift::Cpp2RequestContext* reqCtx);
256  public:
MyServiceAsyncProcessor(MyServiceSvIf * iface)257   MyServiceAsyncProcessor(MyServiceSvIf* iface) :
258       iface_(iface) {}
~MyServiceAsyncProcessor()259   ~MyServiceAsyncProcessor() override {}
260 };
261 
262 } // cpp2
263