/usr/include/sipxtapi/net/SipRequestContext.h is in libsipxtapi-dev 3.3.0~test17-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | //
// Copyright (C) 2004-2006 SIPfoundry Inc.
// Licensed by SIPfoundry under the LGPL license.
//
// Copyright (C) 2004-2006 Pingtel Corp. All rights reserved.
// Licensed to SIPfoundry under a Contributor Agreement.
//
// $$
///////////////////////////////////////////////////////////////////////////////
#ifndef _SipRequestContext_h_
#define _SipRequestContext_h_
// SYSTEM INCLUDES
//#include <...>
// APPLICATION INCLUDES
#include <utl/UtlString.h>
#include <utl/UtlDList.h>
// DEFINES
// MACROS
// EXTERNAL FUNCTIONS
// EXTERNAL VARIABLES
// CONSTANTS
// STRUCTS
// TYPEDEFS
// FORWARD DECLARATIONS
//! Class Container for context variables for SIP request API
/*! The class is passed as an additional argument to contain
* context information that is not contained in the SIP request
* (which is also passed with this container). Effectively this
* is supplimental informatiion to the SIP Request.
*
* The intention is for this to be used as part of standard
* APIs that process SIP requests and generate SIP responses.
* In those scenarios (e.g. the status server plugins, the
* redirect server plugins) there is a need for a general
* container that provides more information than is available
* or perhaps easily accessable in the SIP request itself.
* The specific API will need to provide specifics such as
* is the request context for consumption only (i.e. read only)
* or can the application add content to the request context
* that may be used by subsequent applications consuming the
* same SipRequestContext.
*/
class SipRequestContext
{
/* //////////////////////////// PUBLIC //////////////////////////////////// */
public:
static const char* sAUTH_USER;
static const char* sAUTH_REALM;
static const char* sREQUEST_METHOD;
static const char* sSERVER_DOMAIN;
/* ============================ CREATORS ================================== */
//! Constructor
/*! Construct a request context for an incoming request of
* the given request method.
* \par requestMethod - the request method for the given request.
*/
SipRequestContext(const char* requestMethod = NULL);
//:Default constructor
virtual
~SipRequestContext();
//:Destructor
/* ============================ MANIPULATORS ============================== */
/* ============================ ACCESSORS ================================= */
//! Get context variables provided in this request context.
/*! As it is possible to have multiple occurances of a named value
* the occurance argument indicates which occurance. The default is
* the first.
* \param name - the name of the variable to be retrieved from the
* request context. It is legal to have multiple values for the
* same name. Hense the optional argument occurance. In applications
* where the consumer of the SipRequestContext may also set values,
* the application should use a names space convention to avoid
* accedental collisions (e.g. for an ENUM pluging, it might use
* a prefix of "ENUM." in front of all the variable names it adds
* to the request context.
* \param value - the value of the given variable name.
* \param occurance - if there are more than one instance of the
* same variable name in the SipRequestContext, occurance is an
* integer that can be used to walk through and retrieve all of the
* values. Returns FALSE if the given occurance number does not exist.
*/
UtlBoolean getVariable(const char* name,
UtlString& value,
int occurance = 0) const;
//! Add a variable to the context.
/*! If there are other instances of the same variable in the
* context, the new one is added after the last occurance.
*/
void addVariable( const char* name, const char* value);
//! Get a string of all the values and names in the SipRequestContext
/*! This is a debugging tool to dump the context.
* Returns the number of variables found.
*/
int toString(UtlString& dumpString);
/* ============================ INQUIRY =================================== */
/* //////////////////////////// PROTECTED ///////////////////////////////// */
protected:
//! Get the name and value of the variable at the given index
UtlBoolean getVariable(int index,
UtlString& name,
UtlString& value) const;
/* //////////////////////////// PRIVATE /////////////////////////////////// */
private:
SipRequestContext(const SipRequestContext& rSipRequestContext);
//:Copy constructor
SipRequestContext& operator=(const SipRequestContext& rhs);
//:Assignment operator
UtlDList mVariableList;
};
/* ============================ INLINE METHODS ============================ */
#endif // _SipRequestContext_h_
|