/[resiprocate]/main/resip/dum/DialogId.hxx
ViewVC logotype

Diff of /main/resip/dum/DialogId.hxx

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2512 by fluffy, Sat Apr 3 22:21:07 2004 UTC revision 4599 by derek, Wed May 11 23:10:19 2005 UTC
# Line 1  Line 1 
1    #if !defined(RESIP_DIALOG_ID_HXX)
2    #define RESIP_DIALOG_ID_HXX
3    
4    #include "resiprocate/os/Data.hxx"
5    #include "resiprocate/dum/DialogSetId.hxx"
6    
7    namespace resip
8    {
9    
10  class DialogId  class DialogId
11  {  {
12     public:     public:
13        DialogId( SipMessages& msg );        DialogId(const SipMessage& msg );
14        DialogId( Data& callId, Data& senderRequestFromTag, Data& otherTag );        DialogId(const Data& callId, const Data& localTag, const Data& remoteTag );
15        DialogId( DialogSetId id, Data& otherTag );        DialogId(const DialogSetId& id, const Data& remoteTag );
16          
17          bool operator==(const DialogId& rhs) const;
18          bool operator!=(const DialogId& rhs) const;
19          bool operator<(const DialogId& rhs) const;
20    
21          const DialogSetId& getDialogSetId() const;
22    
23          const Data& getCallId() const;
24          const Data& getLocalTag() const;
25          const Data& getRemoteTag() const;
26    
27          size_t hash() const;
28                
29        DialogSetId getDialogSetId() const;  #if defined(HASH_MAP_NAMESPACE)
30          friend struct HASH_MAP_NAMESPACE::hash<resip::DialogId>;
31    #elif defined(__INTEL_COMPILER )
32          friend size_t hash_value(const resip::DialogId& id);
33    #endif
34                
35    private:    private:
36        Data& mId;        friend std::ostream& operator<<(std::ostream&, const DialogId& id);
37          DialogSetId mDialogSetId;
38          Data mRemoteTag;
39  };  };
40    }
41    #if defined(HASH_MAP_NAMESPACE)
42    namespace HASH_MAP_NAMESPACE
43    {
44    
45    template<>
46    struct hash<resip::DialogId>
47    {
48          size_t operator()(const resip::DialogId& id) const;
49    };
50    
51    }
52    #elif defined(__INTEL_COMPILER)
53    namespace std { size_t hash_value(const resip::DialogId& id); }
54    #endif
55    
56    
57    #endif
58        
59    /* ====================================================================
60     * The Vovida Software License, Version 1.0
61     *
62     * Copyright (c) 2000 Vovida Networks, Inc.  All rights reserved.
63     *
64     * Redistribution and use in source and binary forms, with or without
65     * modification, are permitted provided that the following conditions
66     * are met:
67     *
68     * 1. Redistributions of source code must retain the above copyright
69     *    notice, this list of conditions and the following disclaimer.
70     *
71     * 2. Redistributions in binary form must reproduce the above copyright
72     *    notice, this list of conditions and the following disclaimer in
73     *    the documentation and/or other materials provided with the
74     *    distribution.
75     *
76     * 3. The names "VOCAL", "Vovida Open Communication Application Library",
77     *    and "Vovida Open Communication Application Library (VOCAL)" must
78     *    not be used to endorse or promote products derived from this
79     *    software without prior written permission. For written
80     *    permission, please contact vocal@vovida.org.
81     *
82     * 4. Products derived from this software may not be called "VOCAL", nor
83     *    may "VOCAL" appear in their name, without prior written
84     *    permission of Vovida Networks, Inc.
85     *
86     * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
87     * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
88     * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
89     * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA
90     * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
91     * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
92     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
93     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
94     * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
95     * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
96     * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
97     * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
98     * DAMAGE.
99     *
100     * ====================================================================
101     *
102     * This software consists of voluntary contributions made by Vovida
103     * Networks, Inc. and many individuals on behalf of Vovida Networks,
104     * Inc.  For more information on Vovida Networks, Inc., please see
105     * <http://www.vovida.org/>.
106     *
107     */

Legend:
Removed from v.2512  
changed lines
  Added in v.4599

webmaster AT resiprocate DOT org
ViewVC Help
Powered by ViewVC 1.1.27