reSIProcate/rutil  9694
RROverlay.hxx
Go to the documentation of this file.
00001 #ifndef RESIP_RR_OVERLAY_HXX
00002 #define RESIP_RR_OVERLAY_HXX
00003 
00004 namespace resip 
00005 {
00006 class Data;
00007 class BaseException;
00008 
00009 class RROverlay
00010 {
00011    friend bool operator<(const RROverlay& r1, const RROverlay& r2)
00012    {
00013       if (r1.mType < r2.mType)
00014       {
00015          return true;
00016       }
00017       if (r1.mType > r2.mType)
00018       {
00019          return false;
00020       }
00021       return r1.mDomain < r2.mDomain;
00022    }
00023 
00024    public:
00025       RROverlay(const unsigned char *aptr, const unsigned char *abuf, int alen);
00026       
00027       class OverlayException : public BaseException
00028       {
00029          public:
00030             OverlayException(const Data& msg, const Data& file, const int line)
00031                : BaseException(msg, file, line) 
00032             {
00033             }
00034             
00035             const char* name() const { return "OverlayException"; }
00036       };
00037 
00038       const unsigned char* data() const { return mData; }
00039       const unsigned char* msg() const { return mMsg; }
00040       int msgLength() const { return mMsgLen; }
00041       int dataLength() const { return mDataLen; }
00042       int nameLength() const { return mNameLen; }
00043       int ttl() const { return mTTL; }
00044       int type() const { return mType; }
00045       const Data& domain() const { return mDomain; }
00046 
00047    private:
00048       const unsigned char* mData;
00049       const unsigned char* mMsg;
00050       int mMsgLen;
00051       int mDataLen;
00052       int mNameLen;
00053       int mTTL;
00054       int mType; //short?
00055       Data mDomain; // the domain name this RR refers to.
00056 };
00057 
00058 }
00059 
00060 #endif
00061 
00062 /* ====================================================================
00063  * The Vovida Software License, Version 1.0 
00064  * 
00065  * Copyright (c) 2000-2005 Vovida Networks, Inc.  All rights reserved.
00066  * 
00067  * Redistribution and use in source and binary forms, with or without
00068  * modification, are permitted provided that the following conditions
00069  * are met:
00070  * 
00071  * 1. Redistributions of source code must retain the above copyright
00072  *    notice, this list of conditions and the following disclaimer.
00073  * 
00074  * 2. Redistributions in binary form must reproduce the above copyright
00075  *    notice, this list of conditions and the following disclaimer in
00076  *    the documentation and/or other materials provided with the
00077  *    distribution.
00078  * 
00079  * 3. The names "VOCAL", "Vovida Open Communication Application Library",
00080  *    and "Vovida Open Communication Application Library (VOCAL)" must
00081  *    not be used to endorse or promote products derived from this
00082  *    software without prior written permission. For written
00083  *    permission, please contact vocal@vovida.org.
00084  *
00085  * 4. Products derived from this software may not be called "VOCAL", nor
00086  *    may "VOCAL" appear in their name, without prior written
00087  *    permission of Vovida Networks, Inc.
00088  * 
00089  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
00090  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
00091  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
00092  * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA
00093  * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
00094  * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
00095  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00096  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00097  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
00098  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00099  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
00100  * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
00101  * DAMAGE.
00102  * 
00103  * ====================================================================
00104  * 
00105  * This software consists of voluntary contributions made by Vovida
00106  * Networks, Inc. and many individuals on behalf of Vovida Networks,
00107  * Inc.  For more information on Vovida Networks, Inc., please see
00108  * <http://www.vovida.org/>.
00109  *
00110  */