diff options
Diffstat (limited to 'bindings/winrt/doubango_rt/include/rt_Msrp.h')
-rw-r--r-- | bindings/winrt/doubango_rt/include/rt_Msrp.h | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/bindings/winrt/doubango_rt/include/rt_Msrp.h b/bindings/winrt/doubango_rt/include/rt_Msrp.h new file mode 100644 index 0000000..b0fbe26 --- /dev/null +++ b/bindings/winrt/doubango_rt/include/rt_Msrp.h @@ -0,0 +1,109 @@ +/*Copyright (C) 2013 Doubango Telecom <http://www.doubango.org> +* +* This file is part of Open Source Doubango Framework. +* +* DOUBANGO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DOUBANGO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DOUBANGO. +*/ +#pragma once + +#include "rt_Enums.h" + +class MsrpCallback; +class MsrpMessage; +class MsrpEvent; + +namespace doubango_rt +{ + namespace BackEnd + { + ref class rtMsrpSession; + + public ref class rtMsrpByteRange sealed + { + internal: + rtMsrpByteRange(int64 start, int64 end, int64 total):_start(start),_end(end),_total(total){} + public: + property int64 Start{ int64 get() { return _start; }; } + property int64 End{ int64 get() { return _end; }; } + property int64 Total{ int64 get() { return _total; }; } + private: + int64 _start, _end, _total; + }; + + public ref class rtMsrpMessage sealed + { + public: + virtual ~rtMsrpMessage(); + internal: + rtMsrpMessage(struct tmsrp_message_s *message); + + public: + bool isRequest(); + short getCode(); + Platform::String^ getPhrase(); + rt_tmsrp_request_type_t getRequestType(); +#if COM_VISIBLE + rtMsrpByteRange^ getByteRange(); +#else + void getByteRange(Platform::IntPtr start, Platform::IntPtr end, Platform::IntPtr total); +#endif + bool isLastChunck(); + bool isFirstChunck(); + bool isSuccessReport(); + Platform::String^ getMsrpHeaderValue(Platform::String^ name); + Platform::String^ getMsrpHeaderParamValue(Platform::String^ name, Platform::String^ param); + unsigned getMsrpContentLength(); +#if COM_VISIBLE + Platform::String^ getMsrpContent(unsigned maxsize); +#else + unsigned getMsrpContent(Platform::IntPtr output, unsigned maxsize); +#endif + + private: + MsrpMessage* m_pMsrpMessage; + }; + + public ref class rtMsrpEvent sealed + { + internal: + rtMsrpEvent(const struct tmsrp_event_s *event); + public: + virtual ~rtMsrpEvent(); + + rt_tmsrp_event_type_t getType(); + rtMsrpSession^ getSipSession(); + rtMsrpMessage^ getMessage(); + + private: + MsrpEvent* m_pMsrpEvent; + }; + + public interface class rtIMsrpCallback + { + virtual int OnEvent(rtMsrpEvent^ pEvent); + }; + public ref class rtMsrpCallback sealed + { + internal: + rtMsrpCallback(rtIMsrpCallback^ pI); + const MsrpCallback* getWrappedCallback(){ return m_pCallback; } + public: + virtual ~rtMsrpCallback(); + + private: + MsrpCallback* m_pCallback; + rtIMsrpCallback^ m_pI; + }; + } +}
\ No newline at end of file |