summaryrefslogtreecommitdiff
path: root/matlab/lib/+Ice/EndpointInfo.m
blob: 0c756977710375d4801bcaf3adbdbdc7fe66dac0 (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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
classdef EndpointInfo < handle
    % EndpointInfo   Summary of EndpointInfo
    %
    % Base class providing access to the endpoint details.
    %
    % EndpointInfo Methods:
    %   type - Returns the type of the endpoint.
    %   datagram - Returns true if this endpoint is a datagram endpoint.
    %   secure - Returns true if this endpoint is a secure endpoint.
    %
    % EndpointInfo Properties:
    %   underlying (Ice.EndpointInfo) - The information of the underyling
    %     endpoint or an empty array if there's no underlying endpoint.
    %   timeout (int32) - The timeout for the endpoint in milliseconds.
    %   compress (logical) - Specifies whether or not compression should be
    %     used if available when using this endpoint.

    % Copyright (c) ZeroC, Inc. All rights reserved.

    methods
        function obj = EndpointInfo(type, datagram, secure, underlying, timeout, compress)
            if nargin == 3
                underlying = [];
                timeout = 0;
                compress = false;
            end
            obj.type_ = type;
            obj.datagram_ = datagram;
            obj.secure_ = secure;
            obj.underlying = underlying;
            obj.timeout = timeout;
            obj.compress = compress;
        end
        function r = type(obj)
            % type   Returns the type of the endpoint.
            %
            % Returns (int16) - The endpoint type.

            if ~isempty(obj.underlying)
                r = obj.underlying.type();
            else
                r = obj.type_;
            end
        end
        function r = datagram(obj)
            % datagram   Returns true if this endpoint is a datagram endpoint.
            %
            % Returns (logical) - True for a datagram endpoint.

            if ~isempty(obj.underlying)
                r = obj.underlying.datagram();
            else
                r = obj.datagram_;
            end
        end
        function r = secure(obj)
            % secure   Returns true if this endpoint is a secure endpoint.
            %
            % Returns (logical) - True for a secure endpoint.

            if ~isempty(obj.underlying)
                r = obj.underlying.secure();
            else
                r = obj.secure_;
            end
        end
    end
    properties(SetAccess=private)
        % underlying   The information of the underyling endpoint or an empty
        %   array if there's no underlying endpoint.
        underlying

        % timeout   The timeout for the endpoint in milliseconds. 0 means
        %   non-blocking, -1 means no timeout.
        timeout int32

        % compress   Specifies whether or not compression should be used if
        %   available when using this endpoint.
        compress logical
    end
    properties(Access=protected)
        type_
        datagram_
        secure_
    end
end