Package com.biglybt.net.udp.mc.impl
Class MCGroupImpl
- java.lang.Object
-
- com.biglybt.net.udp.mc.impl.MCGroupImpl
-
-
Field Summary
Fields Modifier and Type Field Description private MCGroupAdapter
adapter
private static AsyncDispatcher
async_dispatcher
private static AEMonitor
class_mon
private int
control_port
private java.util.Map<java.lang.String,java.util.Set<java.net.InetAddress>>
current_registrations
protected java.net.InetSocketAddress
group_address
private java.lang.String
group_address_str
private int
group_port
private boolean
instance_suspended
private static boolean
overall_suspended
private static int
PACKET_SIZE
private java.lang.String[]
selected_interfaces
private static java.util.Map<java.lang.String,MCGroupImpl>
singletons
private java.util.Map<java.lang.String,java.net.MulticastSocket>
socket_cache
private boolean
sso_problem_reported
private java.util.List<java.lang.Object[]>
suspended_threads
protected AEMonitor
this_mon
private static int
TTL
private boolean
ttl_problem_reported
-
Constructor Summary
Constructors Modifier Constructor Description private
MCGroupImpl(MCGroupAdapter _adapter, java.lang.String _group_address, int _group_port, int _control_port, java.lang.String[] _interfaces, boolean _is_suspended)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getControlPort()
static MCGroupImpl
getSingleton(MCGroupAdapter adapter, java.lang.String group_address, int group_port, int control_port, java.lang.String[] interfaces)
private void
handleSocket(java.net.NetworkInterface network_interface, java.net.InetAddress local_address, java.net.DatagramSocket socket, boolean log_on_stop)
private boolean
interfaceSelected(java.net.NetworkInterface ni)
private void
processNetworkInterfaces(boolean start_of_day)
private void
receivePacket(java.net.NetworkInterface network_interface, java.net.InetAddress local_address, java.net.DatagramPacket packet)
void
sendToGroup(byte[] data)
void
sendToGroup(java.lang.String param_data)
Sends to the group but will replace any occurrence of %AZINTERFACE% in the string with the interface being used for the sendprivate void
sendToGroupSupport(byte[] data)
private void
sendToGroupSupport(java.lang.String param_data)
void
sendToMember(java.net.InetSocketAddress address, byte[] data)
private void
setInstanceSuspended(boolean _suspended)
static void
setSuspended(boolean suspended)
private boolean
validNetworkAddress(java.net.NetworkInterface network_interface, java.net.InetAddress ni_address)
-
-
-
Field Detail
-
TTL
private static final int TTL
- See Also:
- Constant Field Values
-
PACKET_SIZE
private static final int PACKET_SIZE
- See Also:
- Constant Field Values
-
overall_suspended
private static boolean overall_suspended
-
singletons
private static java.util.Map<java.lang.String,MCGroupImpl> singletons
-
class_mon
private static AEMonitor class_mon
-
async_dispatcher
private static AsyncDispatcher async_dispatcher
-
adapter
private MCGroupAdapter adapter
-
group_address_str
private java.lang.String group_address_str
-
group_port
private int group_port
-
control_port
private int control_port
-
group_address
protected java.net.InetSocketAddress group_address
-
selected_interfaces
private java.lang.String[] selected_interfaces
-
ttl_problem_reported
private boolean ttl_problem_reported
-
sso_problem_reported
private boolean sso_problem_reported
-
this_mon
protected AEMonitor this_mon
-
current_registrations
private java.util.Map<java.lang.String,java.util.Set<java.net.InetAddress>> current_registrations
-
instance_suspended
private volatile boolean instance_suspended
-
suspended_threads
private java.util.List<java.lang.Object[]> suspended_threads
-
socket_cache
private java.util.Map<java.lang.String,java.net.MulticastSocket> socket_cache
-
-
Constructor Detail
-
MCGroupImpl
private MCGroupImpl(MCGroupAdapter _adapter, java.lang.String _group_address, int _group_port, int _control_port, java.lang.String[] _interfaces, boolean _is_suspended) throws MCGroupException
- Throws:
MCGroupException
-
-
Method Detail
-
getSingleton
public static MCGroupImpl getSingleton(MCGroupAdapter adapter, java.lang.String group_address, int group_port, int control_port, java.lang.String[] interfaces) throws MCGroupException
- Throws:
MCGroupException
-
setSuspended
public static void setSuspended(boolean suspended)
-
setInstanceSuspended
private void setInstanceSuspended(boolean _suspended)
-
processNetworkInterfaces
private void processNetworkInterfaces(boolean start_of_day) throws java.net.SocketException
- Throws:
java.net.SocketException
-
getControlPort
public int getControlPort()
- Specified by:
getControlPort
in interfaceMCGroup
-
interfaceSelected
private boolean interfaceSelected(java.net.NetworkInterface ni)
-
validNetworkAddress
private boolean validNetworkAddress(java.net.NetworkInterface network_interface, java.net.InetAddress ni_address)
-
sendToGroup
public void sendToGroup(byte[] data)
- Specified by:
sendToGroup
in interfaceMCGroup
-
sendToGroupSupport
private void sendToGroupSupport(byte[] data)
-
sendToGroup
public void sendToGroup(java.lang.String param_data)
Description copied from interface:MCGroup
Sends to the group but will replace any occurrence of %AZINTERFACE% in the string with the interface being used for the send- Specified by:
sendToGroup
in interfaceMCGroup
-
sendToGroupSupport
private void sendToGroupSupport(java.lang.String param_data)
-
handleSocket
private void handleSocket(java.net.NetworkInterface network_interface, java.net.InetAddress local_address, java.net.DatagramSocket socket, boolean log_on_stop)
-
receivePacket
private void receivePacket(java.net.NetworkInterface network_interface, java.net.InetAddress local_address, java.net.DatagramPacket packet)
-
sendToMember
public void sendToMember(java.net.InetSocketAddress address, byte[] data) throws MCGroupException
- Specified by:
sendToMember
in interfaceMCGroup
- Throws:
MCGroupException
-
-