diff options
author | murgatroid99 <mlumish@google.com> | 2015-08-13 11:24:34 -0700 |
---|---|---|
committer | murgatroid99 <mlumish@google.com> | 2015-08-13 11:24:34 -0700 |
commit | 371354673f1a16658a3fbd5a04c3dcdf9b7ef30a (patch) | |
tree | 0fc80b7506d57ebb7075c0715d6279de2608891f /src | |
parent | 937ac9b023d9a4e7fda1b84416cfa948ddb6a197 (diff) |
Modified watchState functions to match C API
Diffstat (limited to 'src')
-rw-r--r-- | src/node/ext/channel.cc | 25 | ||||
-rw-r--r-- | src/node/src/client.js | 22 | ||||
-rw-r--r-- | src/node/test/surface_test.js | 9 |
3 files changed, 11 insertions, 45 deletions
diff --git a/src/node/ext/channel.cc b/src/node/ext/channel.cc index aa1ca03175..907178f102 100644 --- a/src/node/ext/channel.cc +++ b/src/node/ext/channel.cc @@ -62,25 +62,6 @@ using v8::Persistent; using v8::String; using v8::Value; -class ConnectivityStateOp : public Op { - public: - Handle<Value> GetNodeValue() const { - return NanNew<Number>(new_state); - } - - bool ParseOp(Handle<Value> value, grpc_op *out, - shared_ptr<Resources> resources) { - return true; - } - - grpc_connectivity_state new_state; - - protected: - std::string GetTypeString() const { - return "new_state"; - } -}; - NanCallback *Channel::constructor; Persistent<FunctionTemplate> Channel::fun_tpl; @@ -252,12 +233,10 @@ NAN_METHOD(Channel::WatchConnectivityState) { Handle<Function> callback_func = args[2].As<Function>(); NanCallback *callback = new NanCallback(callback_func); Channel *channel = ObjectWrap::Unwrap<Channel>(args.This()); - ConnectivityStateOp *op = new ConnectivityStateOp(); unique_ptr<OpVec> ops(new OpVec()); - ops->push_back(unique_ptr<Op>(op)); grpc_channel_watch_connectivity_state( - channel->wrapped_channel, last_state, &op->new_state, - MillisecondsToTimespec(deadline), CompletionQueueAsyncWorker::GetQueue(), + channel->wrapped_channel, last_state, MillisecondsToTimespec(deadline), + CompletionQueueAsyncWorker::GetQueue(), new struct tag(callback, ops.release(), shared_ptr<Resources>(nullptr))); diff --git a/src/node/src/client.js b/src/node/src/client.js index f47e030f89..0cd29e5b95 100644 --- a/src/node/src/client.js +++ b/src/node/src/client.js @@ -562,9 +562,8 @@ exports.makeClientConstructor = function(methods, serviceName) { * Wait for the client to be ready. The callback will be called when the * client has successfully connected to the server, and it will be called * with an error if the attempt to connect to the server has unrecoverablly - * failed or if the deadline expires. This function does not automatically - * attempt to initiate the connection, so the callback will not be called - * unless you also start a method call or call $tryConnect. + * failed or if the deadline expires. This function will make the channel + * start connecting if it has not already done so. * @param {(Date|Number)} deadline When to stop waiting for a connection. Pass * Infinity to wait forever. * @param {function(Error)} callback The callback to call when done attempting @@ -572,12 +571,11 @@ exports.makeClientConstructor = function(methods, serviceName) { */ Client.prototype.$waitForReady = function(deadline, callback) { var self = this; - var checkState = function(err, result) { + var checkState = function(err) { if (err) { callback(new Error('Failed to connect before the deadline')); } - var new_state = result.new_state; - console.log(result); + var new_state = this.channel.getConnectivityState(true); if (new_state === grpc.connectivityState.READY) { callback(); } else if (new_state === grpc.connectivityState.FATAL_FAILURE) { @@ -586,17 +584,7 @@ exports.makeClientConstructor = function(methods, serviceName) { self.channel.watchConnectivityState(new_state, deadline, checkState); } }; - checkState(null, {new_state: this.channel.getConnectivityState()}); - }; - - /** - * Attempt to connect to the server. That will happen automatically if - * you try to make a method call with this client, so this function should - * only be used if you want to know that you have a connection before making - * any calls. - */ - Client.prototype.$tryConnect = function() { - this.channel.getConnectivityState(true); + checkState(); }; _.each(methods, function(attrs, name) { diff --git a/src/node/test/surface_test.js b/src/node/test/surface_test.js index f002c8b6dd..b0f3aa4b38 100644 --- a/src/node/test/surface_test.js +++ b/src/node/test/surface_test.js @@ -149,20 +149,19 @@ describe('Client#$waitForReady', function() { after(function() { server.shutdown(); }); - it('should complete when a call is initiated', function(done) { + it('should complete when called alone', function(done) { client.$waitForReady(Infinity, function(error) { assert.ifError(error); done(); }); - var call = client.div({}, function(err, response) {}); - call.cancel(); }); - it('should complete if $tryConnect is called', function(done) { + it('should complete when a call is initiated', function(done) { client.$waitForReady(Infinity, function(error) { assert.ifError(error); done(); }); - client.$tryConnect(); + var call = client.div({}, function(err, response) {}); + call.cancel(); }); it('should complete if called more than once', function(done) { done = multiDone(done, 2); |