1 /**
2  * Autogenerated by Thrift
3  *
4  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5  *  @generated
6  */
7 
8 package test.fixtures.basic_swift_bean;
9 
10 import static com.facebook.swift.service.SwiftConstants.STICKY_HASH_KEY;
11 
12 import java.util.*;
13 import java.util.concurrent.ConcurrentHashMap;
14 import java.util.concurrent.atomic.AtomicLong;
15 import org.apache.thrift.protocol.*;
16 import org.apache.thrift.ClientPushMetadata;
17 import org.apache.thrift.InteractionCreate;
18 import org.apache.thrift.InteractionTerminate;
19 import com.facebook.thrift.client.ResponseWrapper;
20 import com.facebook.thrift.client.RpcOptions;
21 
22 public class LegacyServiceReactiveClient
23   implements LegacyService.Reactive {
24   private static final AtomicLong _interactionCounter = new AtomicLong(0);
25 
26   private final org.apache.thrift.ProtocolId _protocolId;
27   private final reactor.core.publisher.Mono<? extends com.facebook.thrift.client.RpcClient> _rpcClient;
28   private final Map<String, String> _headers;
29   private final Map<String, String> _persistentHeaders;
30   private final Set<Long> _activeInteractions;
31 
32   private static final TField _getPoints_KEY_FIELD_DESC = new TField("key", TType.SET, (short)1);
33   private static final TField _getPoints_LEGACY_STUFF_FIELD_DESC = new TField("legacyStuff", TType.I64, (short)-1);
34   private static final java.util.Map<Short, com.facebook.thrift.payload.Reader> _getPoints_EXCEPTION_READERS = java.util.Collections.emptyMap();
35 
36   static {
37   }
38 
LegacyServiceReactiveClient(org.apache.thrift.ProtocolId _protocolId, reactor.core.publisher.Mono<? extends com.facebook.thrift.client.RpcClient> _rpcClient)39   public LegacyServiceReactiveClient(org.apache.thrift.ProtocolId _protocolId, reactor.core.publisher.Mono<? extends com.facebook.thrift.client.RpcClient> _rpcClient) {
40 
41     this._protocolId = _protocolId;
42     this._rpcClient = _rpcClient;
43     this._headers = java.util.Collections.emptyMap();
44     this._persistentHeaders = java.util.Collections.emptyMap();
45     this._activeInteractions = ConcurrentHashMap.newKeySet();
46   }
47 
LegacyServiceReactiveClient(org.apache.thrift.ProtocolId _protocolId, reactor.core.publisher.Mono<? extends com.facebook.thrift.client.RpcClient> _rpcClient, Map<String, String> _headers, Map<String, String> _persistentHeaders)48   public LegacyServiceReactiveClient(org.apache.thrift.ProtocolId _protocolId, reactor.core.publisher.Mono<? extends com.facebook.thrift.client.RpcClient> _rpcClient, Map<String, String> _headers, Map<String, String> _persistentHeaders) {
49     this(_protocolId, _rpcClient, _headers, _persistentHeaders, new AtomicLong(), ConcurrentHashMap.newKeySet());
50   }
51 
LegacyServiceReactiveClient(org.apache.thrift.ProtocolId _protocolId, reactor.core.publisher.Mono<? extends com.facebook.thrift.client.RpcClient> _rpcClient, Map<String, String> _headers, Map<String, String> _persistentHeaders, AtomicLong interactionCounter, Set<Long> activeInteractions)52   public LegacyServiceReactiveClient(org.apache.thrift.ProtocolId _protocolId, reactor.core.publisher.Mono<? extends com.facebook.thrift.client.RpcClient> _rpcClient, Map<String, String> _headers, Map<String, String> _persistentHeaders, AtomicLong interactionCounter, Set<Long> activeInteractions) {
53 
54     this._protocolId = _protocolId;
55     this._rpcClient = _rpcClient;
56     this._headers = _headers;
57     this._persistentHeaders = _persistentHeaders;
58     this._activeInteractions = activeInteractions;
59   }
60 
61   @java.lang.Override
dispose()62   public void dispose() {}
63 
_creategetPointsWriter(final Set<String> key, final long legacyStuff)64   private com.facebook.thrift.payload.Writer _creategetPointsWriter(final Set<String> key, final long legacyStuff) {
65     return oprot -> {
66       try {
67         {
68           oprot.writeFieldBegin(_getPoints_KEY_FIELD_DESC);
69 
70           Set<String> _iter0 = key;
71 
72           oprot.writeSetBegin(new TSet(TType.STRING, _iter0.size()));
73         for (String _iter1 : _iter0) {
74           oprot.writeString(_iter1);
75         }
76         oprot.writeSetEnd();
77           oprot.writeFieldEnd();
78         }
79 
80         {
81           oprot.writeFieldBegin(_getPoints_LEGACY_STUFF_FIELD_DESC);
82 
83           long _iter0 = legacyStuff;
84 
85           oprot.writeI64(legacyStuff);
86           oprot.writeFieldEnd();
87         }
88 
89 
90       } catch (Throwable _e) {
91         throw reactor.core.Exceptions.propagate(_e);
92       }
93     };
94   }
95 
96   private static final com.facebook.thrift.payload.Reader _getPoints_READER =
97     oprot -> {
98               try {
99                 Map<String, List<Integer>> _r;
100             {
101             TMap _map = oprot.readMapBegin();
102             _r = new HashMap<String, List<Integer>>(Math.max(0, _map.size));
103             for (int _i = 0; (_map.size < 0) ? oprot.peekMap() : (_i < _map.size); _i++) {
104 
105                 String _key1 = oprot.readString();
106                 List<Integer> _value1;
107             {
108             TList _list1 = oprot.readListBegin();
109             _value1 = new ArrayList<Integer>(Math.max(0, _list1.size));
110             for (int _i1 = 0; (_list1.size < 0) ? oprot.peekList() : (_i1 < _list1.size); _i1++) {
111 
112 
113                 int _value2 = oprot.readI32();
114 
115 
116                 _value1.add(_value2);
117 
118             }
119             oprot.readListEnd();
120             }
121 
122                 _r.put(_key1, _value1);
123             }
124             }
125             oprot.readMapEnd();
126                 return _r;
127 
128 
129               } catch (Throwable _e) {
130                 throw reactor.core.Exceptions.propagate(_e);
131               }
132             };
133 
134 
135   @java.lang.Override
136   public reactor.core.publisher.Mono<com.facebook.thrift.client.ResponseWrapper<Map<String, List<Integer>>>> getPointsWrapper(final Set<String> key, final long legacyStuff,  final com.facebook.thrift.client.RpcOptions rpcOptions) {
137     return _rpcClient
138       .flatMap(_rpc -> {
139         org.apache.thrift.RequestRpcMetadata _metadata = new org.apache.thrift.RequestRpcMetadata.Builder()
140                 .setName("getPoints")
141                 .setKind(org.apache.thrift.RpcKind.SINGLE_REQUEST_SINGLE_RESPONSE)
142                 .setOtherMetadata(getHeaders(rpcOptions))
143                 .setProtocol(_protocolId)
144                 .build();
145 
146             com.facebook.thrift.payload.ClientRequestPayload<Map<String, List<Integer>>> _crp =
147                 com.facebook.thrift.payload.ClientRequestPayload.create(
148                     _creategetPointsWriter(key, legacyStuff),
149                     _getPoints_READER,
150                     _getPoints_EXCEPTION_READERS,
151                     _metadata,
152                     java.util.Collections.emptyMap());
153 
154             return _rpc
155                 .singleRequestSingleResponse(_crp, rpcOptions).doOnNext(_p -> {if(_p.getException() != null) throw reactor.core.Exceptions.propagate(_p.getException());});
156       });
157   }
158 
159   @java.lang.Override
160   public reactor.core.publisher.Mono<Map<String, List<Integer>>> getPoints(final Set<String> key, final long legacyStuff,  final com.facebook.thrift.client.RpcOptions rpcOptions) {
161     return getPointsWrapper(key, legacyStuff,  rpcOptions).map(_p -> _p.getData());
162   }
163 
164   @java.lang.Override
165   public reactor.core.publisher.Mono<Map<String, List<Integer>>> getPoints(final Set<String> key, final long legacyStuff) {
166     return getPoints(key, legacyStuff,  com.facebook.thrift.client.RpcOptions.EMPTY);
167   }
168 
169 
170 
171   private Map<String, String> getHeaders(com.facebook.thrift.client.RpcOptions rpcOptions) {
172       Map<String, String> headers = new HashMap<>();
173       if (rpcOptions.getRequestHeaders() != null && !rpcOptions.getRequestHeaders().isEmpty()) {
174           headers.putAll(rpcOptions.getRequestHeaders());
175       }
176       if (_headers != null && !_headers.isEmpty()) {
177           headers.putAll(_headers);
178       }
179       if (_persistentHeaders != null && !_persistentHeaders.isEmpty()) {
180           headers.putAll(_persistentHeaders);
181       }
182       return headers;
183   }
184 }
185