Added message brief

git-svn-id: https://svn.resiprocate.org/rep/resiprocate/main@8077 ddefafc4-47db-0310-ae44-fa13212b10f2
This commit is contained in:
Duane Storey
2008-06-19 02:08:13 +00:00
parent 2e573d876d
commit 8d7d64613f
9 changed files with 67 additions and 15 deletions

View File

@@ -64,6 +64,8 @@ class Candidate
sizeof(mAddress.v4Address.sin_zero)) ;
resip::DnsUtil::inet_pton(ip, mAddress.v4Address.sin_addr);
mValue = iceline;
}
const resip::Data &getIceString() const { return mValue; }

View File

@@ -12,6 +12,8 @@ class ConnectReq : public ConnectBase
public:
ConnectReq(const DestinationId &dest, const resip::Data &frag, const resip::Data &password, UInt16 application, const resip::Data &role, const std::vector<Candidate> &candidates);
virtual MessageType getType() const { return ConnectReqType; }
virtual resip::Data brief() const { return "ConnectReq Message"; }
protected:
friend class Message;
@@ -24,6 +26,7 @@ class ConnectAns : public ConnectBase
public:
virtual MessageType getType() const { return ConnectAnsType; }
virtual resip::Data brief() const { return "ConnectAns Message"; }
protected:
friend class Message;

View File

