You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by sa...@apache.org on 2005/12/13 04:10:55 UTC

svn commit: r356458 - /webservices/axis2/trunk/c/include/

Author: samisa
Date: Mon Dec 12 19:10:42 2005
New Revision: 356458

URL: http://svn.apache.org/viewcvs?rev=356458&view=rev
Log:
Added: HTTP transport module: utility functions

Added:
    webservices/axis2/trunk/c/include/axis2_http_header.h
    webservices/axis2/trunk/c/include/axis2_http_request_line.h
    webservices/axis2/trunk/c/include/axis2_http_response_writer.h
    webservices/axis2/trunk/c/include/axis2_http_simple_request.h
    webservices/axis2/trunk/c/include/axis2_http_simple_response.h
    webservices/axis2/trunk/c/include/axis2_http_status_line.h
    webservices/axis2/trunk/c/include/axis2_http_transport.h
    webservices/axis2/trunk/c/include/axis2_http_transport_utils.h
    webservices/axis2/trunk/c/include/axis2_http_worker.h
    webservices/axis2/trunk/c/include/axis2_simple_http_svr_conn.h

Added: webservices/axis2/trunk/c/include/axis2_http_header.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_http_header.h?rev=356458&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_http_header.h (added)
+++ webservices/axis2/trunk/c/include/axis2_http_header.h Mon Dec 12 19:10:42 2005
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_HTTP_HEADER_H
+#define AXIS2_HTTP_HEADER_H
+
+
+/**
+  * @file axis2_http_header.h
+  * @brief axis2 HTTP Header name:value pair implementation
+  */
+  
+#include <axis2.h>
+#include <axis2_defines.h>
+#include <axis2_env.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/**
+ * @ingroup axis2_core_transport_http
+ * @{
+ */
+
+    typedef struct axis2_http_header_ops axis2_http_header_ops_t;
+    typedef struct axis2_http_header axis2_http_header_t;
+
+    
+/** 
+ * @brief HTTP Response Writer operations struct
+ * Encapsulator struct for operations of axis2_http_header
+ */  
+AXIS2_DECLARE_DATA struct axis2_http_header_ops
+{
+    axis2_char_t* (AXIS2_CALL *to_external_form) (axis2_http_header_t *header, 
+                    axis2_env_t **env);
+    
+    axis2_char_t* (AXIS2_CALL *get_name) (axis2_http_header_t *header, 
+                    axis2_env_t **env);
+    
+    axis2_char_t* (AXIS2_CALL *get_value) (axis2_http_header_t *header, 
+                    axis2_env_t **env);
+    
+    axis2_status_t (AXIS2_CALL *free) (axis2_http_header_t *header, 
+                    axis2_env_t **env);
+};
+
+/** 
+ * @brief HTTP Header struct
+ *    Axis2 HTTP Header
+ */
+AXIS2_DECLARE_DATA struct axis2_http_header
+{
+    axis2_http_header_ops_t *ops;    
+};
+
+
+AXIS2_DECLARE(axis2_http_header_t *) AXIS2_CALL
+axis2_http_header_create (axis2_env_t **env, axis2_char_t *name, 
+                            axis2_char_t *value);
+
+/************************** Start of function macros **************************/
+
+#define AXIS2_HTTP_HEADER_TO_EXTERNAL_FORM(header, env) \
+                                ((header)->ops->to_external_form(header, env))
+#define AXIS2_HTTP_HEADER_GET_NAME(header, env) \
+                                ((header)->ops->get_name(header, env))
+#define AXIS2_HTTP_HEADER_GET_VALUE(header, env) \
+                                ((header)->ops->get_value(header, env))
+#define AXIS2_HTTP_HEADER_FREE(header, env) \
+                                ((header)->ops->free(header, env))
+
+/************************** End of function macros ****************************/    
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif                          /* AXIS2_HTTP_HEADER_H */

Added: webservices/axis2/trunk/c/include/axis2_http_request_line.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_http_request_line.h?rev=356458&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_http_request_line.h (added)
+++ webservices/axis2/trunk/c/include/axis2_http_request_line.h Mon Dec 12 19:10:42 2005
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+#ifndef AXIS2_HTTP_REQUEST_LINE_H
+#define AXIS2_HTTP_REQUEST_LINE_H
+
+/**
+ * @file axis2_http_request_line.h
+ * @brief axis2 HTTP Request Line
+ */
+
+#include <axis2.h>
+#include <axis2_defines.h>
+#include <axis2_env.h>
+
+
+#ifdef __cplusplus
+extern "C" 
+{
+#endif
+/** 
+  * @ingroup axis2_core_transport_http
+  * @{
+  */
+
+typedef struct axis2_http_request_line_ops axis2_http_request_line_ops_t;
+typedef struct axis2_http_request_line axis2_http_request_line_t;
+    
+    
+/** 
+ * @brief HTTP Request Line operations struct
+ * Encapsulator struct for operations of axis2_http_request_line
+ */
+AXIS2_DECLARE_DATA struct axis2_http_request_line_ops
+{
+	axis2_char_t* (AXIS2_CALL *get_method) 
+                                (axis2_http_request_line_t *request_line, 
+                                axis2_env_t **env);
+	
+	axis2_char_t* (AXIS2_CALL *get_http_version) 
+                                (axis2_http_request_line_t *request_line, 
+                                axis2_env_t **env);
+    
+	axis2_char_t* (AXIS2_CALL *get_uri) 
+                                (axis2_http_request_line_t *request_line, 
+                                axis2_env_t **env);
+    
+	axis2_char_t* (AXIS2_CALL *to_string)
+                                (axis2_http_request_line_t *request_line, 
+                                axis2_env_t **env);
+	
+	axis2_status_t (AXIS2_CALL *free) 
+                                (axis2_http_request_line_t *request_line, 
+                                axis2_env_t **env);
+};
+
+/**
+ * @brief HTTP Reqest Line struct
+ * Axis2 HTTP Request Line
+ */
+AXIS2_DECLARE_DATA struct axis2_http_request_line
+{
+	axis2_http_request_line_ops_t *ops;
+};
+
+
+axis2_http_request_line_t * AXIS2_CALL 
+axis2_http_request_line_create(axis2_env_t **env, axis2_char_t *method, 
+                                axis2_char_t *uri, axis2_char_t *http_version);
+
+/********************* Start of function macros	***************************/
+
+#define AXIS2_HTTP_REQUEST_LINE_GET_METHOD(request_line, env) \
+                        ((request_line)->ops->get_method (request_line, env))
+#define AXIS2_HTTP_REQUEST_LINE_GET_HTTP_VERSION(request_line, env) \
+                        ((request_line)->ops->get_http_version \
+                        (request_line, env))
+#define AXIS2_HTTP_REQUEST_LINE_GET_URI(request_line, env) \
+                        ((request_line)->ops->get_uri (request_line, env))
+#define AXIS2_HTTP_REQUEST_LINE_TO_STRING(request_line, env) \
+                        ((request_line)->ops->to_string (request_line, env))
+#define AXIS2_HTTP_REQUEST_LINE_FREE(request_line, env) \
+                        ((request_line)->ops->free(request_line, env))
+
+/************************* End of function macros *****************************/
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_HTTP_REQUEST_LINE_H */

Added: webservices/axis2/trunk/c/include/axis2_http_response_writer.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_http_response_writer.h?rev=356458&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_http_response_writer.h (added)
+++ webservices/axis2/trunk/c/include/axis2_http_response_writer.h Mon Dec 12 19:10:42 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_HTTP_RESPONSE_WRITER_H
+#define AXIS2_HTTP_RESPONSE_WRITER_H
+
+
+/**
+  * @file axis2_http_response_writer.h
+  * @brief axis2 Response Writer
+  */
+  
+#include <axis2.h>
+#include <axis2_defines.h>
+#include <axis2_env.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/**
+ * @ingroup axis2_core_transport_http
+ * @{
+ */
+
+    typedef struct axis2_http_response_writer_ops 
+                                        axis2_http_response_writer_ops_t;
+    typedef struct axis2_http_response_writer axis2_http_response_writer_t;
+
+    
+/** 
+ * @brief HTTP Response Writer operations struct
+ * Encapsulator struct for operations of axis2_http_response_writer
+ */  
+AXIS2_DECLARE_DATA struct axis2_http_response_writer_ops
+{
+    axis2_char_t* (AXIS2_CALL *get_encoding) 
+                    (axis2_http_response_writer_t *response_writer, 
+                    axis2_env_t **env);
+    
+    axis2_status_t (AXIS2_CALL *close) 
+                    (axis2_http_response_writer_t *response_writer, 
+                    axis2_env_t **env);
+    
+    axis2_status_t (AXIS2_CALL *flush) 
+                    (axis2_http_response_writer_t *response_writer, 
+                    axis2_env_t **env);
+    
+    axis2_status_t (AXIS2_CALL *write_char) 
+                    (axis2_http_response_writer_t *response_writer, 
+                    axis2_env_t **env, char c);
+    
+    axis2_status_t (AXIS2_CALL *write_buf) 
+                    (axis2_http_response_writer_t *response_writer, 
+                    axis2_env_t **env, char *buf, int offset, 
+                    axis2_ssize_t len);
+
+    axis2_status_t (AXIS2_CALL *print_str) 
+                    (axis2_http_response_writer_t *response_writer, 
+                    axis2_env_t **env, char *str);
+    
+    axis2_status_t (AXIS2_CALL *print_int) 
+                    (axis2_http_response_writer_t *response_writer, 
+                    axis2_env_t **env, int i);
+    
+    axis2_status_t (AXIS2_CALL *println_str) 
+                    (axis2_http_response_writer_t *response_writer, 
+                    axis2_env_t **env, char *str);
+    
+    axis2_status_t (AXIS2_CALL *println) 
+                    (axis2_http_response_writer_t *response_writer, 
+                    axis2_env_t **env);
+    
+    axis2_status_t (AXIS2_CALL *free) 
+                    (axis2_http_response_writer_t *response_writer, 
+                    axis2_env_t **env);
+};
+
+/** 
+ * @brief HTTP Response Writer struct
+ *    Axis2 HTTP Response Writer
+ */
+AXIS2_DECLARE_DATA struct axis2_http_response_writer
+{
+    axis2_http_response_writer_ops_t *ops;    
+};
+
+
+AXIS2_DECLARE(axis2_http_response_writer_t *) AXIS2_CALL
+axis2_http_response_writer_create (axis2_env_t **env, axis2_stream_t *stream);
+
+AXIS2_DECLARE(axis2_http_response_writer_t *) AXIS2_CALL
+axis2_http_response_writer_create_with_encoding(axis2_env_t **env,
+                    axis2_stream_t *stream, const axis2_char_t *encoding);
+    
+/************************** Start of function macros **************************/
+
+#define AXIS2_HTTP_RESPONSE_WRITER_GET_ENCODING(response_writer, env) \
+                    ((response_writer)->ops->get_encoding(response_writer, env))
+#define AXIS2_HTTP_RESPONSE_WRITER_CLOSE(response_writer, env) \
+                    ((response_writer)->ops->close(response_writer, env))
+#define AXIS2_HTTP_RESPONSE_WRITER_FLUSH(response_writer, env) \
+                    ((response_writer)->ops->flush(response_writer, env))
+#define AXIS2_HTTP_RESPONSE_WRITER_WRITE_CHAR(response_writer, env, c) \
+                    ((response_writer)->ops->write_char(response_writer, env, c))
+#define AXIS2_HTTP_RESPONSE_WRITER_WRITE_BUF(response_writer, env, buf, offset,\
+                    len) ((response_writer)->ops->write_buf(response_writer, \
+                    env, buf, offset, len))
+#define AXIS2_HTTP_RESPONSE_WRITER_PRINT_STR(response_writer, env, str) \
+                    ((response_writer)->ops->print_str(response_writer, env, str))
+#define AXIS2_HTTP_RESPONSE_WRITER_PRINT_INT(response_writer, env, i)\
+                    ((response_writer)->ops->print_int(response_writer, env))
+#define AXIS2_HTTP_RESPONSE_WRITER_PRINTLN_STR(response_writer, env, str) \
+                    ((response_writer)->ops->println_str(response_writer, env,\
+                    str))
+#define AXIS2_HTTP_RESPONSE_WRITER_PRINTLN(response_writer, env) \
+                    ((response_writer)->ops->println(response_writer, env))
+#define AXIS2_HTTP_RESPONSE_WRITER_FREE(response_writer, env)\
+                    ((response_writer)->ops->free(response_writer, env))
+
+/************************** End of function macros ****************************/    
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif                          /* AXIS2_HTTP_RESPONSE_WRITER_H */

Added: webservices/axis2/trunk/c/include/axis2_http_simple_request.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_http_simple_request.h?rev=356458&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_http_simple_request.h (added)
+++ webservices/axis2/trunk/c/include/axis2_http_simple_request.h Mon Dec 12 19:10:42 2005
@@ -0,0 +1,175 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_HTTP_SIMPLE_REQUEST_H
+#define AXIS2_HTTP_SIMPLE_REQUEST_H
+
+
+/**
+  * @file axis2_http_simple_request.h
+  * @brief axis2 HTTP Simple Request
+  */
+
+#include <axis2.h>
+#include <axis2_defines.h>
+#include <axis2_env.h>
+#include <axis2_http_request_line.h>
+#include <axis2_http_header.h>
+#include <axis2_stream.h>
+#include <axis2_array_list.h>
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/**
+ * @ingroup axis2_core_transport_http
+ * @{
+ */
+    typedef struct axis2_http_simple_request_ops 
+            axis2_http_simple_request_ops_t;
+    typedef struct axis2_http_simple_request axis2_http_simple_request_t; 
+    
+/** 
+ * @brief HTTP Simple Request operations struct
+ * Encapsulator struct for operations of axis2_http_simple_request
+ */  
+AXIS2_DECLARE_DATA struct axis2_http_simple_request_ops
+{
+    axis2_http_request_line_t* (AXIS2_CALL *get_request_line)
+                            (axis2_http_simple_request_t *simple_request, 
+                            axis2_env_t **env);
+    
+    axis2_status_t (AXIS2_CALL *set_request_line)
+                            (axis2_http_simple_request_t *simple_request, 
+                            axis2_env_t **env, 
+                            axis2_http_request_line_t *request_line);
+    
+    axis2_bool_t (AXIS2_CALL *contains_header)
+                            (axis2_http_simple_request_t *simple_request, 
+                            axis2_env_t **env, axis2_char_t *name);
+
+    axis2_array_list_t* (AXIS2_CALL *get_headers)
+                            (axis2_http_simple_request_t *simple_request, 
+                            axis2_env_t **env);
+
+    axis2_http_header_t* (AXIS2_CALL *get_first_header)
+                            (axis2_http_simple_request_t *simple_request, 
+                            axis2_env_t **env, const axis2_char_t *str);
+
+    axis2_status_t (AXIS2_CALL *remove_headers)
+                            (axis2_http_simple_request_t *simple_request, 
+                            axis2_env_t **env, const axis2_char_t *str);
+
+    axis2_status_t (AXIS2_CALL *add_header)
+                            (axis2_http_simple_request_t *simple_request, 
+                            axis2_env_t **env, axis2_http_header_t *header);
+
+    axis2_char_t* (AXIS2_CALL *get_content_type)
+                            (axis2_http_simple_request_t *simple_request, 
+                            axis2_env_t **env);
+
+    axis2_char_t* (AXIS2_CALL *get_charset)
+                            (axis2_http_simple_request_t *simple_request, 
+                            axis2_env_t **env);
+
+    axis2_ssize_t (AXIS2_CALL *get_content_length)
+                            (axis2_http_simple_request_t *simple_request, 
+                            axis2_env_t **env);
+
+    axis2_stream_t* (AXIS2_CALL *get_body)
+                            (axis2_http_simple_request_t *simple_request, 
+                            axis2_env_t **env);
+
+    axis2_ssize_t (AXIS2_CALL *get_body_bytes)
+                            (axis2_http_simple_request_t *simple_request, 
+                            axis2_env_t **env, axis2_char_t *buf);
+
+    axis2_status_t (AXIS2_CALL *free)
+                            (axis2_http_simple_request_t *simple_request, 
+                            axis2_env_t **env);
+    
+};
+
+/** 
+ * @brief HTTP Simple Request struct
+  *    Axis2 HTTP Simple Request
+ */
+AXIS2_DECLARE_DATA struct axis2_http_simple_request
+{
+    axis2_http_simple_request_ops_t *ops;    
+};
+
+
+AXIS2_DECLARE(axis2_http_simple_request_t *) AXIS2_CALL
+axis2_http_simple_request_create (axis2_env_t **env,
+                        axis2_http_request_line_t *request_line,
+                        axis2_http_header_t **http_headers,
+                        axis2_ssize_t http_hdr_count,
+                        axis2_stream_t *content);
+    
+/************************** Start of function macros **************************/
+
+
+#define AXIS2_HTTP_SIMPLE_REQUEST_GET_REQUEST_LINE(simple_request, env) \
+                            ((simple_request)->ops->get_request_line\
+                            (simple_request, env))
+#define AXIS2_HTTP_SIMPLE_REQUEST_SET_REQUEST_LINE\
+                            (simple_request, env, request_line) \
+                            ((simple_request)->ops->set_request_line\
+                            (simple_request, env, request_line))
+#define AXIS2_HTTP_SIMPLE_REQUEST_CONTAINS_HEADER(simple_request, env, name)\
+                            ((simple_request)->ops->contains_header\
+                            (simple_request, env, name))
+#define AXIS2_HTTP_SIMPLE_REQUEST_GET_HEADERS(simple_request, env, headers)\
+                            ((simple_request)->ops->get_headers(simple_request, env, headers))
+#define AXIS2_HTTP_SIMPLE_REQUEST_GET_FIRST_HEADER(simple_request, env, str) \
+                            ((simple_request)->ops->get_first_header\
+                            (simple_request, env, str))
+#define AXIS2_HTTP_SIMPLE_REQUEST_REMOVE_HEADERS(simple_request, env, str) \
+                            ((simple_request)->ops->remove_headers\
+                            (simple_request, env, str))
+#define AXIS2_HTTP_SIMPLE_REQUEST_ADD_HEADER(simple_request, env, header) \
+                            ((simple_request)->ops->add_header\
+                            (simple_request, env, header))
+#define AXIS2_HTTP_SIMPLE_REQUEST_GET_CONTENT_TYPE(simple_request, env)\
+                            ((simple_request)->ops->get_content_type\
+                            (simple_request, env))
+#define AXIS2_HTTP_SIMPLE_REQUEST_GET_CHARSET(simple_request, env) \
+                            ((simple_request)->ops->get_charset\
+                            (simple_request, env))
+#define AXIS2_HTTP_SIMPLE_REQUEST_GET_CONTENT_LENGTH(simple_request, env)\
+                            ((simple_request)->ops->get_content_length\
+                            (simple_request, env))
+#define AXIS2_HTTP_SIMPLE_REQUEST_GET_BODY(simple_request, env)\
+                            ((simple_request)->ops->get_body\
+                            (simple_request, env))
+#define AXIS2_HTTP_SIMPLE_REQUEST_GET_BODY_BYTES(simple_request, env, buf)\
+                            ((simple_request)->ops->get_body_bytes\
+                            (simple_request, env, buf))
+#define AXIS2_HTTP_SIMPLE_REQUEST_FREE(simple_request, env) \
+                            ((simple_request)->ops->free(simple_request, env))
+
+/************************** End of function macros ****************************/    
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif                          /* AXIS2_HTTP_SIMPLE_REQUEST_H */

Added: webservices/axis2/trunk/c/include/axis2_http_simple_response.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_http_simple_response.h?rev=356458&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_http_simple_response.h (added)
+++ webservices/axis2/trunk/c/include/axis2_http_simple_response.h Mon Dec 12 19:10:42 2005
@@ -0,0 +1,220 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_HTTP_SIMPLE_RESPONSE_H
+#define AXIS2_HTTP_SIMPLE_RESPONSE_H
+
+
+/**
+  * @file axis2_simple_http_response.h
+  * @brief axis2 HTTP Simple Response
+  */
+
+#include <axis2.h>
+#include <axis2_defines.h>
+#include <axis2_env.h>
+#include <axis2_array_list.h>
+#include <axis2_http_status_line.h>
+#include <axis2_http_header.h>
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/**
+ * @ingroup axis2_core_transport_http
+ * @{
+ */
+    typedef struct axis2_http_simple_response_ops 
+            axis2_http_simple_response_ops_t;
+    typedef struct axis2_http_simple_response axis2_http_simple_response_t; 
+    
+/** 
+ * @brief HTTP Simple Response operations struct
+ * Encapsulator struct for operations of axis2_http_simple_response
+ */  
+AXIS2_DECLARE_DATA struct axis2_http_simple_response_ops
+{
+    axis2_status_t (AXIS2_CALL *set_status_line)
+                    (struct axis2_http_simple_response *simple_response, 
+                    axis2_env_t **env, const axis2_char_t *http_ver, 
+                    const int status_code, const axis2_char_t *phrase);
+    
+    axis2_char_t* (AXIS2_CALL *get_phrase)
+                    (axis2_http_simple_response_t *simple_response, 
+                    axis2_env_t **env);
+    
+    int (AXIS2_CALL *get_status_code)
+                    (axis2_http_simple_response_t *simple_response, 
+                    axis2_env_t **env);
+
+    axis2_char_t* (AXIS2_CALL *get_http_version)
+                    (axis2_http_simple_response_t *simple_response, 
+                    axis2_env_t **env);
+
+    axis2_char_t* (AXIS2_CALL *get_status_line)
+                    (axis2_http_simple_response_t *simple_response, 
+                    axis2_env_t **env);
+
+    axis2_bool_t (AXIS2_CALL *contains_header)
+                    (axis2_http_simple_response_t *simple_response, 
+                    axis2_env_t **env, axis2_char_t *name);
+
+    axis2_array_list_t* (AXIS2_CALL *get_headers)
+                    (axis2_http_simple_response_t *simple_response, 
+                    axis2_env_t **env);
+    
+    axis2_http_header_t* (AXIS2_CALL *get_first_header)
+                    (axis2_http_simple_response_t *simple_response, 
+                    axis2_env_t **env, axis2_char_t *str);
+    
+    axis2_status_t (AXIS2_CALL *remove_headers)
+                    (axis2_http_simple_response_t *simple_response, 
+                    axis2_env_t **env, const axis2_char_t *str);
+    
+    axis2_status_t (AXIS2_CALL *set_header)
+                    (axis2_http_simple_response_t *simple_response, 
+                    axis2_env_t **env, axis2_http_header_t* header);
+
+    axis2_status_t (AXIS2_CALL *set_headers)
+                    (axis2_http_simple_response_t *simple_response, 
+                    axis2_env_t **env, axis2_http_header_t** headers, 
+                    axis2_ssize_t array_size);
+    
+    axis2_char_t* (AXIS2_CALL *get_charset)
+                    (axis2_http_simple_response_t *simple_response, 
+                    axis2_env_t **env);
+    
+    axis2_ssize_t (AXIS2_CALL *get_content_length)
+                    (axis2_http_simple_response_t *simple_response, 
+                    axis2_env_t **env);
+    
+    axis2_char_t* (AXIS2_CALL *get_content_type)
+                    (axis2_http_simple_response_t *simple_response, 
+                    axis2_env_t **env);
+
+    axis2_status_t (AXIS2_CALL *set_body_string)
+                    (axis2_http_simple_response_t *simple_response, 
+                    axis2_env_t **env, axis2_char_t *str);
+    
+    axis2_status_t (AXIS2_CALL *set_body_stream)
+                    (axis2_http_simple_response_t *simple_response, 
+                    axis2_env_t **env, axis2_stream_t *stream);    
+
+    axis2_stream_t* (AXIS2_CALL *get_body)
+                    (axis2_http_simple_response_t *simple_response, 
+                    axis2_env_t **env);
+
+    axis2_ssize_t (AXIS2_CALL *get_body_bytes)
+                    (axis2_http_simple_response_t *simple_response, 
+                    axis2_env_t **env, axis2_char_t *buf);
+
+    axis2_status_t (AXIS2_CALL *free)
+                    (axis2_http_simple_response_t *simple_response, 
+                    axis2_env_t **env);
+    
+};
+
+/** 
+  * @brief HTTP Simple Response struct
+  *    Axis2 HTTP Simple Response
+  */
+AXIS2_DECLARE_DATA struct axis2_http_simple_response
+{
+    axis2_http_simple_response_ops_t *ops;    
+};
+
+
+AXIS2_DECLARE(axis2_http_simple_response_t *) AXIS2_CALL
+axis2_http_simple_response_create (axis2_env_t **env,
+                        axis2_http_status_line_t *status_line,
+                        const axis2_http_header_t **http_headers,
+                        const axis2_ssize_t http_hdr_count,
+                        axis2_stream_t *content);
+
+AXIS2_DECLARE(axis2_http_simple_response_t *) AXIS2_CALL
+axis2_http_simple_response_create_default(axis2_env_t **env);
+    
+/************************** Start of function macros **************************/
+
+
+#define AXIS2_HTTP_SIMPLE_RESPONSE_SET_STAUTUS_LINE\
+                    (simple_response, env, status_line)\
+                    ((simple_response)->ops->get_status_line_line\
+                    (simple_response, env, status_line))
+#define AXIS2_HTTP_SIMPLE_RESPONSE_GET_PHRASE\
+                    (simple_response, env) ((simple_response)->ops->get_phrase\
+                    (simple_response, env))
+#define AXIS2_HTTP_SIMPLE_RESPONSE_GET_HTTP_VERSION(simple_response, env)\
+                    ((simple_response)->ops->get_http_version\
+                    (simple_response, env))
+#define AXIS2_HTTP_SIMPLE_RESPONSE_GET_STATUS_CODE(simple_response, env)\
+                    ((simple_response)->ops->get_status_code\
+                    (simple_response, env))
+#define AXIS2_HTTP_SIMPLE_RESPONSE_GET_STAUTUS_LINE(simple_response, env) \
+                    ((simple_response)->ops->get_status_line\
+                    (simple_response, env))
+#define AXIS2_HTTP_SIMPLE_RESPONSE_CONTAINS_HEADER(simple_response, env, name)\
+                    ((simple_response)->ops->contains_header\
+                    (simple_response, env, name))
+#define AXIS2_HTTP_SIMPLE_RESPONSE_GET_HEADERS(simple_response, env, headers) \
+                    ((simple_response)->ops->get_headers\
+                    (simple_response, env, headers))
+#define AXIS2_HTTP_SIMPLE_RESPONSE_GET_FIRST_HEADER(simple_request, env) \
+                    ((simple_request)->ops->get_first_header\
+                    (simple_request, env))
+#define AXIS2_HTTP_SIMPLE_RESPONSE_REMOVE_HEADERS(simple_request, env, str)\
+                    ((simple_request)->ops->remove_headers\
+                    (simple_request, env, str))
+#define AXIS2_HTTP_SIMPLE_RESPONSE_SET_HEADER(simple_response, env, header) \
+                    ((simple_response)->ops->set_header\
+                    (simple_response, env, header))
+#define AXIS2_HTTP_SIMPLE_RESPONSE_SET_HEADERS(simple_response, env, headers) \
+                    ((simple_response)->ops->set_headers\
+                    (simple_response, env, headers))
+#define AXIS2_HTTP_SIMPLE_RESPONSE_GET_CHARSET(simple_request, env) \
+                    ((simple_request)->ops->get_charset(simple_request, env))
+#define AXIS2_HTTP_SIMPLE_RESPONSE_GET_CONTENT_LENGTH(simple_request, env) \
+                    ((simple_request)->ops->get_content_length\
+                    (simple_request, env))
+#define AXIS2_HTTP_SIMPLE_RESPONSE_GET_CONTENT_TYPE(simple_request, env) \
+                    ((simple_request)->ops->get_content_type\
+                    (simple_request, env))
+#define AXIS2_HTTP_SIMPLE_RESPONSE_SET_BODY_STRING(simple_request, env, str)\
+                    ((simple_request)->ops->set_body_string\
+                    (simple_request, env, str))
+#define AXIS2_HTTP_SIMPLE_RESPONSE_SET_BODY_STREAM(simple_request, env, stream)\
+                    ((simple_request)->ops->set_body_stream\
+                    (simple_request, env, stream))
+#define AXIS2_HTTP_SIMPLE_RESPONSE_GET_BODY(simple_request, env)\
+                    ((simple_request)->ops->get_body\
+                    (simple_request, env))
+#define AXIS2_HTTP_SIMPLE_RESPONSE_GET_BODY_BYTES(simple_request, env, buf)\
+                    ((simple_request)->ops->get_body_bytes\
+                    (simple_request, env, buf))
+#define AXIS2_HTTP_SIMPLE_RESPONSE_FREE(simple_request, env)\
+                    ((simple_request)->ops->free(simple_request, env))
+
+/************************** End of function macros ****************************/    
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif                          /* AXIS2_HTTP_SIMPLE_RESPONSE_H */

Added: webservices/axis2/trunk/c/include/axis2_http_status_line.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_http_status_line.h?rev=356458&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_http_status_line.h (added)
+++ webservices/axis2/trunk/c/include/axis2_http_status_line.h Mon Dec 12 19:10:42 2005
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+#ifndef AXIS2_HTTP_STATUS_LINE_H
+#define AXIS2_HTTP_STATUS_LINE_H
+
+/**
+ * @file axis2_http_status_line.h
+ * @brief axis2 HTTP Status Line
+ */
+
+#include <axis2.h>
+#include <axis2_defines.h>
+#include <axis2_env.h>
+
+
+#ifdef __cplusplus
+extern "C" 
+{
+#endif
+/** 
+  * @ingroup axis2_core_transport_http
+  * @{
+  */
+
+typedef struct axis2_http_status_line_ops axis2_http_status_line_ops_t;
+typedef struct axis2_http_status_line axis2_http_status_line_t;
+    
+    
+/** 
+ * @brief HTTP Status Line operations struct
+ * Encapsulator struct for operations of axis2_http_status_line
+ */
+AXIS2_DECLARE_DATA struct axis2_http_status_line_ops
+{
+    int (AXIS2_CALL *get_status_code) (axis2_http_status_line_t *status_line, 
+                                        axis2_env_t **env);
+    
+    axis2_char_t* (AXIS2_CALL *get_http_version) 
+                    (axis2_http_status_line_t *status_line, axis2_env_t **env);
+    
+    axis2_char_t* (AXIS2_CALL *get_reason_phrase) 
+                    (axis2_http_status_line_t *status_line, axis2_env_t **env);
+    
+    axis2_bool_t (AXIS2_CALL *starts_with_http)
+                    (axis2_http_status_line_t *status_line, axis2_env_t **env);
+    
+    axis2_char_t* (AXIS2_CALL *to_string)
+                    (axis2_http_status_line_t *status_line, axis2_env_t **env);
+    
+    axis2_status_t (AXIS2_CALL *free) (axis2_http_status_line_t *status_line, 
+                                        axis2_env_t **env);
+};
+
+/**
+ * @brief HTTP Status Line struct
+ * Axis2 HTTP Status Line
+ */
+AXIS2_DECLARE_DATA struct axis2_http_status_line
+{
+    axis2_http_status_line_ops_t *ops;
+};
+
+
+axis2_http_status_line_t * AXIS2_CALL 
+axis2_http_status_line_create(axis2_env_t **env, axis2_char_t *str);
+
+/************************* Start of function macros    ***************************/
+
+#define AXIS2_HTTP_STATUS_LINE_GET_STATUS_CODE(status_line, env)\
+                    ((status_line)->ops->get_status_code (status_line, env))
+#define AXIS2_HTTP_STATUS_LINE_GET_HTTP_VERSION(status_line, env)\
+                    ((status_line)->ops->get_http_version (status_line, env))
+#define AXIS2_HTTP_STATUS_LINE_GET_REASON_PHRASE(status_line, env)\
+                    ((status_line)->ops->get_reason_phrase (status_line, env))
+#define AXIS2_HTTP_STATUS_LINE_STARTS_WITH_HTTP(status_line, env)\
+                    ((status_line)->ops->starts_with_http (status_line, env))
+#define AXIS2_HTTP_STATUS_LINE_TO_STRING(status_line, env)\
+                    ((status_line)->ops->to_string (status_line, env))
+#define AXIS2_HTTP_STATUS_LINE_FREE(status_line, env)\
+                    ((status_line)->ops->free(status_line, env))
+
+/************************* End of function macros *****************************/
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_HTTP_STATUS_LINE_H */

Added: webservices/axis2/trunk/c/include/axis2_http_transport.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_http_transport.h?rev=356458&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_http_transport.h (added)
+++ webservices/axis2/trunk/c/include/axis2_http_transport.h Mon Dec 12 19:10:42 2005
@@ -0,0 +1,341 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain count copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_HTTP_TRANSPORT_H
+#define AXIS2_HTTP_TRANSPORT_H
+
+#include <axis2.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/**
+ * @defgroup axis2_core_transport_http Core HTTP Transport
+ * @ingroup axis2_core_transport_http
+ * @{
+ */
+
+    /** 
+    * \brief HTTP protocol and message context constants.
+    *
+    */
+    
+    /**
+     * CARRIAGE RETURN AND LINE FEED
+     */
+    #define AXIS2_HTTP_CRLF "\r\n"
+    /**
+     * PROTOCOL_VERSION
+     */
+    #define AXIS2_HTTP_PROTOCOL_VERSION "PROTOCOL"
+    
+    /**
+     * REQUEST_URI
+     */
+    #define AXIS2_HTTP_REQUEST_URI "REQUEST_URI"
+    
+    /**
+     * RESPONSE_CODE
+     */
+    #define AXIS2_HTTP_RESPONSE_CODE "RESPONSE_CODE"
+    
+    /**
+     * RESPONSE_WORD
+     */
+    #define AXIS2_HTTP_RESPONSE_WORD "RESPONSE_WORD"
+    
+    /**
+     * RESPONSE_ACK_CODE_VAL
+     */
+    #define AXIS2_HTTP_RESPONSE_ACK_CODE_VAL "202"
+    
+    /**
+     * SOCKET
+     */
+    #define AXIS2_SOCKET "SOCKET"
+    
+    /**
+     * HEADER_PROTOCOL_10
+     */
+    #define AXIS2_HTTP_HEADER_PROTOCOL_10 "HTTP/1.0"
+    
+    /**
+     * HEADER_PROTOCOL_11
+     */
+    #define AXIS2_HTTP_HEADER_PROTOCOL_11 "HTTP/1.1"
+    
+    /**
+     * CHAR_SET_ENCODING
+     */
+    #define AXIS2_HTTP_CHAR_SET_ENCODING "charset"
+    
+    /**
+     * HEADER_POST
+     */
+    #define AXIS2_HTTP_HEADER_POST  "POST"
+    
+    /**
+     * HEADER_GET
+     */
+    #define AXIS2_HTTP_HEADER_GET "GET"
+    
+    /**
+     * HEADER_HOST
+     */
+    #define AXIS2_HTTP_HEADER_HOST "Host"
+    
+    /**
+     * HEADER_CONTENT_DESCRIPTION
+     */
+    #define AXIS2_HTP_HEADER_CONTENT_DESCRIPTION "Content-Description"
+    
+    /**
+     * HEADER_CONTENT_TYPE
+     */
+    #define AXIS2_HTTP_HEADER_CONTENT_TYPE "Content-Type"
+    
+    /**
+     * HEADER_CONTENT_TRANSFER_ENCODING
+     */
+    #define AXIS2_HTTP_HEADER_CONTENT_TRANSFER_ENCODING \
+                                    "Content-Transfer-Encoding"
+    
+    /**
+     * HEADER_CONTENT_LENGTH
+     */
+    #define AXIS2_HTTP_HEADER_CONTENT_LENGTH "Content-Length"
+    
+    /**
+     * HEADER_CONTENT_LOCATION
+     */
+    #define AXIS2_HTTP_HEADER_CONTENT_LOCATION "Content-Location"
+    
+    /**
+     * HEADER_CONTENT_ID
+     */
+    #define AXIS2_HTTP_HEADER_CONTENT_ID "Content-Id"
+    
+    /**
+     * HEADER_SOAP_ACTION
+     */
+    #define AXIS2_HTTP_HEADER_SOAP_ACTION "SOAPAction"
+    
+    /**
+     * HEADER_AUTHORIZATION
+     */
+    #define AXIS2_HTTP_HEADER_AUTHORIZATION "Authorization"
+    
+    /**
+     * HEADER_PROXY_AUTHORIZATION
+     */
+    #define AXIS2_HTTP_HEADER_PROXY_AUTHORIZATION "Proxy-Authorization"
+    
+    /**
+     * HEADER_EXPECT
+     */
+    #define AXIS2_HTTP_HEADER_EXPECT "Expect"
+    
+    /**
+     * HEADER_EXPECT_100_Continue
+     */
+    #define AXIS2_HTTP_HEADER_EXPECT_100_CONTINUE "100-continue"
+    
+    /**
+     * HEADER_USER_AGENT
+     */
+    #define AXIS2_HTTP_HEADER_USER_AGENT "User-Agent"
+    
+    /**
+     * HEADER_CACHE_CONTROL
+     */
+    #define AXIS2_HTTP_HEADER_CACHE_CONTROL "Cache-Control"
+    
+    /**
+     * HEADER_CACHE_CONTROL_NOCACHE
+     */
+    #define AXIS2_HTTP_HEADER_CACHE_CONTROL_NOCACHE "no-cache"
+    
+    /**
+     * HEADER_PRAGMA
+     */
+    #define AXIS2_HTTP_HEADER_PRAGMA "Pragma"
+    
+    /**
+     * HEADER_LOCATION
+     */
+    #define AXIS2_HTTP_HEADER_LOCATION "Location"
+    
+    /**
+     * REQUEST_HEADERS
+     */
+    #define AXIS2_HTTP_REQUEST_HEADERS "HTTP-Request-Headers"
+    
+    /**
+     * RESPONSE_HEADERS
+     */
+    #define AXIS2_HTTP_RESPONSE_HEADERS "HTTP-Response-Headers"
+    
+    /* http 1.1 */
+    
+    /**
+     * HEADER_TRANSFER_ENCODING
+     */
+    #define AXIS2_HTTP_HEADER_TRANSFER_ENCODING "Transfer-Encoding"
+    
+    /**
+     * HEADER_TRANSFER_ENCODING_CHUNKED
+     */
+    #define AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED "chunked"
+    
+    /**
+     * HEADER_CONNECTION
+     */
+    #define AXIS2_HTTP_HEADER_CONNECTION "Connection"
+    
+    /**
+     * HEADER_CONNECTION_CLOSE
+     */
+    #define AXIS2_HTTP_HEADER_CONNECTION_CLOSE "close"
+    
+    /**
+     * HEADER_CONNECTION_KEEPALIVE
+     */
+    #define AXIS2_HTTP_HEADER_CONNECTION_KEEPALIVE "Keep-Alive"
+    
+    /**
+     * HEADER_ACCEPT
+     */
+    #define AXIS2_HTTP_HEADER_ACCEPT "Accept"
+    
+    /**
+     * HEADER_ACCEPT_TEXT_ALL
+     */
+    #define AXIS2_HTTP_HEADER_ACCEPT_TEXT_ALL "text/*"
+    
+    /**
+     * HEADER_ACCEPT_TEXT_ALL
+     */
+    #define AXIS2_HTTP_HEADER_ACCEPT_TEXT_PLAIN "text/plain"
+    
+    /**
+     * HEADER_ACCEPT_APPL_SOAP
+     */
+    #define AXIS2_HTTP_HEADER_ACCEPT_APPL_SOAP "application/soap+xml"
+    
+    /**
+     * HEADER_ACCEPT_MULTIPART_RELATED
+     */
+    #define AXIS2_HTTP_HEADER_ACCEPT_MULTIPART_RELATED "multipart/related"
+    
+    /**
+     * HEADER_ACCEPT_APPLICATION_DIME
+     */
+    #define AXIS2_HTTP_HEADER_ACCEPT_APPLICATION_DIME "application/dime"
+    
+    /**
+     * Cookie headers
+    */
+    #define AXIS2_HTTP_HEADER_COOKIE "Cookie"
+    
+    /**
+    * HEADER_COOKIE2
+    */
+    #define AXIS2_HTTP_HEADER_COOKIE2 "Cookie2"
+    
+    /**
+    * HEADER_SET_COOKIE
+    */
+    #define AXIS2_HTTP_HEADER_SET_COOKIE "Set-Cookie"
+    
+    /**
+    * HEADER_SET_COOKIE2
+     */
+    #define AXIS2_HTTP_HEADER_SET_COOKIE2 "Set-Cookie2"
+    
+    /**
+     * HTTP header field values
+     */
+    #define AXIS2_HTTP_HEADER_DEFAULT_CHAR_ENCODING "iso-8859-1"
+    
+    /**
+     * REPONSE_HTTP_OK
+     */
+    #define AXIS2_HTTP_RESPONSE_OK "200 OK"
+    
+    /**
+     * RESPONSE_HTTP_NOCONTENT
+     */
+    #define AXIS2_HTTP_RESPONSE_NOCONTENT "202 OK";
+    
+    /**
+     * RESPONSE_HTTP_UNAUTHORIZED
+     */
+    #define AXIS2_HTTP_RESPONSE_HTTP_UNAUTHORIZED "401 Unauthorized"
+    
+    /**
+     * RESPONSE_BAD_REQUEST
+     */
+    #define AXIS2_HTTP_RESPONSE_BAD_REQUEST "400 Bad Request"
+    
+    /**
+     * RESPONSE_HTTP_INTERNAL_SERVER_ERROR
+     */
+    #define AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR "500 Internal server error"
+    
+    /**
+     * HTTP_REQ_TYPE
+     */
+    #define AXIS2_HTTP_REQ_TYPE "HTTP_REQ_TYPE"
+    
+    /**
+     * SO_TIMEOUT
+     */
+    #define AXIS2_HTTP_SO_TIMEOUT "SO_TIMEOUT"
+    
+    /**
+     * CONNECTION_TIMEOUT
+     */
+    #define AXIS2_HTTP_CONNECTION_TIMEOUT "CONNECTION_TIMEOUT"
+    
+    /**
+     * DEFAULT_SO_TIMEOUT
+     */
+    #define AXIS2_HTTP_DEFAULT_SO_TIMEOUT 60000
+    
+    /**
+     * DEFAULT_CONNECTION_TIMEOUT
+     */
+    #define AXIS2_HTTP_DEFAULT_CONNECTION_TIMEOUT 60000
+    
+    #define AXIS2_HTTP_PROXY "PROXY"
+    
+    /**
+     * ISO-8859-1 encoding
+     */
+    #define AXIS2_HTTP_ISO_8859_1 "ISO-8859-1"
+    /** 
+     * Default charset in content
+     */
+    #define AXIS2_HTTP_DEFAULT_CONTENT_CHARSET "ISO-8859-1"
+    
+/** @} */
+    
+#ifdef __cplusplus
+}
+#endif  
+#endif                          /* AXIS2_HTTP_TRANSPORT_H */

Added: webservices/axis2/trunk/c/include/axis2_http_transport_utils.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_http_transport_utils.h?rev=356458&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_http_transport_utils.h (added)
+++ webservices/axis2/trunk/c/include/axis2_http_transport_utils.h Mon Dec 12 19:10:42 2005
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_HTTP_TRANSPORT_UTILS_H
+#define AXIS2_HTTP_TRANSPORT_UTILS_H
+
+
+/**
+  * @file axis2_http_transport_utils.h
+  * @brief axis2 HTTP Transport Utility class
+  */
+
+#include <axis2.h>
+#include <axis2_defines.h>
+#include <axis2_env.h>
+#include <axis2_om_stax_builder.h>
+#include <axis2_msg_ctx.h>
+#include <axis2_conf_ctx.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/**
+ * @ingroup axis2_core_transport_http
+ * @{
+ */
+  
+
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif                          /* AXIS2_HTTP_TRANSPORT_UTILS_H */

Added: webservices/axis2/trunk/c/include/axis2_http_worker.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_http_worker.h?rev=356458&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_http_worker.h (added)
+++ webservices/axis2/trunk/c/include/axis2_http_worker.h Mon Dec 12 19:10:42 2005
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_HTTP_WORKER_H
+#define AXIS2_HTTP_WORKER_H
+
+
+/**
+  * @file axis2_http_worker.h
+  * @brief axis2 HTTP Worker
+  */
+
+#include <axis2.h>
+#include <axis2_defines.h>
+#include <axis2_env.h>
+#include <axis2_simple_http_svr_conn.h>
+#include <axis2_http_simple_response.h>
+#include <axis2_http_simple_request.h>
+#include <axis2_conf_ctx.h>
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/**
+ * @ingroup axis2_core_transport_http
+ * @{
+ */
+
+    typedef struct axis2_http_worker_ops axis2_http_worker_ops_t;
+    typedef struct axis2_http_worker axis2_http_worker_t; 
+    
+/** 
+ * @brief HTTP Worker operations struct
+ * Encapsulator struct for operations of axis2_http_worker
+ */  
+AXIS2_DECLARE_DATA struct axis2_http_worker_ops
+{
+    axis2_bool_t (AXIS2_CALL *process_request)
+                    (axis2_http_worker_t *http_worker, 
+                    axis2_env_t **env, 
+                    axis2_simple_http_svr_conn_t *svr_conn, 
+                    axis2_http_simple_request_t *simple_request);
+    
+    axis2_status_t (AXIS2_CALL *set_response_headers)
+                    (axis2_http_worker_t *http_worker, 
+                    axis2_env_t **env, 
+                    axis2_simple_http_svr_conn_t *svr_conn, 
+                    axis2_http_simple_request_t *simple_request,
+                    axis2_http_simple_response_t *simple_response,    
+                    axis2_ssize_t content_length);
+
+    axis2_status_t (AXIS2_CALL *set_trasnport_out_config)
+                    (axis2_http_worker_t *http_worker, 
+                    axis2_env_t **env, 
+                    axis2_conf_ctx_t *conf_ctx, 
+                    axis2_http_simple_response_t *simple_response);
+    
+    axis2_status_t (AXIS2_CALL *free)
+                    (axis2_http_worker_t *http_worker, 
+                    axis2_env_t **env);
+};
+
+/** 
+ * @brief HTTP Worker struct
+  *    Axis2 HTTP Worker
+ */
+AXIS2_DECLARE_DATA struct axis2_http_worker
+{
+    axis2_http_worker_ops_t *ops;    
+};
+
+
+AXIS2_DECLARE(axis2_http_worker_t *) AXIS2_CALL
+axis2_http_worker_create (axis2_env_t **env, axis2_conf_ctx_t *conf_ctx);
+    
+/************************** Start of function macros **************************/
+
+
+#define AXIS2_HTTP_WORKER_PROCESS_REQUEST\
+                (http_worker, env, svr_conn, simple_request) \
+                ((http_worker)->ops->process_request(http_worker, env, svr_conn\
+                ,simple_request))
+#define AXIS2_HTTP_WORKER_SET_RESPONSE_HEADERS\
+                (http_worker, env, svr_conn, simple_request, content_length)\
+                ((http_worker)->ops->set_response_headers(http_worker, env, \
+                svr_conn, simple_request, content_length))
+#define AXIS2_HTTP_WORKER_SET_TRANSPORT_OUT_CONFIG\
+                (http_worker, env, conf_ctx, simple_response)\
+                ((http_worker)->ops->set_trasnport_out_config(http_worker, env,\
+                conf_ctx, simple_response)))
+#define AXIS2_HTTP_WORKER_FREE\
+                (http_worker, env) \
+                ((http_worker)->ops->free(http_worker, env))
+
+/************************** End of function macros ****************************/    
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif                          /* AXIS2_HTTP_WORKER_H */

Added: webservices/axis2/trunk/c/include/axis2_simple_http_svr_conn.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_simple_http_svr_conn.h?rev=356458&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_simple_http_svr_conn.h (added)
+++ webservices/axis2/trunk/c/include/axis2_simple_http_svr_conn.h Mon Dec 12 19:10:42 2005
@@ -0,0 +1,142 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_SIMPLE_HTTP_SVR_CONN_H
+#define AXIS2_SIMPLE_HTTP_SVR_CONN_H
+
+/**
+ * @file axis2_simple_http_svr_conn.h
+ * @brief Axis2 simple http server connection
+ */
+
+#include <axis2.h>
+#include <axis2_defines.h>
+#include <axis2_env.h>
+#include <axis2_http_simple_request.h>
+#include <axis2_http_simple_response.h>
+#include <axis2_http_response_writer.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+    typedef struct axis2_simple_http_svr_conn_ops 
+                    axis2_simple_http_svr_conn_ops_t;
+    typedef struct axis2_simple_http_svr_conn axis2_simple_http_svr_conn_t;
+    
+/**
+ * @ingroup axis2_core_transport_http
+ * @{
+ */
+
+/**
+ *   \brief Simple HTTP Server Connection operations struct
+ */
+AXIS2_DECLARE_DATA struct axis2_simple_http_svr_conn_ops
+{        
+        axis2_status_t (AXIS2_CALL *close) 
+                        (axis2_simple_http_svr_conn_t *svr_conn, 
+                        axis2_env_t **env);
+        axis2_bool_t (AXIS2_CALL *is_open) 
+                        (axis2_simple_http_svr_conn_t *svr_conn, 
+                        axis2_env_t **env);
+        axis2_status_t (AXIS2_CALL *set_keep_alive) 
+                        (axis2_simple_http_svr_conn_t *svr_conn, 
+                        axis2_env_t **env, axis2_bool_t keep_alive);
+        axis2_bool_t (AXIS2_CALL *is_keep_alive)
+                        (axis2_simple_http_svr_conn_t *svr_conn, 
+                        axis2_env_t **env);
+        axis2_stream_t* (AXIS2_CALL *get_stream) 
+                        (axis2_simple_http_svr_conn_t *svr_conn, 
+                        axis2_env_t **env);
+        axis2_http_response_writer_t* (AXIS2_CALL *get_writer)
+                        (axis2_simple_http_svr_conn_t *svr_conn, 
+                        axis2_env_t **env);
+        axis2_http_simple_request_t* (AXIS2_CALL *read_request)
+                        (axis2_simple_http_svr_conn_t *svr_conn, 
+                        axis2_env_t **env);
+        axis2_status_t (AXIS2_CALL *write_response)
+                        (axis2_simple_http_svr_conn_t *svr_conn, 
+                        axis2_env_t **env, 
+                        const axis2_http_simple_response_t *response);
+        int (AXIS2_CALL *get_snd_timeout) 
+                        (axis2_simple_http_svr_conn_t *svr_conn, 
+                        axis2_env_t **env);
+        int (AXIS2_CALL *get_rcv_timeout) 
+                        (axis2_simple_http_svr_conn_t *svr_conn, 
+                        axis2_env_t **env);
+        axis2_status_t (AXIS2_CALL *set_rcv_timeout)
+                        (axis2_simple_http_svr_conn_t *svr_conn, 
+                        axis2_env_t **env, int timeout);
+        axis2_status_t (AXIS2_CALL *set_snd_timeout) 
+                        (axis2_simple_http_svr_conn_t *svr_conn, 
+                        axis2_env_t **env, int timeout);
+        axis2_status_t (AXIS2_CALL *free) 
+                        (axis2_simple_http_svr_conn_t *svr_conn, 
+                        axis2_env_t **env);
+ };
+    
+/** 
+* \brief Simple HTTP Server Connection struct
+*/
+AXIS2_DECLARE_DATA struct axis2_simple_http_svr_conn
+{
+    /** Simple HTTP Server Connection related operations */
+    axis2_simple_http_svr_conn_ops_t *ops;
+};
+
+
+/**
+ * creates axis2_simple_http_svr_conn struct
+ */
+AXIS2_DECLARE(axis2_simple_http_svr_conn_t*) AXIS2_CALL
+axis2_simple_http_svr_conn_create(axis2_env_t **env, int sockfd);
+  
+#define AXIS2_SIMPLE_HTTP_SVR_CONN_CLOSE(svr_conn, env) \
+                    ((svr_conn)->ops->close(svr_conn, env))
+#define AXIS2_SIMPLE_HTTP_SVR_CONN_IS_OPEN(svr_conn, env) \
+                    ((svr_conn)->ops->is_open(svr_conn, env))
+#define AXIS2_SIMPLE_HTTP_SVR_CONN_SET_KEEP_ALIVE(svr_conn, env, keep_alive)\
+                    ((svr_conn)->ops->set_keep_alive(svr_conn, env, keep_alive))
+#define AXIS2_SIMPLE_HTTP_SVR_CONN_IS_KEEP_ALIVE(svr_conn, env) \
+                    ((svr_conn)->ops->is_keep_alive(svr_conn, env))
+#define AXIS2_SIMPLE_HTTP_SVR_CONN_GET_STREAM(svr_conn, env) \
+                    ((svr_conn)->ops->get_stream(svr_conn, env))
+#define AXIS2_SIMPLE_HTTP_SVR_CONN_SET_WRITER(svr_conn, env, writer) \
+                    ((svr_conn)->ops->set_writer(svr_conn, env, writer))
+#define AXIS2_SIMPLE_HTTP_SVR_CONN_READ_REQUEST(svr_conn, env) \
+                    ((svr_conn)->ops->is_open(svr_conn, env))
+#define AXIS2_SIMPLE_HTTP_SVR_CONN_WRITE_RESPONSE(svr_conn, env, response) \
+                    ((svr_conn)->ops->write_response(svr_conn, env, response))
+#define AXIS2_SIMPLE_HTTP_SVR_CONN_GET_SND_TIMEOUT(svr_conn, env)\
+                    ((svr_conn)->ops->get_snd_timeout(svr_conn, env))
+#define AXIS2_SIMPLE_HTTP_SVR_CONN_GET_RCV_TIMEOUT(svr_conn, env) \
+                    ((svr_conn)->ops->get_rcv_timeout(svr_conn, env))
+#define AXIS2_SIMPLE_HTTP_SVR_CONN_SET_SND_TIMEOUT(svr_conn, env, timeout) \
+                    ((svr_conn)->ops->set_snd_timeout(svr_conn, env, timeout))
+#define AXIS2_SIMPLE_HTTP_SVR_CONN_SET_RCV_TIMEOUT(svr_conn, env, timeout) \
+                    ((svr_conn)->ops->set_rcv_timeout(svr_conn, env, timeout))
+#define AXIS2_SIMPLE_HTTP_SVR_CONN_FREE(svr_conn, env) \
+                    ((svr_conn)->ops->is_open(svr_conn, env))
+    
+/** @} */
+    
+#ifdef __cplusplus
+}
+#endif
+
+#endif    /* AXIS2_SIMPLE_HTTP_SVR_CONN_H */