diff options
author | Marek Kotewicz <marek.kotewicz@gmail.com> | 2015-01-14 01:40:01 +0800 |
---|---|---|
committer | Marek Kotewicz <marek.kotewicz@gmail.com> | 2015-01-14 01:40:01 +0800 |
commit | 422dc05bb054b86d72b313edc2e7cb79dfb70ba3 (patch) | |
tree | 102bca194f11cdedc342e04fac790d7d7444021d /lib/web3.js | |
parent | 9a8f45ee30aafad9f40beb646cd0be846277e0ea (diff) | |
download | go-tangerine-422dc05bb054b86d72b313edc2e7cb79dfb70ba3.tar go-tangerine-422dc05bb054b86d72b313edc2e7cb79dfb70ba3.tar.gz go-tangerine-422dc05bb054b86d72b313edc2e7cb79dfb70ba3.tar.bz2 go-tangerine-422dc05bb054b86d72b313edc2e7cb79dfb70ba3.tar.lz go-tangerine-422dc05bb054b86d72b313edc2e7cb79dfb70ba3.tar.xz go-tangerine-422dc05bb054b86d72b313edc2e7cb79dfb70ba3.tar.zst go-tangerine-422dc05bb054b86d72b313edc2e7cb79dfb70ba3.zip |
ProviderManager separated to providermanager.js file
Diffstat (limited to 'lib/web3.js')
-rw-r--r-- | lib/web3.js | 82 |
1 files changed, 1 insertions, 81 deletions
diff --git a/lib/web3.js b/lib/web3.js index 527022c62..47decb8bd 100644 --- a/lib/web3.js +++ b/lib/web3.js @@ -24,6 +24,7 @@ */ var Filter = require('./filter'); +var ProviderManager = require('./providermanager'); /// Recursively resolves all promises in given object and replaces the resolved values with promises /// @param any object/array/promise/anything else.. @@ -374,87 +375,6 @@ var shhWatch = { setupMethods(shhWatch, shhWatchMethods()); -/// Provider manager object prototype -var ProviderManager = function() { - this.queued = []; - this.polls = []; - this.ready = false; - this.provider = undefined; - this.id = 1; - - var self = this; - var poll = function () { - if (self.provider && self.provider.poll) { - self.polls.forEach(function (data) { - data.data._id = self.id; - self.id++; - self.provider.poll(data.data, data.id); - }); - } - setTimeout(poll, 12000); - }; - poll(); -}; - -/// sends outgoing requests, if provider is not available, enqueue the request -ProviderManager.prototype.send = function(data, cb) { - data._id = this.id; - if (cb) { - web3._callbacks[data._id] = cb; - } - - data.args = data.args || []; - this.id++; - - if(this.provider !== undefined) { - this.provider.send(data); - } else { - console.warn("provider is not set"); - this.queued.push(data); - } -}; - -/// setups provider, which will be used for sending messages -ProviderManager.prototype.set = function(provider) { - if(this.provider !== undefined && this.provider.unload !== undefined) { - this.provider.unload(); - } - - this.provider = provider; - this.ready = true; -}; - -/// resends queued messages -ProviderManager.prototype.sendQueued = function() { - for(var i = 0; this.queued.length; i++) { - // Resend - this.send(this.queued[i]); - } -}; - -/// @returns true if the provider i properly set -ProviderManager.prototype.installed = function() { - return this.provider !== undefined; -}; - -/// this method is only used, when we do not have native qt bindings and have to do polling on our own -/// should be callled, on start watching for eth/shh changes -ProviderManager.prototype.startPolling = function (data, pollId) { - if (!this.provider || !this.provider.poll) { - return; - } - this.polls.push({data: data, id: pollId}); -}; - -/// should be called to stop polling for certain watch changes -ProviderManager.prototype.stopPolling = function (pollId) { - for (var i = this.polls.length; i--;) { - var poll = this.polls[i]; - if (poll.id === pollId) { - this.polls.splice(i, 1); - } - } -}; web3.provider = new ProviderManager(); |