@@ -13,7 +13,6 @@ ConnectBase::ConnectBase()
void
ConnectBase::decodePayload(resip::DataStream &dataStream)
{
std::cout << "ATTEMPTING TO DECODE" << std::endl;
decode(dataStream);
print(std::cout, 2);
@@ -22,7 +21,6 @@ ConnectBase::decodePayload(resip::DataStream &dataStream)
void
ConnectBase::getEncodedPayload(resip::DataStream &dataStream)
{
std::cout << "about to ENCODE " << mCandidates.size() << std::endl;
encode(dataStream);
}
@@ -33,11 +31,8 @@ ConnectBase::ConnectBase(const resip::Data &frag, const resip::Data &password, U
mApplication = application;
mRole = role;
std::cout << "RIGHT HERE" << std::endl;
for (std::vector<Candidate>::const_iterator iter = candidates.begin(); iter != candidates.end(); iter++)
{
std::cout << "ADDED TO THE THING" << std::endl;
IceCandidateStruct *iceStruct = new IceCandidateStruct;
iceStruct->mCandidate = iter->getIceString();
mCandidates.push_back(iceStruct);

View File

@@ -40,6 +40,13 @@ JoinReq::JoinReq(const DestinationId &dest, const NodeId &node, const resip::Dat
mOverlaySpecificData = overlaySpecific;
}
NodeId
JoinReq::getNodeId() const
{
return NodeId(*mJoiningPeerId);
}
void
JoinReq::getEncodedPayload(resip::DataStream &strm)
{

View File

@@ -13,10 +13,12 @@ class JoinAns : public Message, private s2c::JoinAnsStruct
public:
friend class Message;
JoinAns(p2p::JoinReq *request, const resip::Data &overlaySpecific);
JoinAns(p2p::JoinReq *request, const resip::Data &overlaySpecific = resip::Data::Empty);
virtual MessageType getType() const { return Message::JoinAnsType; }
virtual void getEncodedPayload(resip::DataStream &data);
virtual resip::Data brief() const { return "JoinAns Message"; }
protected:
virtual void decodePayload(resip::DataStream &dataStream);
@@ -29,9 +31,10 @@ public:
JoinReq(const DestinationId &dest, const NodeId &nodeId, const resip::Data &overlaySpecific=resip::Data::Empty);
virtual MessageType getType() const { return Message::JoinReqType; }
NodeId getNodeId() const { return mNodeId; }
NodeId getNodeId() const;
virtual void getEncodedPayload(resip::DataStream &data);
virtual resip::Data brief() const { return "JoinReq Message"; }
protected:
virtual void decodePayload(resip::DataStream &dataStream);

View File

@@ -17,6 +17,8 @@ public:
virtual MessageType getType() const { return Message::LeaveAnsType; }
virtual void getEncodedPayload(resip::DataStream &data);
virtual resip::Data brief() const { return "LeaveAns Message"; }
protected:
virtual void decodePayload(resip::DataStream &dataStream);
@@ -33,6 +35,7 @@ public:
virtual MessageType getType() const { return Message::LeaveReqType; }
virtual void getEncodedPayload(resip::DataStream &data);
virtual resip::Data brief() const { return "LeaveReq Message"; }
protected:
virtual void decodePayload(resip::DataStream &dataStream);

View File

@@ -88,7 +88,7 @@ class Message : public Signable
virtual Message *makeErrorResponse(Error::Code code,
const resip::Data& reason) const;
JoinAns* makeJoinResponse(const resip::Data &overlaySpecific);
JoinAns* makeJoinResponse(const resip::Data &overlaySpecific = resip::Data::Empty);
UpdateAns* makeUpdateResponse(const resip::Data &overlaySpecific);
LeaveAns* makeLeaveResponse();
ConnectAns* makeConnectResponse(const resip::Data &frag, const resip::Data &password, UInt16 application, const resip::Data &role, const std::vector<Candidate> &candidates);
@@ -120,11 +120,7 @@ class Message : public Signable
virtual std::auto_ptr<Event> event();
virtual resip::Data brief() const
{
assert(0);
return resip::Data::Empty;
}
virtual resip::Data brief() const = 0;
void dump() const;

View File

@@ -7,7 +7,9 @@
#include "p2p/Update.hxx"
#include "p2p/MessageStructsGen.hxx"
#include "p2p/Candidate.hxx"
#include "rutil/DataStream.hxx"
#include "rutil/Random.hxx"
#include "p2p/P2PSubsystem.hxx"
#define RESIPROCATE_SUBSYSTEM P2PSubsystem::P2P
@@ -63,6 +65,9 @@ TestConnect()
ConnectReq *connectReq3 = static_cast<ConnectReq *>(message2);
assert(connectReq3);
assert(!connectReq3->getCandidates().empty());
std::vector<Candidate> newCandidates = connectReq3->getCandidates();
assert(newCandidates[0].getIceString() == c.getIceString());
}
void
@@ -134,14 +139,49 @@ TestChordUpdate()
void
TestJoin()
{
DebugLog(<< "Testing Join");
NodeId node;
DestinationId dest(node);
JoinReq *joinReq = new JoinReq(dest, node);
assert(joinReq->getType() == Message::JoinReqType);
resip::Data encodedData = joinReq->encodePayload();
Message *msg = Message::parse(encodedData);
assert(msg);
assert(msg->getType() == Message::JoinReqType);
JoinReq *joinReqMsg = static_cast<JoinReq *>(msg);
assert(joinReqMsg->getNodeId() == node);
ResourceId rid(Random::getRandom(16));
NodeId nid(rid);
JoinReq *newReq = new JoinReq(dest, nid);
assert(newReq->getNodeId() == nid);
Message *testMessage = Message::parse(newReq->encodePayload());
assert(testMessage->getType() == Message::JoinReqType);
JoinReq *joinReq2 = static_cast<JoinReq *>(testMessage);
assert(joinReq2->getNodeId() == nid);
JoinAns *ans = joinReq2->makeJoinResponse();
assert(ans->getType() == Message::JoinAnsType);
assert(!ans->isRequest());
resip::Data encodedAnswer = ans->encodePayload();
Message *testMsg = Message::parse(encodedAnswer);
assert(testMsg);
assert(testMsg->getType() == Message::JoinAnsType);
}
void
TestMessages()
{
//TestUpdate();
//TestChordUpdate();
TestJoin();
TestUpdate();
TestChordUpdate();
TestConnect();
}

View File

@@ -14,6 +14,8 @@ class UpdateAns : public Message
public:
virtual MessageType getType() const { return Message::UpdateAnsType; }
virtual void getEncodedPayload(resip::DataStream &data);
virtual resip::Data brief() const { return "UpdateAns Message"; }
std::auto_ptr<Event> event()
{
@@ -38,6 +40,7 @@ public:
virtual MessageType getType() const { return Message::UpdateReqType; }
virtual void getEncodedPayload(resip::DataStream &data);
virtual resip::Data brief() const { return "UpdateReq Message"; }
std::auto_ptr<Event> event()
{