summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/Endpoint.java
blob: 33f9425eb57dfc212c5a69b61965804c475bea90 (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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
// **********************************************************************
//
// Copyright (c) 2001
// ZeroC, Inc.
// Huntsville, AL, USA
//
// All Rights Reserved
//
// **********************************************************************

package IceInternal;

public interface Endpoint extends java.lang.Comparable
{
    //
    // Marshal the endpoint
    //
    void streamWrite(BasicStream s);

    //
    // Convert the endpoint to its string form
    //
    String toString();

    //
    // Return the endpoint type
    //
    short type();

    //
    // Return the timeout for the endpoint in milliseconds. 0 means
    // non-blocking, -1 means no timeout.
    //
    int timeout();

    //
    // Return a new endpoint with a different timeout value, provided
    // that timeouts are supported by the endpoint. Otherwise the same
    // endpoint is returned.
    //
    Endpoint timeout(int t);

    //
    // Return true if the endpoint is datagram-based.
    //
    boolean datagram();

    //
    // Return true if the endpoint is secure.
    //
    boolean secure();

    //
    // Return true if the endpoint type is unknown.
    //
    boolean unknown();

    //
    // Return a client side transceiver for this endpoint, or null if a
    // transceiver can only be created by a connector.
    //
    Transceiver clientTransceiver();

    //
    // Return a server side transceiver for this endpoint, or null if a
    // transceiver can only be created by an acceptor. In case a
    // transceiver is created, this operation also returns a new
    // "effective" endpoint, which might differ from this endpoint,
    // for example, if a dynamic port number is assigned.
    //
    Transceiver serverTransceiver(EndpointHolder endpoint);

    //
    // Return a connector for this endpoint, or null if no connector
    // is available.
    //
    Connector connector();

    //
    // Return an acceptor for this endpoint, or null if no acceptors
    // is available. In case an acceptor is created, this operation
    // also returns a new "effective" endpoint, which might differ
    // from this endpoint, for example, if a dynamic port number is
    // assigned.
    //
    Acceptor acceptor(EndpointHolder endpoint);

    //
    // Check whether the endpoint is equivalent to a specific
    // Transceiver or Acceptor
    //
    boolean equivalent(Transceiver transceiver);
    boolean equivalent(Acceptor acceptor);

    //
    // Compare endpoints for sorting purposes
    //
    boolean equals(java.lang.Object obj);
    int compareTo(java.lang.Object obj); // From java.lang.Comparable
}