Twitch SDK (Internal)
java_chatutil.h
Go to the documentation of this file.
1 /********************************************************************************************
2 * Twitch Broadcasting SDK
3 *
4 * This software is supplied under the terms of a license agreement with Twitch Interactive, Inc. and
5 * may not be copied or used except in accordance with the terms of that agreement
6 * Copyright (c) 2012-2016 Twitch Interactive, Inc.
7 *********************************************************************************************/
8 
9 #pragma once
10 
15 
16 
17 namespace ttv
18 {
19  namespace chat
20  {
21  class BitsConfiguration;
22  class ChatAPI;
23  class IChatReplay;
24  class IChatRaid;
25  class IChannelChatRoomManager;
26  class IChatRoom;
27  class IChatRoomNotifications;
28  class IBitsStatus;
29  class IFollowersStatus;
30  class ISubscribersStatus;
31  class IChatChannelProperties;
32  }
33 
34  namespace binding
35  {
36  namespace java
37  {
38  using namespace ttv::chat;
39 
40  class JavaChatAPIListenerProxy;
41  class JavaChatChannelListenerProxy;
42  class JavaChatUserThreadsListenerProxy;
43  class JavaChatMessageHandlerCallbacksProxy;
44  class JavaChatRoomMessageHandlerCallbacksProxy;
45 
47  {
48  std::shared_ptr<ttv::chat::ChatAPI> chatApi;
49  std::shared_ptr<JavaChatAPIListenerProxy> nativeListener;
50  std::map<ChannelId, std::shared_ptr<JavaChatChannelListenerProxy>> channelListeners;
51  std::map<UserId, std::shared_ptr<JavaChatUserThreadsListenerProxy>> userThreadsListeners;
52  };
53 
65 
66 
68  {
69  std::shared_ptr<ChatMessageHandler> chatMessageHandler;
70  std::shared_ptr<JavaChatMessageHandlerCallbacksProxy> callbacks;
71  };
72 
74  {
75  std::shared_ptr<ChatRoomMessageHandler> chatRoomMessageHandler;
76  std::shared_ptr<JavaChatRoomMessageHandlerCallbacksProxy> callbacks;
77  };
78 
81 
85  void LoadAllChatJavaClassInfo(JNIEnv* jEnv);
86 
87  jobject GetJavaInstance_ChatUserInfo(JNIEnv* jEnv, const ChatUserInfo& user);
88  jobject GetJavaInstance_ChatUserInfoArray(JNIEnv* jEnv, const std::vector<ChatUserInfo>& list);
89  jobject GetJavaInstance_ChatChannelInfo(JNIEnv* jEnv, const ChatChannelInfo& channelInfo);
90  jobject GetJavaInstance_ChatChannelRestrictions(JNIEnv* jEnv, const ChatChannelRestrictions& restrictions);
91  jobject GetJavaInstance_ChatUserMode(JNIEnv* jEnv, const UserMode& mode);
92  jobject GetJavaInstance_ChatSubscriptionStatus(JNIEnv* jEnv, const SubscriptionStatus& status);
93  jobject GetJavaInstance_ChatSubscriptionNotice(JNIEnv* jEnv, const SubscriptionNotice& notice);
95  jobject GetJavaInstance_ChatFirstTimeChatterNotice(JNIEnv* jEnv, const FirstTimeChatterNotice& notice);
96  jobject GetJavaInstance_ChatRaidNotice(JNIEnv* jEnv, const RaidNotice& notice);
97  jobject GetJavaInstance_ChatUnraidNotice(JNIEnv* jEnv, const UnraidNotice& notice);
98  jobject GetJavaInstance_ChatRestrictionReason(JNIEnv* jEnv, const RestrictionReason& reason);
99  jobject GetJavaInstance_ChatTokenizationOptions(JNIEnv* jEnv, const TokenizationOptions& options);
100  jobject GetJavaInstance_ChatMessageFlags(JNIEnv* jEnv, const MessageInfo::Flags& flags);
101  jobject GetJavaInstance_ChatMessageToken(JNIEnv* jEnv, const MessageToken& token);
102  jobject GetJavaInstance_ChatMessageBadge(JNIEnv* jEnv, const MessageBadge& badge);
103  jobject GetJavaInstance_ChatMessageInfo(JNIEnv* jEnv, const MessageInfo& msg);
104  jobject GetJavaInstance_ChatLiveMessage(JNIEnv* jEnv, const LiveChatMessage& msg);
105  jobject GetJavaInstance_ChatLiveMessageArray(JNIEnv* jEnv, const std::vector<LiveChatMessage>& messageList);
106  jobject GetJavaInstance_ChatWhisperMessage(JNIEnv* jEnv, const WhisperMessage& msg);
107  jobject GetJavaInstance_ChatWhisperMessageArray(JNIEnv* jEnv, const std::vector<WhisperMessage>& messageList);
108  jobject GetJavaInstance_ChatBadgeImage(JNIEnv* jEnv, const BadgeImage& image);
109  jobject GetJavaInstance_ChatBadgeVersion(JNIEnv* jEnv, const BadgeVersion& badgeVersion);
110  jobject GetJavaInstance_ChatBadge(JNIEnv* jEnv, const Badge& badge);
111  jobject GetJavaInstance_ChatBadgeSet(JNIEnv* jEnv, const BadgeSet& badgeSet);
112  jobject GetJavaInstance_ChatEmoticon(JNIEnv* jEnv, const Emoticon& emoticon);
113  jobject GetJavaInstance_ChatEmoticonSet(JNIEnv* jEnv, const EmoticonSet& emoticonSet);
114  jobject GetJavaInstance_ChatThreadData(JNIEnv* jEnv, const ThreadData& thread);
115  jobject GetJavaInstance_ChatThreadDataArray(JNIEnv* jEnv, const std::vector<ThreadData>& list);
116  jobject GetJavaInstance_ChatUnreadThreadCounts(JNIEnv* jEnv, const UnreadThreadCounts& counts);
117  jobject GetJavaInstance_ChatBitsAction(JNIEnv* jEnv, const BitsConfiguration::Action& action);
118  jobject GetJavaInstance_ChatBitsImage(JNIEnv* jEnv, const BitsConfiguration::BitsImage& image);
119  jobject GetJavaInstance_ChatBitsImageTier(JNIEnv* jEnv, const BitsConfiguration::ImageTier& tier);
120  jobject GetJavaInstance_ChatBitsConfiguration(JNIEnv* jEnv, const std::shared_ptr<BitsConfiguration>& config);
121  jobject GetJavaInstance_ChatRaidStatus(JNIEnv* jEnv, const RaidStatus& val);
122  jobject GetJavaInstance_ChatReplayState(JNIEnv* jEnv, ChatReplayState val);
123  jobject GetJavaInstance_ChatReplayMessage(JNIEnv* jEnv, const ReplayMessage& msg);
124  jobject GetJavaInstance_ChatReplayMessageArray(JNIEnv* jEnv, const std::vector<ReplayMessage>& value);
125  jobject GetJavaInstance_ChatBadgeEntitlement(JNIEnv* jEnv, const BadgeEntitlement& badgeEntitlement);
126  jobject GetJavaInstance_ChatBitsReceivedEvent(JNIEnv* jEnv, const BitsReceivedEvent& bitsReceivedEvent);
127  jobject GetJavaInstance_ChatBitsSentEvent(JNIEnv* jEnv, const BitsSentEvent& bitsSentEvent);
128  jobject GetJavaInstance_ChatFollowerAddedEvent(JNIEnv* jEnv, const FollowerAddedEvent& followerAddedEvent);
129  jobject GetJavaInstance_ChatSubscriberAddedEvent(JNIEnv* jEnv, const SubscriberAddedEvent& subscriberAddedEvent);
130  jobject GetJavaInstance_ChatRoomInfo(JNIEnv* jEnv, const ChatRoomInfo& value);
131  jobject GetJavaInstance_ChatRoomMessage(JNIEnv* jEnv, const ChatRoomMessage& value);
132  jobject GetJavaInstance_ChatRoomView(JNIEnv* jEnv, const ChatRoomView& value);
133  jobject GetJavaInstance_ChatRoomPermissions(JNIEnv* jEnv, const ChatRoomPermissions& value);
134  jobject GetJavaInstance_RoomMentionInfo(JNIEnv* jEnv, const RoomMentionInfo& value);
136  jobject GetJavaInstance_SendRoomMessageError(JNIEnv* jEnv, const SendRoomMessageError& value);
137  jobject GetJavaInstance_CreateRoomError(JNIEnv* jEnv, const CreateRoomError& value);
138  jobject GetJavaInstance_UpdateRoomError(JNIEnv* jEnv, const UpdateRoomError& value);
139  jobject GetJavaInstance_UpdateRoomModesError(JNIEnv* jEnv, const UpdateRoomModesError& value);
140  jobject GetJavaInstance_BanUserError(JNIEnv* jEnv, const BanUserError& value);
141  jobject GetJavaInstance_UnbanUserError(JNIEnv* jEnv, const UnbanUserError& value);
142  jobject GetJavaInstance_HostTargetChange(JNIEnv* jEnv, const HostTargetChange& value);
143  jobject GetJavaInstance_ModUserError(JNIEnv* jEnv, const ModUserError& value);
144  jobject GetJavaInstance_UnmodUserError(JNIEnv* jEnv, const UnmodUserError& value);
145 
146  void GetNativeInstance_ChatTokenizationOptions(JNIEnv* jEnv, jobject jOptions, TokenizationOptions& options);
147  void GetNativeInstance_ChatFeatureFlags(JNIEnv* jEnv, jobject jFlags, FeatureFlags& flags);
148  }
149  }
150 }
Definition: chaterrortypes.h:125
ChatReplayState
Definition: chattypes.h:547
Definition: chattypes.h:528
jobject GetJavaInstance_ChatRoomView(JNIEnv *jEnv, const ChatRoomView &value)
Definition: chattypes.h:559
JavaNativeProxyRegistry< ttv::chat::IChatRoom, ChatApiContext > gIChatRoomInstanceRegistry
jobject GetJavaInstance_ChatThreadData(JNIEnv *jEnv, const ThreadData &thread)
Definition: chattypes.h:329
Definition: chattypes.h:667
jobject GetJavaInstance_ChatBadge(JNIEnv *jEnv, const Badge &badge)
jobject GetJavaInstance_ChatMessageInfo(JNIEnv *jEnv, const MessageInfo &msg)
void GetNativeInstance_ChatFeatureFlags(JNIEnv *jEnv, jobject jFlags, FeatureFlags &flags)
Definition: chattypes.h:94
Definition: chattypes.h:161
std::shared_ptr< JavaChatRoomMessageHandlerCallbacksProxy > callbacks
Definition: java_chatutil.h:76
Definition: chattypes.h:369
Definition: chattypes.h:358
Definition: chattypes.h:616
jobject GetJavaInstance_ChatRoomInfo(JNIEnv *jEnv, const ChatRoomInfo &value)
Definition: chaterrortypes.h:153
Definition: chatapi.h:33
JavaNativeProxyRegistry< ttv::chat::IChatRoomNotifications, ChatApiContext > gIChatRoomNotificationsInstanceRegistry
jobject GetJavaInstance_ChatBadgeSet(JNIEnv *jEnv, const BadgeSet &badgeSet)
std::map< UserId, std::shared_ptr< JavaChatUserThreadsListenerProxy > > userThreadsListeners
Definition: java_chatutil.h:51
jobject GetJavaInstance_ChatRoomPermissions(JNIEnv *jEnv, const ChatRoomPermissions &value)
Definition: chaterrortypes.h:162
Definition: chaterrortypes.h:134
Definition: chattypes.h:499
jobject GetJavaInstance_ChatUnraidNotice(JNIEnv *jEnv, const UnraidNotice &notice)
jobject GetJavaInstance_ChatSubscriptionNotice(JNIEnv *jEnv, const SubscriptionNotice &notice)
Definition: chattypes.h:299
jobject GetJavaInstance_ChatEmoticon(JNIEnv *jEnv, const Emoticon &emoticon)
Definition: chattypes.h:510
jobject GetJavaInstance_ChatBadgeVersion(JNIEnv *jEnv, const BadgeVersion &badgeVersion)
jobject GetJavaInstance_ChatThreadDataArray(JNIEnv *jEnv, const std::vector< ThreadData > &list)
jobject GetJavaInstance_ChatRaidNotice(JNIEnv *jEnv, const RaidNotice &notice)
std::shared_ptr< ChatRoomMessageHandler > chatRoomMessageHandler
Definition: java_chatutil.h:75
Definition: chattypes.h:169
jobject GetJavaInstance_ChatLiveMessage(JNIEnv *jEnv, const LiveChatMessage &msg)
jobject GetJavaInstance_ChatRoomMessageHandlerCommandError(JNIEnv *jEnv, ChatRoomMessageHandler::CommandError value)
jobject GetJavaInstance_UnbanUserError(JNIEnv *jEnv, const UnbanUserError &value)
jobject GetJavaInstance_ChatBitsAction(JNIEnv *jEnv, const BitsConfiguration::Action &action)
Definition: chattypes.h:853
Definition: chattypes.h:572
jobject GetJavaInstance_ChatBitsSentEvent(JNIEnv *jEnv, const BitsSentEvent &bitsSentEvent)
std::map< ChannelId, std::shared_ptr< JavaChatChannelListenerProxy > > channelListeners
Definition: java_chatutil.h:50
Definition: chattypes.h:142
jobject GetJavaInstance_ChatMessageToken(JNIEnv *jEnv, const MessageToken &token)
jobject GetJavaInstance_SendRoomMessageError(JNIEnv *jEnv, const SendRoomMessageError &value)
jobject GetJavaInstance_ChatEmoticonSet(JNIEnv *jEnv, const EmoticonSet &emoticonSet)
jobject GetJavaInstance_BanUserError(JNIEnv *jEnv, const BanUserError &value)
Definition: chattypes.h:800
std::shared_ptr< ttv::chat::ChatAPI > chatApi
Definition: java_chatutil.h:48
jobject GetJavaInstance_ChatWhisperMessage(JNIEnv *jEnv, const WhisperMessage &msg)
Definition: chattypes.h:626
JavaNativeProxyRegistry< ttv::chat::IBitsStatus, ChatApiContext > gIBitsStatusInstanceRegistry
jobject GetJavaInstance_UnmodUserError(JNIEnv *jEnv, const UnmodUserError &value)
Definition: chattypes.h:293
JavaNativeProxyRegistry< ttv::chat::IChatReplay, ChatApiContext > gChatReplayNativeProxyRegistry
JavaNativeProxyRegistry< ttv::chat::ChatAPI, ChatApiContext > gChatApiNativeProxyRegistry
Definition: java_chatutil.h:67
jobject GetJavaInstance_ChatBitsImageTier(JNIEnv *jEnv, const BitsConfiguration::ImageTier &tier)
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
JavaNativeProxyRegistry< ttv::chat::IChatRaid, ChatApiContext > gIChatRaidInstanceRegistry
jobject GetJavaInstance_CreateRoomError(JNIEnv *jEnv, const CreateRoomError &value)
Definition: chattypes.h:652
void LoadAllChatJavaClassInfo(JNIEnv *jEnv)
jobject GetJavaInstance_ChatReplayMessage(JNIEnv *jEnv, const ReplayMessage &msg)
JavaNativeProxyRegistry< ttv::chat::IChatChannelProperties, ChatApiContext > gIChatChannelPropertiesInstanceRegistry
JavaNativeProxyRegistry< ttv::chat::IChannelChatRoomManager, ChatApiContext > gIChannelChatRoomManagerInstanceRegistry
std::shared_ptr< ChatMessageHandler > chatMessageHandler
Definition: java_chatutil.h:69
jobject GetJavaInstance_ChatReplayMessageArray(JNIEnv *jEnv, const std::vector< ReplayMessage > &value)
Definition: chattypes.h:745
Definition: chattypes.h:684
Definition: chattypes.h:874
Definition: chattypes.h:487
jobject GetJavaInstance_ChatMessageBadge(JNIEnv *jEnv, const MessageBadge &badge)
Definition: chattypes.h:703
jobject GetJavaInstance_ChatTokenizationOptions(JNIEnv *jEnv, const TokenizationOptions &options)
Definition: chaterrortypes.h:169
jobject GetJavaInstance_ChatChannelInfo(JNIEnv *jEnv, const ChatChannelInfo &channelInfo)
jobject GetJavaInstance_ChatMessageFlags(JNIEnv *jEnv, const MessageInfo::Flags &flags)
jobject GetJavaInstance_ChatRestrictionReason(JNIEnv *jEnv, const RestrictionReason &reason)
Definition: chattypes.h:187
jobject GetJavaInstance_ChatUserInfoArray(JNIEnv *jEnv, const std::vector< ChatUserInfo > &list)
jobject GetJavaInstance_ChatBitsImage(JNIEnv *jEnv, const BitsConfiguration::BitsImage &image)
Definition: chattypes.h:469
jobject GetJavaInstance_ModUserError(JNIEnv *jEnv, const ModUserError &value)
jobject GetJavaInstance_ChatChannelRestrictions(JNIEnv *jEnv, const ChatChannelRestrictions &restrictions)
Definition: chattypes.h:787
jobject GetJavaInstance_ChatSubscriptionStatus(JNIEnv *jEnv, const SubscriptionStatus &status)
jobject GetJavaInstance_ChatBadgeImage(JNIEnv *jEnv, const BadgeImage &image)
JavaNativeProxyRegistry< ttv::chat::IFollowersStatus, ChatApiContext > gIFollowersStatusInstanceRegistry
jobject GetJavaInstance_ChatUserInfo(JNIEnv *jEnv, const ChatUserInfo &user)
jobject GetJavaInstance_ChatSubscriberAddedEvent(JNIEnv *jEnv, const SubscriberAddedEvent &subscriberAddedEvent)
jobject GetJavaInstance_ChatRaidStatus(JNIEnv *jEnv, const RaidStatus &val)
jobject GetJavaInstance_ChatFirstTimeChatterNotice(JNIEnv *jEnv, const FirstTimeChatterNotice &notice)
jobject GetJavaInstance_ChatLiveMessageArray(JNIEnv *jEnv, const std::vector< LiveChatMessage > &messageList)
Definition: chattypes.h:282
JavaNativeProxyRegistry< ChatMessageHandler, ChatMessageHandlerContext > gChatMessageHandlerRegistry
CommandError
Definition: chatroommessagehandler.h:33
jobject GetJavaInstance_ChatUnreadThreadCounts(JNIEnv *jEnv, const UnreadThreadCounts &counts)
Definition: java_utility.h:57
Definition: chaterrortypes.h:144
Definition: java_chatutil.h:46
JavaNativeProxyRegistry< ttv::chat::ISubscribersStatus, ChatApiContext > gISubscribersStatusInstanceRegistry
jobject GetJavaInstance_ChatBitsReceivedEvent(JNIEnv *jEnv, const BitsReceivedEvent &bitsReceivedEvent)
JavaNativeProxyRegistry< ttv::chat::BitsConfiguration, ChatApiContext > gChatBitsConfigurationNativeProxyRegistry
jobject GetJavaInstance_RoomMentionInfo(JNIEnv *jEnv, const RoomMentionInfo &value)
jobject GetJavaInstance_ChatRoomMessage(JNIEnv *jEnv, const ChatRoomMessage &value)
std::shared_ptr< JavaChatMessageHandlerCallbacksProxy > callbacks
Definition: java_chatutil.h:70
Definition: chattypes.h:28
jobject GetJavaInstance_HostTargetChange(JNIEnv *jEnv, const HostTargetChange &value)
Definition: chattypes.h:584
std::shared_ptr< JavaChatAPIListenerProxy > nativeListener
Definition: java_chatutil.h:49
JavaNativeProxyRegistry< ChatRoomMessageHandler, ChatRoomMessageHandlerContext > gChatRoomMessageHandlerRegistry
Definition: chattypes.h:816
Definition: chattypes.h:447
Definition: chattypes.h:126
Definition: chattypes.h:343
jobject GetJavaInstance_ChatBadgeEntitlement(JNIEnv *jEnv, const BadgeEntitlement &badgeEntitlement)
jobject GetJavaInstance_ChatBitsConfiguration(JNIEnv *jEnv, const std::shared_ptr< BitsConfiguration > &config)
Definition: chattypes.h:41
Definition: chattypes.h:434
jobject GetJavaInstance_ChatWhisperMessageArray(JNIEnv *jEnv, const std::vector< WhisperMessage > &messageList)
Definition: chattypes.h:456
jobject GetJavaInstance_ChatSubscriptionNoticeRecipient(JNIEnv *jEnv, const SubscriptionNotice::Recipient &recipient)
jobject GetJavaInstance_ChatReplayState(JNIEnv *jEnv, ChatReplayState val)
Definition: chattypes.h:423
jobject GetJavaInstance_ChatFollowerAddedEvent(JNIEnv *jEnv, const FollowerAddedEvent &followerAddedEvent)
Definition: chattypes.h:111
Definition: chaterrortypes.h:183
Definition: chattypes.h:834
jobject GetJavaInstance_UpdateRoomError(JNIEnv *jEnv, const UpdateRoomError &value)
void GetNativeInstance_ChatTokenizationOptions(JNIEnv *jEnv, jobject jOptions, TokenizationOptions &options)
Definition: chattypes.h:400
jobject GetJavaInstance_ChatUserMode(JNIEnv *jEnv, const UserMode &mode)
Definition: chaterrortypes.h:176
Definition: chattypes.h:694
jobject GetJavaInstance_UpdateRoomModesError(JNIEnv *jEnv, const UpdateRoomModesError &value)