1#if !defined(RESIP_CLIENTSUBSCRIPTION_HXX)
2#define RESIP_CLIENTSUBSCRIPTION_HXX
10class DialogUsageManager;
28 void acceptUpdate(
int statusCode = 200,
const char* reason =
nullptr);
32 void end(
bool immediate);
47 virtual void send(std::shared_ptr<SipMessage> msg)
override;
57 QueuedNotify(
const SipMessage& notify,
bool outOfOrder)
58 : mNotify(notify), mOutOfOrder(outOfOrder) {}
60 SipMessage& notify() noexcept {
return mNotify; }
61 bool outOfOrder() const noexcept {
return mOutOfOrder; }
68 typedef std::deque<QueuedNotify*> NotifyQueue;
69 NotifyQueue mQueuedNotifies;
71 typedef std::vector<QueuedNotify*> Dustbin;
74 bool mOnNewSubscriptionCalled;
82 bool mHaveQueuedRefresh;
83 int mQueuedRefreshInterval;
85 unsigned int mLargestNotifyCSeq;
87 void dispatch(
const SipMessage& msg)
override;
88 void dispatch(
const DumTimeout& timer)
override;
90 void sendQueuedRefreshRequest();
91 void processNextNotify();
92 void processResponse(
const SipMessage& response);
94 void scheduleRefresh(
unsigned long refreshInterval);
dcm! – update contact in dialog if required
dcm! – update contact in dialog if required
ClientSubscription & operator=(ClientSubscription &&)=delete
void acceptUpdate(int statusCode=200, const char *reason=nullptr)
ClientSubscription(ClientSubscription &&)=delete
virtual void reSubscribe()
virtual ~ClientSubscription()
void requestRefreshCommand(uint32_t expires=0)
virtual void onReadyToSend(SipMessage &msg) override
EncodeStream & dump(EncodeStream &strm) const override
void rejectUpdateCommand(int statusCode=400, const Data &reasonPhrase=Data::Empty)
virtual void flowTerminated()
Handle< ClientSubscription > ClientSubscriptionHandle
void acceptUpdateCommand(int statusCode=200, const char *reason=nullptr)
Provide asynchronous method access by using command.
ClientSubscription & operator=(const ClientSubscription &)=delete
void requestRefresh(uint32_t expires=0)
virtual void send(std::shared_ptr< SipMessage > msg) override
virtual void endCommand(bool immediate=false)
void rejectUpdate(int statusCode=400, const Data &reasonPhrase=Data::Empty)
ClientSubscription(const ClientSubscription &)=delete
ClientSubscriptionHandle getHandle()
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
static const Data Empty
Constant that represents a zero-length data.
dcm! – kill typedef std::list<DialogId> DialogIdSet;
Base class for class ClientInviteSession and class ServerInviteSession.
Represents a SIP message.
dcm! – add UnusedChecking(_enum) below;
unsigned __int64 uint64_t