请声明出处:
这是一个关于自定义SIP的Party类:
class YSIP_API SIPParty : public RefObject
{
public:
SIPParty(Mutex* mutex = 0);
SIPParty(bool reliable, Mutex* mutex = 0);
virtual ~SIPParty();
/**
* Transmit an event
* 传输一个事件
* @param event Evend to send
* @参数even,要发送的事件
* @return False on fatal failure (subsequent send would fail again)
* @返回false,严重失败(随后发送可能会再一次失败)
*/
virtual bool transmit(SIPEvent* event) = 0;
virtual const char* getProtoName() const = 0;
virtual bool setParty(const URI& uri) = 0;
virtual void* getTransport() = 0;
void setAddr(const String& addr, int port, bool local);
void getAddr(String& addr, int& port, bool local);
inline void appendAddr(String& buf, bool local, bool unsafe = true) {
Lock lock(unsafe ? m_mutex : 0);
if (local)
SocketAddr::appendTo(buf,m_local,m_localPort);
else
SocketAddr::appendTo(buf,m_party,m_partyPort);
}
inline Mutex* mutex()
{ return m_mutex; }
inline const String& getLocalAddr() const
{ return m_local; }
inline const String& getPartyAddr() const
{ return m_party; }
inline int getLocalPort() const
{ return m_localPort; }
inline int getPartyPort() const
{ return m_partyPort; }
inline bool isReliable() const
{ return m_reliable; }
protected:
Mutex* m_mutex;
bool m_reliable;
String m_local;
String m_party;
int m_localPort;
int m_partyPort;
};