summaryrefslogtreecommitdiff
path: root/js/src/Ice/browser/EndpointFactory.js
blob: c8481c654b5603207900413956328f8bcebb3a4a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// **********************************************************************
//
// 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/Class");
    require("Ice/Endpoint");

    require("Ice/browser/EndpointInfo");
    require("Ice/browser/EndpointI");
    
    var Ice = global.Ice || {};
    var IceWS = global.IceWS || {};
    
    var EndpointI = IceWS.EndpointI;

    var EndpointFactory = Ice.Class({
        __init__:function(instance, secure)
        {
            this._instance = instance;
            this._secure = secure;
        },
        type: function()
        {
            return this._secure ? IceWS.WSSEndpointType : IceWS.WSEndpointType;
        },
        protocol: function()
        {
            return this._secure ? "wss" : "ws";
        },
        create: function(str, oaEndpoint)
        {
            return EndpointI.fromString(this._instance, this._secure, str, oaEndpoint);
        },
        read: function(s)
        {
            return EndpointI.fromStream(s, this._secure);
        },
        destroy: function()
        {
            this._instance = null;
        }
    });
    IceWS.EndpointFactory = EndpointFactory;
    global.IceWS = IceWS;
}(typeof (global) === "undefined" ? window : global));