1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  package org.waarp.openr66.protocol.networkhandler;
21  
22  import org.waarp.common.lru.ConcurrentUtility;
23  
24  import java.util.Set;
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  public class ClientNetworkChannels {
38  
39    private final String hostId;
40    private final Set<NetworkChannelReference> networkChannelReferences =
41        ConcurrentUtility.newConcurrentSet();
42  
43    public ClientNetworkChannels(final String hostId) {
44      this.hostId = hostId;
45    }
46  
47    public final void add(final NetworkChannelReference networkChannelReference) {
48      networkChannelReferences.add(networkChannelReference);
49      networkChannelReference.clientNetworkChannels = this;
50      networkChannelReference.setHostId(hostId);
51    }
52  
53    public final void remove(
54        final NetworkChannelReference networkChannelReference) {
55      networkChannelReferences.remove(networkChannelReference);
56    }
57  
58    public final Set<NetworkChannelReference> getNetworkChannelReferences() {
59      return networkChannelReferences;
60    }
61  
62    public final boolean isEmpty() {
63      return networkChannelReferences.isEmpty();
64    }
65  
66    public final int size() {
67      return networkChannelReferences.size();
68    }
69  
70    public final boolean shutdownAllNetworkChannels() {
71      boolean status = false;
72      for (final NetworkChannelReference networkChannelReference : networkChannelReferences) {
73        NetworkTransaction.shuttingDownNetworkChannel(networkChannelReference);
74        status = true;
75      }
76      networkChannelReferences.clear();
77      return status;
78    }
79  
80    public final String getHostId() {
81      return hostId;
82    }
83  }