/[resiprocate]/main/resip/dum/MergedRequestKey.cxx
ViewVC logotype

Contents of /main/resip/dum/MergedRequestKey.cxx

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5295 - (show annotations) (download)
Mon Aug 22 00:30:05 2005 UTC (14 years, 3 months ago) by jason
File size: 3863 byte(s)
merged 5270:HEAD from b-directory-reorg
1 #include "resip/dum/MergedRequestKey.hxx"
2 #include "resip/stack/SipMessage.hxx"
3 #include "resip/stack/CSeqCategory.hxx"
4
5 using namespace resip;
6
7 const MergedRequestKey MergedRequestKey::Empty;
8
9 MergedRequestKey::MergedRequestKey()
10 {
11 }
12
13 MergedRequestKey::MergedRequestKey(const SipMessage& req) :
14 mRequestUri(Data::from(req.header(h_RequestLine).uri())),
15 mCSeq(Data::from(req.header(h_CSeq))),
16 mTag(req.header(h_From).exists(p_tag) ? req.header(h_From).param(p_tag) : Data::Empty),
17 mCallId(req.header(h_CallID).value())
18 {
19 }
20
21 bool
22 MergedRequestKey::operator==(const MergedRequestKey& other) const
23 {
24 return (mCallId == other.mCallId &&
25 mTag == other.mTag &&
26 mCSeq == other.mCSeq &&
27 mRequestUri == other.mRequestUri);
28 }
29
30 bool
31 MergedRequestKey::operator!=(const MergedRequestKey& other) const
32 {
33 return !(*this == other);
34 }
35
36 bool
37 MergedRequestKey::operator<(const MergedRequestKey& other) const
38 {
39 if ( mCallId < other.mCallId)
40 {
41 return true;
42 }
43 else if (mCallId > other.mCallId)
44 {
45 return false;
46 }
47
48 if (mTag < other.mTag)
49 {
50 return true;
51 }
52 else if (mTag > other.mTag)
53 {
54 return false;
55 }
56
57 if (mCSeq < other.mCSeq)
58 {
59 return true;
60 }
61 else if (mCSeq > other.mCSeq)
62 {
63 return false;
64 }
65
66 return (mRequestUri < other.mRequestUri);
67 }
68
69 Data& MergedRequestKey::cseq()
70 {
71 return mCSeq;
72 }
73
74 const Data& MergedRequestKey::cseq() const
75 {
76 return mCSeq;
77 }
78
79
80 /* ====================================================================
81 * The Vovida Software License, Version 1.0
82 *
83 * Copyright (c) 2000 Vovida Networks, Inc. All rights reserved.
84 *
85 * Redistribution and use in source and binary forms, with or without
86 * modification, are permitted provided that the following conditions
87 * are met:
88 *
89 * 1. Redistributions of source code must retain the above copyright
90 * notice, this list of conditions and the following disclaimer.
91 *
92 * 2. Redistributions in binary form must reproduce the above copyright
93 * notice, this list of conditions and the following disclaimer in
94 * the documentation and/or other materials provided with the
95 * distribution.
96 *
97 * 3. The names "VOCAL", "Vovida Open Communication Application Library",
98 * and "Vovida Open Communication Application Library (VOCAL)" must
99 * not be used to endorse or promote products derived from this
100 * software without prior written permission. For written
101 * permission, please contact vocal@vovida.org.
102 *
103 * 4. Products derived from this software may not be called "VOCAL", nor
104 * may "VOCAL" appear in their name, without prior written
105 * permission of Vovida Networks, Inc.
106 *
107 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
108 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
109 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
110 * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL VOVIDA
111 * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
112 * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
113 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
114 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
115 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
116 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
117 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
118 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
119 * DAMAGE.
120 *
121 * ====================================================================
122 *
123 * This software consists of voluntary contributions made by Vovida
124 * Networks, Inc. and many individuals on behalf of Vovida Networks,
125 * Inc. For more information on Vovida Networks, Inc., please see
126 * <http://www.vovida.org/>.
127 *
128 */

Properties

Name Value
svn:eol-style LF

webmaster AT resiprocate DOT org
ViewVC Help
Powered by ViewVC 1.1.27