Package com.biglybt.plugin.net.buddy
Class BuddyPluginBeta.ChatInstance
- java.lang.Object
-
- com.biglybt.plugin.net.buddy.BuddyPluginBeta.ChatInstance
-
- All Implemented Interfaces:
DataSourceResolver.ExportableDataSource
- Enclosing class:
- BuddyPluginBeta
public class BuddyPluginBeta.ChatInstance extends java.lang.Object implements DataSourceResolver.ExportableDataSource
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.LinkedHashMap<java.lang.String,java.lang.String>
auto_dup_set
private boolean
auto_mute
private boolean
auto_notify
private java.lang.Object
binding_lock
private AESemaphore
binding_sem
private java.lang.Object
chat_lock
private boolean
destroyed
private boolean
disable_new_msg_indications
(package private) AsyncDispatcher
dispatcher
private java.lang.String
display_name
private boolean
enable_notification_posts
private java.lang.Object
handler
private boolean
has_been_viewed
private boolean
have_interest
private java.lang.String
instance_nick
private int
ipc_version
private boolean
is_favourite
private boolean
is_invisible_chat
private boolean
is_private_chat
private boolean
is_shared_nick
private boolean
keep_alive
private java.lang.String
key
private java.lang.String
last_bind_fail
private BuddyPluginBeta.ChatMessage
last_message_requiring_attention
private CopyOnWriteList<BuddyPluginBeta.ChatListener>
listeners
private boolean
log_messages
private byte[]
managing_public_key
private ByteArrayHashMap<java.lang.String>
message_ids
private boolean
message_outstanding
private java.util.concurrent.atomic.AtomicInteger
message_uid_next
private java.util.List<BuddyPluginBeta.ChatMessage>
messages
private int
messages_not_mine_count
private static int
MSG_HISTORY_MAX
private PluginInterface
msgsync_pi
private java.net.InetSocketAddress
my_address
private byte[]
my_public_key
private java.lang.String
network
private java.util.Map<java.lang.String,java.util.List<BuddyPluginBeta.ChatParticipant>>
nick_clash_map
static java.lang.String
OPT_INVISIBLE
private ByteArrayHashMap<BuddyPluginBeta.ChatParticipant>
participants
private BuddyPluginBeta.ChatParticipant
private_target
private boolean
read_only
private int
reference_count
private boolean
save_messages
private TimerEvent
sort_event
private boolean
sort_force_changed
private java.util.Map<java.lang.String,java.lang.Object>
status
private java.util.Map<java.lang.Object,java.lang.Object>
user_data
private int
virtual_reference_count
-
Constructor Summary
Constructors Modifier Constructor Description private
ChatInstance(java.lang.String _network, java.lang.String _key, BuddyPluginBeta.ChatParticipant _private_target, boolean _is_private_chat, java.util.Map<java.lang.String,java.lang.Object> _options)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addListener(BuddyPluginBeta.ChatListener listener)
protected void
addReference()
protected void
addVirtualReference()
boolean
amManager()
private void
bind(PluginInterface _msgsync_pi, java.lang.Object _handler, long timeout)
java.util.Map<java.lang.String,java.lang.Object>
chatRequested(java.util.Map<java.lang.String,java.lang.Object> message_map)
private void
checkRebind()
private void
configChanged()
void
destroy()
private void
destroy(boolean force)
java.lang.String
export()
DataSourceResolver.ExportedDataSource
exportDataSource()
void
fixupSeenState(java.util.List<BuddyPluginBeta.ChatMessage> msgs)
private java.util.List<BuddyPluginBeta.ChatMessage>
flattenTree(BuddyPluginBeta.ChatMessage head, java.util.Map<BuddyPluginBeta.ChatMessage,java.lang.Object> next_map, int num_messages)
boolean
getAutoMute()
BuddyPluginBeta.ChatInstance
getClone()
java.lang.String
getDefaultNickname()
boolean
getDisableNewMsgIndications()
java.lang.String
getDisplayName()
boolean
getEnableNotificationsPost()
int
getEstimatedNodes()
private java.lang.Object
getHandler()
boolean
getHasBeenViewed()
BuddyPluginBeta.ChatMessage[]
getHistory()
int
getIncomingSyncState()
-ve -> state unknown 0 - synced +ve - number of messages pendingjava.lang.String
getInstanceNickname()
boolean
getKeepAlive()
java.lang.String
getKey()
BuddyPluginBeta.ChatMessage
getLastMessageRequiringAttention()
boolean
getLogMessages()
java.lang.String
getMagnet(Download download, int size_hint)
BuddyPluginBeta.ChatInstance
getManagedChannel()
int
getMessageCount(boolean not_mine)
boolean
getMessageOutstanding()
java.util.List<BuddyPluginBeta.ChatMessage>
getMessages()
java.net.InetSocketAddress
getMyAddress()
java.lang.String
getName()
java.lang.String
getName(boolean abbreviated)
java.lang.String
getNetAndKey()
java.lang.String
getNetwork()
java.lang.String
getNickname(boolean use_default)
private boolean
getOtherNickClashesHidden(BuddyPluginBeta.ChatParticipant p)
int
getOutgoingSyncState()
-ve -> state unknown 0 - synced +ve - number of messages pendingBuddyPluginBeta.ChatParticipant
getParticipant(java.lang.String nick)
BuddyPluginBeta.ChatParticipant[]
getParticipants()
byte[]
getPublicKey()
BuddyPluginBeta.ChatInstance
getReadOnlyChannel()
int
getReferenceCount()
boolean
getSaveMessages()
java.lang.String
getShortName()
java.lang.String
getStatus()
java.util.List<BuddyPluginBeta.ChatMessage>
getUnseenMessages()
java.lang.String
getURL()
java.lang.Object
getUserData(java.lang.Object key)
int
getViewType()
void
handleDrop(java.lang.String str)
boolean
hasUnseenMessageWithNick()
boolean
isAnonymous()
boolean
isAutoNotify()
boolean
isAvailable()
boolean
isDestroyed()
boolean
isFavourite()
boolean
isInitialised()
boolean
isInteresting()
boolean
isInvisible()
boolean
isManaged()
boolean
isManagedFor(java.lang.String network, java.lang.String key)
boolean
isOldOutstandingMessage(BuddyPluginBeta.ChatMessage msg)
boolean
isPrivateChat()
boolean
isReadOnly()
boolean
isReadOnlyFor(java.lang.String network, java.lang.String key)
boolean
isSharedNickname()
boolean
isStatistics()
private java.util.List<BuddyPluginBeta.ChatMessage>
merge(java.util.List<BuddyPluginBeta.ChatMessage> list1, java.util.List<BuddyPluginBeta.ChatMessage> list2)
void
messageReceived(java.util.Map<java.lang.String,java.lang.Object> message_map)
private void
registerNick(BuddyPluginBeta.ChatParticipant p, java.lang.String old_nick, java.lang.String new_nick)
void
remove()
void
removeListener(BuddyPluginBeta.ChatListener listener)
private BuddyPluginBeta.ChatParticipant
removeParticipant(BuddyPluginBeta.ChatParticipant p)
(package private) void
resetIPFilters()
void
sendControlMessage(java.lang.String cmd)
void
sendLocalMessage(java.lang.String message, java.lang.String[] args, int message_type)
void
sendMessage(Download download)
void
sendMessage(java.lang.String message, java.util.Map<java.lang.String,java.lang.Object> options)
void
sendMessage(java.lang.String message, java.util.Map<java.lang.String,java.lang.Object> flags, java.util.Map<java.lang.String,java.lang.Object> options)
private void
sendMessageSupport(java.lang.Object o_message, java.util.Map<java.lang.String,java.lang.Object> flags, java.util.Map<java.lang.String,java.lang.Object> options)
void
sendRawMessage(byte[] message, java.util.Map<java.lang.String,java.lang.Object> flags, java.util.Map<java.lang.String,java.lang.Object> options)
void
setAutoMute(boolean b)
void
setAutoNotify(boolean b)
void
setDisableNewMsgIndications(boolean b)
void
setDisplayName(java.lang.String str)
void
setEnableNotificationsPost(boolean b)
void
setFavourite(boolean b)
void
setHasBeenViewed()
void
setInstanceNickname(java.lang.String _nick)
void
setInteresting(boolean b)
void
setKeepAlive(boolean b)
void
setLogMessages(boolean b)
void
setMessageOutstanding(BuddyPluginBeta.ChatMessage message)
void
setSaveMessages(boolean b)
void
setSharedNickname(boolean _shared)
private void
setSpammer(BuddyPluginBeta.ChatParticipant participant, boolean is_spammer)
void
setUserData(java.lang.Object key, java.lang.Object value)
void
setViewType(int t)
private void
sortMessages(boolean force_change)
private boolean
sortMessagesSupport()
private java.lang.String
trimMagnet(java.lang.String magnet, int max)
private void
unbind()
private void
update()
private void
updated()
protected void
updated(BuddyPluginBeta.ChatParticipant p)
private void
updateOptions(java.util.Map<java.lang.String,java.lang.Object> options)
-
-
-
Field Detail
-
OPT_INVISIBLE
public static final java.lang.String OPT_INVISIBLE
- See Also:
- Constant Field Values
-
MSG_HISTORY_MAX
private static final int MSG_HISTORY_MAX
- See Also:
- Constant Field Values
-
network
private final java.lang.String network
-
key
private final java.lang.String key
-
is_private_chat
private boolean is_private_chat
-
is_invisible_chat
private boolean is_invisible_chat
-
private_target
private final BuddyPluginBeta.ChatParticipant private_target
-
binding_lock
private java.lang.Object binding_lock
-
binding_sem
private AESemaphore binding_sem
-
msgsync_pi
private volatile PluginInterface msgsync_pi
-
handler
private volatile java.lang.Object handler
-
my_public_key
private byte[] my_public_key
-
managing_public_key
private byte[] managing_public_key
-
read_only
private boolean read_only
-
ipc_version
private int ipc_version
-
my_address
private java.net.InetSocketAddress my_address
-
chat_lock
private java.lang.Object chat_lock
-
message_uid_next
private java.util.concurrent.atomic.AtomicInteger message_uid_next
-
messages
private java.util.List<BuddyPluginBeta.ChatMessage> messages
-
message_ids
private ByteArrayHashMap<java.lang.String> message_ids
-
messages_not_mine_count
private int messages_not_mine_count
-
participants
private ByteArrayHashMap<BuddyPluginBeta.ChatParticipant> participants
-
nick_clash_map
private java.util.Map<java.lang.String,java.util.List<BuddyPluginBeta.ChatParticipant>> nick_clash_map
-
listeners
private CopyOnWriteList<BuddyPluginBeta.ChatListener> listeners
-
user_data
private java.util.Map<java.lang.Object,java.lang.Object> user_data
-
auto_dup_set
private java.util.LinkedHashMap<java.lang.String,java.lang.String> auto_dup_set
-
keep_alive
private boolean keep_alive
-
have_interest
private boolean have_interest
-
status
private java.util.Map<java.lang.String,java.lang.Object> status
-
is_shared_nick
private boolean is_shared_nick
-
instance_nick
private java.lang.String instance_nick
-
reference_count
private volatile int reference_count
-
virtual_reference_count
private int virtual_reference_count
-
last_message_requiring_attention
private BuddyPluginBeta.ChatMessage last_message_requiring_attention
-
message_outstanding
private boolean message_outstanding
-
is_favourite
private boolean is_favourite
-
auto_notify
private boolean auto_notify
-
save_messages
private boolean save_messages
-
log_messages
private boolean log_messages
-
auto_mute
private boolean auto_mute
-
enable_notification_posts
private boolean enable_notification_posts
-
disable_new_msg_indications
private boolean disable_new_msg_indications
-
display_name
private java.lang.String display_name
-
has_been_viewed
private boolean has_been_viewed
-
last_bind_fail
private volatile java.lang.String last_bind_fail
-
destroyed
private boolean destroyed
-
sort_event
private TimerEvent sort_event
-
sort_force_changed
private boolean sort_force_changed
-
dispatcher
AsyncDispatcher dispatcher
-
-
Constructor Detail
-
ChatInstance
private ChatInstance(java.lang.String _network, java.lang.String _key, BuddyPluginBeta.ChatParticipant _private_target, boolean _is_private_chat, java.util.Map<java.lang.String,java.lang.Object> _options)
-
-
Method Detail
-
getClone
public BuddyPluginBeta.ChatInstance getClone() throws java.lang.Exception
- Throws:
java.lang.Exception
-
exportDataSource
public DataSourceResolver.ExportedDataSource exportDataSource()
- Specified by:
exportDataSource
in interfaceDataSourceResolver.ExportableDataSource
-
addVirtualReference
protected void addVirtualReference()
-
addReference
protected void addReference()
-
getReferenceCount
public int getReferenceCount()
-
getName
public java.lang.String getName()
-
getName
public java.lang.String getName(boolean abbreviated)
-
getShortName
public java.lang.String getShortName()
-
getNetwork
public java.lang.String getNetwork()
-
getKey
public java.lang.String getKey()
-
isFavourite
public boolean isFavourite()
-
setAutoNotify
public void setAutoNotify(boolean b)
-
isAutoNotify
public boolean isAutoNotify()
-
isInteresting
public boolean isInteresting()
-
setInteresting
public void setInteresting(boolean b)
-
isStatistics
public boolean isStatistics()
-
setFavourite
public void setFavourite(boolean b)
-
setHasBeenViewed
public void setHasBeenViewed()
-
getHasBeenViewed
public boolean getHasBeenViewed()
-
getSaveMessages
public boolean getSaveMessages()
-
setSaveMessages
public void setSaveMessages(boolean b)
-
getLogMessages
public boolean getLogMessages()
-
setLogMessages
public void setLogMessages(boolean b)
-
getAutoMute
public boolean getAutoMute()
-
setAutoMute
public void setAutoMute(boolean b)
-
getViewType
public int getViewType()
-
setViewType
public void setViewType(int t)
-
getDisableNewMsgIndications
public boolean getDisableNewMsgIndications()
-
setDisableNewMsgIndications
public void setDisableNewMsgIndications(boolean b)
-
getEnableNotificationsPost
public boolean getEnableNotificationsPost()
-
setEnableNotificationsPost
public void setEnableNotificationsPost(boolean b)
-
getDisplayName
public java.lang.String getDisplayName()
-
setDisplayName
public void setDisplayName(java.lang.String str)
-
setSpammer
private void setSpammer(BuddyPluginBeta.ChatParticipant participant, boolean is_spammer)
-
isManaged
public boolean isManaged()
-
amManager
public boolean amManager()
-
isManagedFor
public boolean isManagedFor(java.lang.String network, java.lang.String key)
-
getManagedChannel
public BuddyPluginBeta.ChatInstance getManagedChannel() throws java.lang.Exception
- Throws:
java.lang.Exception
-
isReadOnlyFor
public boolean isReadOnlyFor(java.lang.String network, java.lang.String key)
-
getReadOnlyChannel
public BuddyPluginBeta.ChatInstance getReadOnlyChannel() throws java.lang.Exception
- Throws:
java.lang.Exception
-
isReadOnly
public boolean isReadOnly()
-
getURL
public java.lang.String getURL()
-
getPublicKey
public byte[] getPublicKey()
-
isInvisible
public boolean isInvisible()
-
isPrivateChat
public boolean isPrivateChat()
-
isAnonymous
public boolean isAnonymous()
-
getNetAndKey
public java.lang.String getNetAndKey()
-
setKeepAlive
public void setKeepAlive(boolean b)
-
getKeepAlive
public boolean getKeepAlive()
-
getDefaultNickname
public java.lang.String getDefaultNickname()
-
isSharedNickname
public boolean isSharedNickname()
-
setSharedNickname
public void setSharedNickname(boolean _shared)
-
getInstanceNickname
public java.lang.String getInstanceNickname()
-
setInstanceNickname
public void setInstanceNickname(java.lang.String _nick)
-
getNickname
public java.lang.String getNickname(boolean use_default)
-
getHandler
private java.lang.Object getHandler()
-
bind
private void bind(PluginInterface _msgsync_pi, java.lang.Object _handler, long timeout) throws java.lang.Exception
- Throws:
java.lang.Exception
-
checkRebind
private void checkRebind()
-
updateOptions
private void updateOptions(java.util.Map<java.lang.String,java.lang.Object> options) throws java.lang.Exception
- Throws:
java.lang.Exception
-
unbind
private void unbind()
-
isAvailable
public boolean isAvailable()
-
getHistory
public BuddyPluginBeta.ChatMessage[] getHistory()
-
update
private void update()
-
updated
private void updated()
-
configChanged
private void configChanged()
-
handleDrop
public void handleDrop(java.lang.String str)
-
getEstimatedNodes
public int getEstimatedNodes()
-
getMessageCount
public int getMessageCount(boolean not_mine)
-
getIncomingSyncState
public int getIncomingSyncState()
-ve -> state unknown 0 - synced +ve - number of messages pending- Returns:
-
getOutgoingSyncState
public int getOutgoingSyncState()
-ve -> state unknown 0 - synced +ve - number of messages pending- Returns:
-
isInitialised
public boolean isInitialised()
-
getStatus
public java.lang.String getStatus()
-
sortMessages
private void sortMessages(boolean force_change)
-
sortMessagesSupport
private boolean sortMessagesSupport()
-
flattenTree
private java.util.List<BuddyPluginBeta.ChatMessage> flattenTree(BuddyPluginBeta.ChatMessage head, java.util.Map<BuddyPluginBeta.ChatMessage,java.lang.Object> next_map, int num_messages)
-
merge
private java.util.List<BuddyPluginBeta.ChatMessage> merge(java.util.List<BuddyPluginBeta.ChatMessage> list1, java.util.List<BuddyPluginBeta.ChatMessage> list2)
-
messageReceived
public void messageReceived(java.util.Map<java.lang.String,java.lang.Object> message_map) throws IPCException
- Throws:
IPCException
-
chatRequested
public java.util.Map<java.lang.String,java.lang.Object> chatRequested(java.util.Map<java.lang.String,java.lang.Object> message_map) throws IPCException
- Throws:
IPCException
-
sendMessage
public void sendMessage(Download download)
-
resetIPFilters
void resetIPFilters()
-
getMagnet
public java.lang.String getMagnet(Download download, int size_hint)
-
trimMagnet
private java.lang.String trimMagnet(java.lang.String magnet, int max)
-
sendMessage
public void sendMessage(java.lang.String message, java.util.Map<java.lang.String,java.lang.Object> options)
-
sendMessage
public void sendMessage(java.lang.String message, java.util.Map<java.lang.String,java.lang.Object> flags, java.util.Map<java.lang.String,java.lang.Object> options)
-
sendRawMessage
public void sendRawMessage(byte[] message, java.util.Map<java.lang.String,java.lang.Object> flags, java.util.Map<java.lang.String,java.lang.Object> options)
-
sendLocalMessage
public void sendLocalMessage(java.lang.String message, java.lang.String[] args, int message_type)
-
sendControlMessage
public void sendControlMessage(java.lang.String cmd)
-
sendMessageSupport
private void sendMessageSupport(java.lang.Object o_message, java.util.Map<java.lang.String,java.lang.Object> flags, java.util.Map<java.lang.String,java.lang.Object> options)
-
export
public java.lang.String export()
-
getMessages
public java.util.List<BuddyPluginBeta.ChatMessage> getMessages()
-
hasUnseenMessageWithNick
public boolean hasUnseenMessageWithNick()
-
getUnseenMessages
public java.util.List<BuddyPluginBeta.ChatMessage> getUnseenMessages()
-
getParticipants
public BuddyPluginBeta.ChatParticipant[] getParticipants()
-
getParticipant
public BuddyPluginBeta.ChatParticipant getParticipant(java.lang.String nick)
-
removeParticipant
private BuddyPluginBeta.ChatParticipant removeParticipant(BuddyPluginBeta.ChatParticipant p)
-
updated
protected void updated(BuddyPluginBeta.ChatParticipant p)
-
registerNick
private void registerNick(BuddyPluginBeta.ChatParticipant p, java.lang.String old_nick, java.lang.String new_nick)
-
getOtherNickClashesHidden
private boolean getOtherNickClashesHidden(BuddyPluginBeta.ChatParticipant p)
-
getLastMessageRequiringAttention
public BuddyPluginBeta.ChatMessage getLastMessageRequiringAttention()
-
setUserData
public void setUserData(java.lang.Object key, java.lang.Object value)
-
getUserData
public java.lang.Object getUserData(java.lang.Object key)
-
getMessageOutstanding
public boolean getMessageOutstanding()
-
setMessageOutstanding
public void setMessageOutstanding(BuddyPluginBeta.ChatMessage message)
-
isOldOutstandingMessage
public boolean isOldOutstandingMessage(BuddyPluginBeta.ChatMessage msg)
-
fixupSeenState
public void fixupSeenState(java.util.List<BuddyPluginBeta.ChatMessage> msgs)
-
getMyAddress
public java.net.InetSocketAddress getMyAddress()
-
addListener
public void addListener(BuddyPluginBeta.ChatListener listener)
-
removeListener
public void removeListener(BuddyPluginBeta.ChatListener listener)
-
remove
public void remove()
-
isDestroyed
public boolean isDestroyed()
-
destroy
public void destroy()
-
destroy
private void destroy(boolean force)
-
-