Package com.biglybt.plugin.net.buddy
Class BuddyPluginBuddy
- java.lang.Object
-
- com.biglybt.plugin.net.buddy.BuddyPluginBuddy
-
public class BuddyPluginBuddy extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
BuddyPluginBuddy.buddyConnection
protected class
BuddyPluginBuddy.buddyMessage
protected class
BuddyPluginBuddy.fragmentHandler
(package private) static interface
BuddyPluginBuddy.fragmentHandlerReceiver
static interface
BuddyPluginBuddy.ProfileUpdateInformer
-
Field Summary
Fields Modifier and Type Field Description private boolean
authorised
private boolean
check_active
private boolean
closing
private static int
CONNECTION_IDLE_TIMEOUT
private static int
CONNECTION_KEEP_ALIVE
private java.util.List<BuddyPluginBuddy.buddyConnection>
connections
private int
consec_connect_fails
private long
created_time
private java.net.InetSocketAddress
current_ip
private BuddyPluginBuddy.buddyMessage
current_message
private boolean
destroyed
private boolean
is_transient
private boolean
keep_alive_outstanding
private long
last_auto_reconnect
private long
last_connect_attempt
private java.lang.String
last_message_received
private long
last_status_check_time
private int
last_status_seq
private long
last_time_online
private java.net.InetSocketAddress
latest_ipv4
private java.net.InetSocketAddress
latest_ipv6
private long
latest_ygm_time
private static int
MAX_ACTIVE_CONNECTIONS
private static int
MAX_QUEUED_MESSAGES
private int
message_in_bytes
private int
message_in_count
private int
message_out_bytes
private int
message_out_count
private java.util.List<BuddyPluginBuddy.buddyMessage>
messages
private java.lang.String
my_name
private int
next_connection_id
private int
next_message_id
private java.lang.String
nick_name
private java.util.Set<java.lang.Long>
offline_seq_set
private boolean
online
private int
online_status
private AESemaphore
outgoing_connect_sem
private BuddyPluginBuddyMessageHandler
persistent_msg_handler
private BuddyPluginNetwork
plugin_network
private long
post_time
private java.util.List<java.lang.String>
profile_info
private long
profile_info_last
private boolean
profile_info_outstanding
private java.lang.String
public_key
private java.lang.String
received_frag_details
private java.util.List<java.lang.Long>
recent_ygm
private java.util.Set<java.lang.String>
rss_cats_read
private java.util.Set<java.lang.String>
rss_local_cats
private java.lang.Object
rss_lock
private java.util.Set<java.lang.String>
rss_remote_cats
private static int
RT_REPLY_DATA
private static int
RT_REPLY_ERROR
private static int
RT_REQUEST_DATA
private long
status_check_count
private int
subsystem
private int
tcp_port
private static boolean
TRACE
private int
udp_port
private java.util.Map<java.lang.Object,java.lang.Object>
user_data
private int
version
private boolean
ygm_active
private boolean
ygm_pending
-
Constructor Summary
Constructors Modifier Constructor Description protected
BuddyPluginBuddy(BuddyPluginNetwork _plugin_network, long _created_time, int _subsystem, boolean _authorised, java.lang.String _pk, java.lang.String _nick_name, java.lang.String _my_name, int _version, java.lang.String _rss_local_cats, java.lang.String _rss_remote_cats, int _last_status_seq, long _last_time_online, java.util.List<java.lang.Long> _recent_ygm, boolean _is_transient)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addConnection(BuddyPluginNetwork.DDBDetails _ddb_details, GenericMessageConnection _connection)
void
addLocalAuthorisedRSSTagOrCategory(java.lang.String category)
private boolean
addressesEqual(java.net.InetSocketAddress ias1, java.net.InetSocketAddress ias2)
protected boolean
addYGMMarker(long marker)
protected void
buddyActive()
protected void
buddyConnectionEstablished(boolean outgoing)
protected void
buddyMessageFragmentReceived(int num_received, int total)
protected void
buddyMessageReceived(int size)
protected void
buddyMessageSent(int size, boolean record_active)
protected boolean
catsIdentical(java.util.Set<java.lang.String> c1, java.util.Set<java.lang.String> c2)
protected java.lang.String
catsToString(java.util.Set<java.lang.String> cats)
protected void
checkPersistentDispatch()
protected void
checkTimeouts()
BuddyPlugin.CryptoResult
decrypt(byte[] payload)
protected void
destroy()
void
disconnect()
protected void
dispatchMessage()
BuddyPlugin.CryptoResult
encrypt(byte[] payload)
java.net.InetSocketAddress
getAdjustedIP()
java.util.List<java.net.InetSocketAddress>
getAdjustedIPs()
int
getBytesInCount()
int
getBytesOutCount()
java.lang.String
getConnectionsString()
protected long
getCreatedTime()
java.net.InetSocketAddress
getIP()
long
getLastMessagePending()
java.lang.String
getLastMessageReceived()
protected long
getLastStatusCheckTime()
protected int
getLastStatusSeq()
long
getLastTimeOnline()
java.net.InetSocketAddress
getLatestIP(boolean v4)
java.util.Set<java.lang.String>
getLocalAuthorisedRSSTagsOrCategories()
java.lang.String
getLocalAuthorisedRSSTagsOrCategoriesAsString()
java.lang.String
getLocalReadTagsOrCategoriesAsString()
BuddyPluginBuddyMessageHandler
getMessageHandler()
int
getMessageInCount()
java.lang.String
getMessageInFragmentDetails()
int
getMessageOutCount()
java.lang.String
getMyName()
java.lang.String
getName()
java.lang.String
getNickName()
int
getOnlineStatus()
protected BuddyPluginNetwork
getPlugin()
BuddyPluginNetwork
getPluginNetwork()
void
getProfileInfo(BuddyPluginBuddy.ProfileUpdateInformer informer)
java.lang.String
getPublicKey()
protected byte[]
getRawPublicKey()
java.util.Set<java.lang.String>
getRemoteAuthorisedRSSTagsOrCategories()
java.lang.String
getRemoteAuthorisedRSSTagsOrCategoriesAsString()
protected java.lang.String
getShortString()
java.lang.String
getString()
java.net.URL
getSubscriptionURL(java.lang.String cat)
int
getSubsystem()
int
getTCPPort()
int
getUDPPort()
java.lang.Object
getUserData(java.lang.Object key)
int
getVersion()
protected java.util.List<java.lang.Long>
getYGMMarkers()
protected void
incomingConnection(BuddyPluginNetwork.DDBDetails _ddb_details, GenericMessageConnection _connection)
boolean
isAuthorised()
protected boolean
isClosing()
boolean
isConnected()
protected boolean
isIdle()
boolean
isLocalRSSTagOrCategoryAuthorised(java.lang.String category)
boolean
isOnline(boolean is_connected)
boolean
isPublicNetwork()
boolean
isRemoteRSSTagOrCategoryAuthorised(java.lang.String category)
boolean
isSubscribedToCategory(java.lang.String cat)
boolean
isTransient()
protected void
localRSSTagOrCategoryRead(java.lang.String str)
protected void
log(java.lang.String str)
protected void
log(java.lang.String str, java.lang.Throwable e)
protected void
logMessage(java.lang.String str)
protected GenericMessageConnection
outgoingConnection()
protected void
persistentDispatch()
protected void
persistentDispatchPending()
void
ping()
java.util.Map
readConfigFile(java.io.File name)
protected void
receivedCloseRequest(java.util.Map request)
void
remove()
protected void
removeConnection(BuddyPluginBuddy.buddyConnection bc)
void
removeLocalAuthorisedRSSTagOrCategory(java.lang.String category)
java.util.List<BuddyPluginBuddyMessage>
retrieveMessages(int type)
protected void
sendCloseRequest(boolean restarting)
protected void
sendKeepAlive()
void
sendMessage(int subsystem, java.util.Map content, int timeout_millis, BuddyPluginBuddyReplyListener listener)
protected void
sendMessageSupport(java.util.Map content, int subsystem, int timeout_millis, BuddyPluginBuddyReplyListener original_listener)
private void
setAddress(java.net.InetSocketAddress address)
protected void
setAuthorised(boolean _a)
protected void
setCachedStatus(java.net.InetSocketAddress _ip, int _tcp_port, int _udp_port)
protected void
setInitialStatus(long now, int num_buddies)
protected void
setLastMessageReceived(java.lang.String str)
void
setLocalAuthorisedRSSTagsOrCategories(java.lang.String new_cats)
void
setLocalAuthorisedRSSTagsOrCategories(java.util.Set<java.lang.String> new_cats)
void
setMessagePending()
void
setMyName(java.lang.String _my_name)
protected void
setOnlineStatus(int s)
protected void
setRemoteAuthorisedRSSTagsOrCategories(java.util.Set<java.lang.String> new_cats)
protected void
setSubsystem(int _s)
void
setTransient(boolean b)
void
setUserData(java.lang.Object key, java.lang.Object value)
protected void
setVersion(int v)
protected boolean
statusCheckActive()
protected void
statusCheckComplete(BuddyPluginNetwork.DDBDetails _ddb_details, long _post_time, java.net.InetSocketAddress _ias, int _tcp_port, int _udp_port, java.lang.String _nick_name, int _online_status, int _status_seq, int _version)
protected void
statusCheckFailed()
protected boolean
statusCheckStarts()
BuddyPluginBuddyMessage
storeMessage(int type, java.util.Map msg)
protected java.util.Set<java.lang.String>
stringToCats(java.lang.String str)
void
subscribeToCategory(java.lang.String cat)
boolean
verify(byte[] payload, byte[] signature)
boolean
writeConfigFile(java.io.File name, java.util.Map data)
-
-
-
Field Detail
-
TRACE
private static final boolean TRACE
- See Also:
- Constant Field Values
-
CONNECTION_IDLE_TIMEOUT
private static final int CONNECTION_IDLE_TIMEOUT
- See Also:
- Constant Field Values
-
CONNECTION_KEEP_ALIVE
private static final int CONNECTION_KEEP_ALIVE
- See Also:
- Constant Field Values
-
MAX_ACTIVE_CONNECTIONS
private static final int MAX_ACTIVE_CONNECTIONS
- See Also:
- Constant Field Values
-
MAX_QUEUED_MESSAGES
private static final int MAX_QUEUED_MESSAGES
- See Also:
- Constant Field Values
-
RT_REQUEST_DATA
private static final int RT_REQUEST_DATA
- See Also:
- Constant Field Values
-
RT_REPLY_DATA
private static final int RT_REPLY_DATA
- See Also:
- Constant Field Values
-
RT_REPLY_ERROR
private static final int RT_REPLY_ERROR
- See Also:
- Constant Field Values
-
plugin_network
private BuddyPluginNetwork plugin_network
-
created_time
private long created_time
-
subsystem
private int subsystem
-
authorised
private boolean authorised
-
public_key
private java.lang.String public_key
-
nick_name
private java.lang.String nick_name
-
my_name
private java.lang.String my_name
-
recent_ygm
private java.util.List<java.lang.Long> recent_ygm
-
is_transient
private boolean is_transient
-
last_status_seq
private int last_status_seq
-
post_time
private long post_time
-
current_ip
private java.net.InetSocketAddress current_ip
-
latest_ipv4
private java.net.InetSocketAddress latest_ipv4
-
latest_ipv6
private java.net.InetSocketAddress latest_ipv6
-
tcp_port
private int tcp_port
-
udp_port
private int udp_port
-
online_status
private int online_status
-
version
private int version
-
online
private boolean online
-
last_time_online
private long last_time_online
-
status_check_count
private long status_check_count
-
last_status_check_time
private long last_status_check_time
-
check_active
private boolean check_active
-
connections
private java.util.List<BuddyPluginBuddy.buddyConnection> connections
-
messages
private java.util.List<BuddyPluginBuddy.buddyMessage> messages
-
current_message
private BuddyPluginBuddy.buddyMessage current_message
-
next_connection_id
private int next_connection_id
-
next_message_id
private int next_message_id
-
ygm_active
private boolean ygm_active
-
ygm_pending
private boolean ygm_pending
-
latest_ygm_time
private long latest_ygm_time
-
last_message_received
private java.lang.String last_message_received
-
offline_seq_set
private java.util.Set<java.lang.Long> offline_seq_set
-
message_out_count
private int message_out_count
-
message_in_count
private int message_in_count
-
message_out_bytes
private int message_out_bytes
-
message_in_bytes
private int message_in_bytes
-
received_frag_details
private java.lang.String received_frag_details
-
persistent_msg_handler
private BuddyPluginBuddyMessageHandler persistent_msg_handler
-
user_data
private java.util.Map<java.lang.Object,java.lang.Object> user_data
-
keep_alive_outstanding
private boolean keep_alive_outstanding
-
last_connect_attempt
private volatile long last_connect_attempt
-
consec_connect_fails
private volatile int consec_connect_fails
-
last_auto_reconnect
private long last_auto_reconnect
-
rss_lock
private java.lang.Object rss_lock
-
rss_local_cats
private java.util.Set<java.lang.String> rss_local_cats
-
rss_remote_cats
private java.util.Set<java.lang.String> rss_remote_cats
-
rss_cats_read
private java.util.Set<java.lang.String> rss_cats_read
-
profile_info
private java.util.List<java.lang.String> profile_info
-
profile_info_outstanding
private boolean profile_info_outstanding
-
profile_info_last
private long profile_info_last
-
outgoing_connect_sem
private AESemaphore outgoing_connect_sem
-
closing
private volatile boolean closing
-
destroyed
private volatile boolean destroyed
-
-
Constructor Detail
-
BuddyPluginBuddy
protected BuddyPluginBuddy(BuddyPluginNetwork _plugin_network, long _created_time, int _subsystem, boolean _authorised, java.lang.String _pk, java.lang.String _nick_name, java.lang.String _my_name, int _version, java.lang.String _rss_local_cats, java.lang.String _rss_remote_cats, int _last_status_seq, long _last_time_online, java.util.List<java.lang.Long> _recent_ygm, boolean _is_transient)
-
-
Method Detail
-
getPluginNetwork
public BuddyPluginNetwork getPluginNetwork()
-
isPublicNetwork
public boolean isPublicNetwork()
-
setInitialStatus
protected void setInitialStatus(long now, int num_buddies)
-
getPlugin
protected BuddyPluginNetwork getPlugin()
-
getMessageHandler
public BuddyPluginBuddyMessageHandler getMessageHandler()
-
persistentDispatchPending
protected void persistentDispatchPending()
-
checkPersistentDispatch
protected void checkPersistentDispatch()
-
persistentDispatch
protected void persistentDispatch()
-
readConfigFile
public java.util.Map readConfigFile(java.io.File name)
-
writeConfigFile
public boolean writeConfigFile(java.io.File name, java.util.Map data)
-
getCreatedTime
protected long getCreatedTime()
-
getSubsystem
public int getSubsystem()
-
setSubsystem
protected void setSubsystem(int _s)
-
isAuthorised
public boolean isAuthorised()
-
setAuthorised
protected void setAuthorised(boolean _a)
-
isTransient
public boolean isTransient()
-
setTransient
public void setTransient(boolean b)
-
getPublicKey
public java.lang.String getPublicKey()
-
getRawPublicKey
protected byte[] getRawPublicKey()
-
getShortString
protected java.lang.String getShortString()
-
getNickName
public java.lang.String getNickName()
-
getVersion
public int getVersion()
-
setVersion
protected void setVersion(int v)
-
getLocalAuthorisedRSSTagsOrCategoriesAsString
public java.lang.String getLocalAuthorisedRSSTagsOrCategoriesAsString()
-
getLocalAuthorisedRSSTagsOrCategories
public java.util.Set<java.lang.String> getLocalAuthorisedRSSTagsOrCategories()
-
addLocalAuthorisedRSSTagOrCategory
public void addLocalAuthorisedRSSTagOrCategory(java.lang.String category)
-
removeLocalAuthorisedRSSTagOrCategory
public void removeLocalAuthorisedRSSTagOrCategory(java.lang.String category)
-
setLocalAuthorisedRSSTagsOrCategories
public void setLocalAuthorisedRSSTagsOrCategories(java.lang.String new_cats)
-
setLocalAuthorisedRSSTagsOrCategories
public void setLocalAuthorisedRSSTagsOrCategories(java.util.Set<java.lang.String> new_cats)
-
getRemoteAuthorisedRSSTagsOrCategories
public java.util.Set<java.lang.String> getRemoteAuthorisedRSSTagsOrCategories()
-
getRemoteAuthorisedRSSTagsOrCategoriesAsString
public java.lang.String getRemoteAuthorisedRSSTagsOrCategoriesAsString()
-
setRemoteAuthorisedRSSTagsOrCategories
protected void setRemoteAuthorisedRSSTagsOrCategories(java.util.Set<java.lang.String> new_cats)
-
isLocalRSSTagOrCategoryAuthorised
public boolean isLocalRSSTagOrCategoryAuthorised(java.lang.String category)
-
isRemoteRSSTagOrCategoryAuthorised
public boolean isRemoteRSSTagOrCategoryAuthorised(java.lang.String category)
-
localRSSTagOrCategoryRead
protected void localRSSTagOrCategoryRead(java.lang.String str)
-
getLocalReadTagsOrCategoriesAsString
public java.lang.String getLocalReadTagsOrCategoriesAsString()
-
getSubscriptionURL
public java.net.URL getSubscriptionURL(java.lang.String cat)
-
subscribeToCategory
public void subscribeToCategory(java.lang.String cat) throws BuddyPluginException
- Throws:
BuddyPluginException
-
isSubscribedToCategory
public boolean isSubscribedToCategory(java.lang.String cat)
-
catsToString
protected java.lang.String catsToString(java.util.Set<java.lang.String> cats)
-
catsIdentical
protected boolean catsIdentical(java.util.Set<java.lang.String> c1, java.util.Set<java.lang.String> c2)
-
stringToCats
protected java.util.Set<java.lang.String> stringToCats(java.lang.String str)
-
getOnlineStatus
public int getOnlineStatus()
-
setOnlineStatus
protected void setOnlineStatus(int s)
-
getName
public java.lang.String getName()
-
getMyName
public java.lang.String getMyName()
-
setMyName
public void setMyName(java.lang.String _my_name)
-
remove
public void remove()
-
getIP
public java.net.InetSocketAddress getIP()
-
getLatestIP
public java.net.InetSocketAddress getLatestIP(boolean v4)
-
getAdjustedIP
public java.net.InetSocketAddress getAdjustedIP()
-
getAdjustedIPs
public java.util.List<java.net.InetSocketAddress> getAdjustedIPs()
-
getTCPPort
public int getTCPPort()
-
getUDPPort
public int getUDPPort()
-
isOnline
public boolean isOnline(boolean is_connected)
-
isIdle
protected boolean isIdle()
-
getLastTimeOnline
public long getLastTimeOnline()
-
getProfileInfo
public void getProfileInfo(BuddyPluginBuddy.ProfileUpdateInformer informer)
-
encrypt
public BuddyPlugin.CryptoResult encrypt(byte[] payload) throws BuddyPluginException
- Throws:
BuddyPluginException
-
decrypt
public BuddyPlugin.CryptoResult decrypt(byte[] payload) throws BuddyPluginException
- Throws:
BuddyPluginException
-
verify
public boolean verify(byte[] payload, byte[] signature) throws BuddyPluginException
- Throws:
BuddyPluginException
-
storeMessage
public BuddyPluginBuddyMessage storeMessage(int type, java.util.Map msg)
-
retrieveMessages
public java.util.List<BuddyPluginBuddyMessage> retrieveMessages(int type)
-
setMessagePending
public void setMessagePending() throws BuddyPluginException
- Throws:
BuddyPluginException
-
getLastMessagePending
public long getLastMessagePending()
-
addYGMMarker
protected boolean addYGMMarker(long marker)
-
setLastMessageReceived
protected void setLastMessageReceived(java.lang.String str)
-
getLastMessageReceived
public java.lang.String getLastMessageReceived()
-
getYGMMarkers
protected java.util.List<java.lang.Long> getYGMMarkers()
-
getLastStatusSeq
protected int getLastStatusSeq()
-
buddyConnectionEstablished
protected void buddyConnectionEstablished(boolean outgoing)
-
buddyMessageSent
protected void buddyMessageSent(int size, boolean record_active)
-
buddyMessageReceived
protected void buddyMessageReceived(int size)
-
buddyMessageFragmentReceived
protected void buddyMessageFragmentReceived(int num_received, int total)
-
getMessageInFragmentDetails
public java.lang.String getMessageInFragmentDetails()
-
getMessageInCount
public int getMessageInCount()
-
getMessageOutCount
public int getMessageOutCount()
-
getBytesInCount
public int getBytesInCount()
-
getBytesOutCount
public int getBytesOutCount()
-
isConnected
public boolean isConnected()
-
buddyActive
protected void buddyActive()
-
ping
public void ping() throws BuddyPluginException
- Throws:
BuddyPluginException
-
sendCloseRequest
protected void sendCloseRequest(boolean restarting)
-
receivedCloseRequest
protected void receivedCloseRequest(java.util.Map request)
-
sendMessage
public void sendMessage(int subsystem, java.util.Map content, int timeout_millis, BuddyPluginBuddyReplyListener listener) throws BuddyPluginException
- Throws:
BuddyPluginException
-
sendMessageSupport
protected void sendMessageSupport(java.util.Map content, int subsystem, int timeout_millis, BuddyPluginBuddyReplyListener original_listener) throws BuddyPluginException
- Throws:
BuddyPluginException
-
dispatchMessage
protected void dispatchMessage()
-
removeConnection
protected void removeConnection(BuddyPluginBuddy.buddyConnection bc)
-
getLastStatusCheckTime
protected long getLastStatusCheckTime()
-
statusCheckActive
protected boolean statusCheckActive()
-
statusCheckStarts
protected boolean statusCheckStarts()
-
statusCheckFailed
protected void statusCheckFailed()
-
setAddress
private void setAddress(java.net.InetSocketAddress address)
-
addressesEqual
private boolean addressesEqual(java.net.InetSocketAddress ias1, java.net.InetSocketAddress ias2)
-
setCachedStatus
protected void setCachedStatus(java.net.InetSocketAddress _ip, int _tcp_port, int _udp_port)
-
statusCheckComplete
protected void statusCheckComplete(BuddyPluginNetwork.DDBDetails _ddb_details, long _post_time, java.net.InetSocketAddress _ias, int _tcp_port, int _udp_port, java.lang.String _nick_name, int _online_status, int _status_seq, int _version)
-
checkTimeouts
protected void checkTimeouts()
-
sendKeepAlive
protected void sendKeepAlive()
-
getConnectionsString
public java.lang.String getConnectionsString()
-
disconnect
public void disconnect()
-
isClosing
protected boolean isClosing()
-
destroy
protected void destroy()
-
logMessage
protected void logMessage(java.lang.String str)
-
outgoingConnection
protected GenericMessageConnection outgoingConnection() throws BuddyPluginException
- Throws:
BuddyPluginException
-
incomingConnection
protected void incomingConnection(BuddyPluginNetwork.DDBDetails _ddb_details, GenericMessageConnection _connection) throws BuddyPluginException
- Throws:
BuddyPluginException
-
addConnection
protected void addConnection(BuddyPluginNetwork.DDBDetails _ddb_details, GenericMessageConnection _connection) throws BuddyPluginException
- Throws:
BuddyPluginException
-
setUserData
public void setUserData(java.lang.Object key, java.lang.Object value)
-
getUserData
public java.lang.Object getUserData(java.lang.Object key)
-
log
protected void log(java.lang.String str)
-
log
protected void log(java.lang.String str, java.lang.Throwable e)
-
getString
public java.lang.String getString()
-
-