-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy paththread_message.hpp
55 lines (43 loc) · 1.99 KB
/
thread_message.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#ifndef PN_CHAT_THREAD_MESSAGE_HPP
#define PN_CHAT_THREAD_MESSAGE_HPP
#include "callback_stop.hpp"
#include "helpers/export.hpp"
#include "pubnub_chat/message.hpp"
#include "vector.hpp"
class CallbackService;
namespace Pubnub
{
class Channel;
class ThreadMessage : public Message
{
public:
PN_CHAT_EXPORT virtual ~ThreadMessage();
PN_CHAT_EXPORT ThreadMessage& operator=(const ThreadMessage& other);
PN_CHAT_EXPORT Pubnub::String parent_channel_id() const {return parent_channel_id_internal;};
PN_CHAT_EXPORT Pubnub::Channel pin_to_parent_channel() const;
PN_CHAT_EXPORT Pubnub::Channel unpin_from_parent_channel() const;
PN_CHAT_EXPORT CallbackHandle stream_updates(std::function<void(const ThreadMessage&)> message_callback) const;
PN_CHAT_EXPORT CallbackHandle stream_updates_on(Pubnub::Vector<Pubnub::ThreadMessage>, std::function<void(Pubnub::Vector<Pubnub::ThreadMessage>)> callback) const;
private:
PN_CHAT_EXPORT ThreadMessage(
Pubnub::String timetoken,
std::shared_ptr<ChatService> chat_service,
std::shared_ptr<MessageService> message_service,
std::shared_ptr<ChannelService> channel_service,
std::shared_ptr<RestrictionsService> restrictions_service,
std::unique_ptr<MessageDAO> data,
Pubnub::String parent_channel_id);
#ifndef PN_CHAT_C_ABI
PN_CHAT_EXPORT ThreadMessage(Pubnub::Message base_message, Pubnub::String parent_channel_id);
#endif
Pubnub::String parent_channel_id_internal;
friend class ::MessageService;
friend class ::CallbackService;
#ifdef PN_CHAT_C_ABI
public:
Pubnub::ThreadMessage update_with_thread_base(const Pubnub::ThreadMessage& base_message) const;
ThreadMessage(Pubnub::Message base_message, Pubnub::String parent_channel_id);
#endif
};
};
#endif // PN_CHAT_THREAD_MESSAGE_HPP