Class MCGroupImpl
java.lang.Object
com.biglybt.net.udp.mc.impl.MCGroupImpl
- All Implemented Interfaces:
MCGroup
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final CopyOnWriteList<MCGroupAdapter> private static AsyncDispatcherprivate static AEMonitorprivate intprivate Map<String, Set<InetAddress>> protected final InetSocketAddressprivate final Stringprivate final intprivate booleanprivate booleanprotected final booleanprivate static NetworkAdminprivate static final intprivate static Map<String, MCGroupImpl> private Map<String, MulticastSocket> private booleanprotected AEMonitorprivate static final intprivate booleanprivate static final booleanprivate static VirtualAbstractChannelSelectorprivate static VirtualAbstractChannelSelector -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivateMCGroupImpl(MCGroupAdapter _adapter, String _group_address, int _group_port, int _control_port) -
Method Summary
Modifier and TypeMethodDescriptionprivate voidaddAdapter(MCGroupAdapter adapter) intstatic MCGroupImplgetSingleton(MCGroupAdapter adapter, String group_address, int group_port) private voidhandleSocket(NetworkInterface network_interface, InetAddress local_address, DatagramSocket socket, boolean log_on_stop) private booleaninterfaceSelected(NetworkInterface ni, String[] selected_interfaces) booleanisIPv6()private voidprivate voidprivate voidprocessNetworkInterfaces(boolean start_of_day) private voidreceivePacket(NetworkInterface network_interface, InetAddress local_address, DatagramPacket packet) private voidreceivePacket(NetworkInterface network_interface, InetAddress local_address, ByteBuffer buffer, InetSocketAddress remote) voidsendToGroup(byte[] data, String[] selected_interfaces) voidsendToGroup(String param_data, String[] selected_interfaces) Sends to the group but will replace any occurrence of %AZINTERFACE% in the string with the interface being used for the sendprivate voidsendToGroupSupport(byte[] data, String[] selected_interfaces) private voidsendToGroupSupport(String param_data, String[] selected_interfaces) voidsendToMember(InetSocketAddress address, byte[] data) private voidprivate booleanvalidNetworkAddress(NetworkInterface network_interface, InetAddress ni_address)
-
Field Details
-
TTL
private static final int TTL- See Also:
-
PACKET_SIZE
private static final int PACKET_SIZE- See Also:
-
USE_NIO
private static final boolean USE_NIO- See Also:
-
singletons
-
class_mon
-
async_dispatcher
-
network_admin
-
ignore_v4
private volatile boolean ignore_v4 -
ignore_v6
private volatile boolean ignore_v6 -
v4_selector
-
v6_selector
-
adapters
-
group_address_str
-
group_port
private final int group_port -
group_address
-
ipv6
protected final boolean ipv6 -
control_port
private int control_port -
ttl_problem_reported
private boolean ttl_problem_reported -
sso_problem_reported
private boolean sso_problem_reported -
this_mon
-
current_registrations
-
socket_cache
-
-
Constructor Details
-
MCGroupImpl
private MCGroupImpl(MCGroupAdapter _adapter, String _group_address, int _group_port, int _control_port) throws MCGroupException - Throws:
MCGroupException
-
-
Method Details
-
getSingleton
public static MCGroupImpl getSingleton(MCGroupAdapter adapter, String group_address, int group_port) throws MCGroupException - Throws:
MCGroupException
-
addAdapter
-
trace
-
log
-
log
-
isIPv6
-
processNetworkInterfaces
- Throws:
SocketException
-
getControlPort
public int getControlPort()- Specified by:
getControlPortin interfaceMCGroup
-
validNetworkAddress
-
sendToGroup
- Specified by:
sendToGroupin interfaceMCGroup
-
interfaceSelected
-
sendToGroupSupport
-
sendToGroup
Description copied from interface:MCGroupSends to the group but will replace any occurrence of %AZINTERFACE% in the string with the interface being used for the send- Specified by:
sendToGroupin interfaceMCGroup- Parameters:
param_data-
-
sendToGroupSupport
-
handleSocket
private void handleSocket(NetworkInterface network_interface, InetAddress local_address, DatagramSocket socket, boolean log_on_stop) -
receivePacket
private void receivePacket(NetworkInterface network_interface, InetAddress local_address, DatagramPacket packet) -
receivePacket
private void receivePacket(NetworkInterface network_interface, InetAddress local_address, ByteBuffer buffer, InetSocketAddress remote) -
sendToMember
- Specified by:
sendToMemberin interfaceMCGroup- Throws:
MCGroupException
-