reSIProcate/stack  9694
MethodTypes.hxx
Go to the documentation of this file.
00001 #if !defined(RESIP_METHODTYPES_HXX)
00002 #define RESIP_METHODTYPES_HXX 
00003 
00004 #define defineMethod(_enum, _name, _rfc) _enum
00005 namespace resip
00006 {
00007 
00008 class Data;
00009 
00010 #ifdef  __BORLANDC__
00011    #undef MESSAGE
00012 #endif
00013 
00014 typedef enum
00015 {
00016    defineMethod(UNKNOWN, "UNKNOWN", "NA"),
00017    defineMethod(ACK, "ACK", " RFC 3261"),
00018    defineMethod(BYE, "BYE", "RFC 3261"),
00019    defineMethod(CANCEL, "CANCEL", "RFC 3261"),
00020    defineMethod(INVITE, "INVITE", "RFC 3261"),
00021    defineMethod(NOTIFY, "NOTIFY", "RFC 3265"),
00022    defineMethod(OPTIONS, "OPTIONS", "RFC 3261"),
00023    defineMethod(REFER, "REFER", "RFC 3515"),
00024    defineMethod(REGISTER, "REGISTER", "RFC 3261"),
00025    defineMethod(SUBSCRIBE, "SUBSCRIBE", "RFC 3265"),
00026    defineMethod(RESPONSE, "RESPONSE", "RFC ????"),
00027    defineMethod(MESSAGE, "MESSAGE", "RFC ????"),
00028    //_MESSAGE,
00029    defineMethod(INFO, "INFO", "RFC 2976"),
00030    defineMethod(PRACK, "PRACK", "RFC 3262"),
00031    defineMethod(PUBLISH, "PUBLISH", "RFC draft"),
00032    defineMethod(SERVICE, "SERVICE", "!RFC"),
00033    defineMethod(UPDATE, "UPDATE", "RFC 3311"),
00034    MAX_METHODS
00035 } MethodTypes;
00036 
00037 // extern Data MethodNames[]; // !ah! Do not touch. want a name, call getMethodName()
00038 
00039 MethodTypes
00040 getMethodType(const Data& name);
00041 
00042 MethodTypes
00043 getMethodType(const char* name, int len);
00044 
00045 // TODO -- !dcm! -- fix to return unknown method as a string
00046 const Data&
00047 getMethodName(MethodTypes t);
00048 
00049 }
00050 
00051 #undef defineMethod
00052 
00053 #endif
00054 
00055 /* ====================================================================
00056  * The Vovida Software License, Version 1.0 
00057  * 
00058  * Copyright (c) 2000 Vovida Networks, Inc.  All rights reserved.
00059  * 
00060  * Redistribution and use in source and binary forms, with or without
00061  * modification, are permitted provided that the following conditions
00062  * are met:
00063  * 
00064  * 1. Redistributions of source code must retain the above copyright
00065  *    notice, this list of conditions and the following disclaimer.
00066  * 
00067  * 2. Redistributions in binary form must reproduce the above copyright
00068  *    notice, this list of conditions and the following disclaimer in
00069  *    the documentation and/or other materials provided with the
00070  *    distribution.
00071  * 
00072  * 3. The names "VOCAL", "Vovida Open Communication Application Library",
00073  *    and "Vovida Open Communication Application Library (VOCAL)" must
00074  *    not be used to endorse or promote products derived from this
00075  *    software without prior written permission. For written
00076  *    permission, please contact vocal@vovida.org.
00077  *
00078  * 4. Products derived from this software may not be called "VOCAL", nor
00079  *    may "VOCAL" appear in their name, without prior written
00080  *    permission of Vovida Networks, Inc.
00081  * 
00082  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
00083  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
00084  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
00085  * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA
00086  * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
00087  * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
00088  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00089  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00090  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
00091  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00092  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
00093  * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
00094  * DAMAGE.
00095  * 
00096  * ====================================================================
00097  * 
00098  * This software consists of voluntary contributions made by Vovida
00099  * Networks, Inc. and many individuals on behalf of Vovida Networks,
00100  * Inc.  For more information on Vovida Networks, Inc., please see
00101  * <http://www.vovida.org/>.
00102  *
00103  */