]> git.proxmox.com Git - ceph.git/blame - ceph/src/jaegertracing/thrift/lib/nodejs/lib/thrift/create_client.js
buildsys: switch source download to quincy
[ceph.git] / ceph / src / jaegertracing / thrift / lib / nodejs / lib / thrift / create_client.js
CommitLineData
f67539c2
TL
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19
20module.exports = createClient;
21
22/**
23 * Creates a new client object for the specified Thrift service.
24 * @param {object} ServiceClient - The module containing the generated service client
25 * @param {Connection} Connection - The connection to use.
26 * @returns {object} The client object.
27 */
28function createClient(ServiceClient, connection) {
29 // TODO validate required options and throw otherwise
30 if (ServiceClient.Client) {
31 ServiceClient = ServiceClient.Client;
32 }
33 // TODO detangle these initialization calls
34 // creating "client" requires
35 // - new service client instance
36 //
37 // New service client instance requires
38 // - new transport instance
39 // - protocol class reference
40 //
41 // New transport instance requires
42 // - Buffer to use (or none)
43 // - Callback to call on flush
44
45 // Wrap the write method
46 var writeCb = function(buf, seqid) {
47 connection.write(buf, seqid);
48 };
49 var transport = new connection.transport(undefined, writeCb);
50 var client = new ServiceClient(transport, connection.protocol);
51 transport.client = client;
52 connection.client = client;
53 return client;
54};