diff options
Diffstat (limited to 'js/src/Ice/Initialize.js')
-rw-r--r-- | js/src/Ice/Initialize.js | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/js/src/Ice/Initialize.js b/js/src/Ice/Initialize.js new file mode 100644 index 00000000000..e1dd0c4a2b1 --- /dev/null +++ b/js/src/Ice/Initialize.js @@ -0,0 +1,104 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +(function(global){ + require("Ice/Protocol"); + require("Ice/LocalException"); + require("Ice/Communicator"); + require("Ice/Properties"); + + var Ice = global.Ice || {}; + var Protocol = Ice.Protocol; + + // + // Ice.InitializationData + // + Ice.InitializationData = function() + { + this.properties = null; + this.logger = null; + }; + + Ice.InitializationData.prototype.clone = function() + { + var r = new Ice.InitializationData(); + r.properties = this.properties; + r.logger = this.logger; + return r; + }; + + // + // Ice.initialize() + // + Ice.initialize = function(arg1, arg2) + { + var args = null; + var initData = null; + + if(arg1 instanceof Array) + { + args = arg1; + } + else if(arg1 instanceof Ice.InitializationData) + { + initData = arg1; + } + else if(arg1 !== undefined && arg1 !== null) + { + throw new Ice.InitializationException("invalid argument to initialize"); + } + + if(arg2 !== undefined && arg2 !== null) + { + if(arg2 instanceof Ice.InitializationData && initData === null) + { + initData = arg2; + } + else + { + throw new Ice.InitializationException("invalid argument to initialize"); + } + + } + + if(initData === null) + { + initData = new Ice.InitializationData(); + } + else + { + initData = initData.clone(); + } + initData.properties = Ice.createProperties(args, initData.properties); + + var result = new Ice.Communicator(initData); + result.finishSetup(null); + return result; + }; + + // + // Ice.createProperties() + // + Ice.createProperties = function(args, defaults) + { + return new Ice.Properties(args, defaults); + }; + + Ice.currentProtocol = function() + { + return Protocol.currentProtocol.clone(); + }; + + Ice.currentEncoding = function() + { + return Protocol.currentEncoding.clone(); + }; + + global.Ice = Ice; +}(typeof (global) === "undefined" ? window : global)); |