and added files
[bcm963xx.git] / userapps / opensource / libosip2 / include / osipparser2 / headers / osip_header.h
diff --git a/userapps/opensource/libosip2/include/osipparser2/headers/osip_header.h b/userapps/opensource/libosip2/include/osipparser2/headers/osip_header.h
new file mode 100755 (executable)
index 0000000..50b60fe
--- /dev/null
@@ -0,0 +1,120 @@
+/*
+  The oSIP library implements the Session Initiation Protocol (SIP -rfc3261-)
+  Copyright (C) 2001  Aymeric MOIZARD jack@atosc.org
+  
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public
+  License as published by the Free Software Foundation; either
+  version 2.1 of the License, or (at your option) any later version.
+  
+  This library is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  Lesser General Public License for more details.
+  
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+
+#ifndef _OSIP_HEADER_H_
+#define _OSIP_HEADER_H_
+
+#include <osipparser2/osip_uri.h>
+
+/**
+ * @file osip_header.h
+ * @brief oSIP osip_header definition.
+ *
+ */
+
+/**
+ * @defgroup oSIP_HEADER oSIP header definition.
+ * @ingroup oSIP_HEADERS
+ * @{
+ */
+
+/**
+ * Structure for 'unknown' headers.
+ * NOTE: 'unknown' header' are used in oSIP for all header that are not
+ * defined by oSIP in the osip_message_t structure. This means that all
+ * 'unknown' header has to be handled with the API related to this 
+ * structure.
+ * @defvar osip_header_t
+ */
+  typedef struct osip_header osip_header_t;
+
+  struct osip_header
+  {
+    char *hname;
+    char *hvalue;
+  };
+
+/**
+ * Structure for generic parameter headers.
+ * Generic parameter are used in a lot of headers. (To, From, Route,
+ * Record-Route...) All those headers use a common API but this is
+ * hidden by MACROs that you can be found in smsg.h.
+ * @defvar osip_cseq_t
+ */
+  typedef osip_uri_param_t osip_generic_param_t;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/**
+ * Allocate a header element.
+ * @param header The element to work on.
+ */
+  int osip_header_init (osip_header_t ** header);
+/**
+ * Free a header element.
+ * @param header The element to work on.
+ */
+  void osip_header_free (osip_header_t * header);
+/**
+ * Get a string representation of a header element.
+ * @param header The element to work on.
+ * @param dest A pointer on the new allocated buffer.
+ */
+  int osip_header_to_str (const osip_header_t * header, char **dest);
+/**
+ * Get the token name a header element.
+ * @param header The element to work on.
+ */
+  char *osip_header_get_name (const osip_header_t * header);
+/**
+ * Set the token name a header element.
+ * @param header The element to work on.
+ * @param pname The token name to set.
+ */
+  void osip_header_set_name (osip_header_t * header, char *pname);
+/**
+ * Get the token value a header element.
+ * @param header The element to work on.
+ */
+  char *osip_header_get_value (const osip_header_t * header);
+/**
+ * Set the token value a header element.
+ * @param header The element to work on.
+ * @param pvalue The token value to set.
+ */
+  void osip_header_set_value (osip_header_t * header, char *pvalue);
+/**
+ * Clone a header element.
+ * @param header The element to work on.
+ * @param dest A pointer on the copy of the element.
+ */
+  int osip_header_clone (const osip_header_t * header, osip_header_t ** dest);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif