axutil_thread_pool.h

Go to the documentation of this file.
00001 
00002 /*
00003  * Licensed to the Apache Software Foundation (ASF) under one or more
00004  * contributor license agreements.  See the NOTICE file distributed with
00005  * this work for additional information regarding copyright ownership.
00006  * The ASF licenses this file to You under the Apache License, Version 2.0
00007  * (the "License"); you may not use this file except in compliance with
00008  * the License.  You may obtain a copy of the License at
00009  *
00010  *      http://www.apache.org/licenses/LICENSE-2.0
00011  *
00012  * Unless required by applicable law or agreed to in writing, software
00013  * distributed under the License is distributed on an "AS IS" BASIS,
00014  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00015  * See the License for the specific language governing permissions and
00016  * limitations under the License.
00017  */
00018 
00019 #ifndef AXUTIL_THREAD_POOL_H
00020 #define AXUTIL_THREAD_POOL_H
00021 
00027 #include <axutil_utils_defines.h>
00028 #include <axutil_allocator.h>
00029 #include <axutil_thread.h>
00030 
00031 #ifdef __cplusplus
00032 extern "C"
00033 {
00034 #endif
00035 
00042     typedef struct axutil_thread_pool axutil_thread_pool_t;
00043     struct axutil_env;
00044 
00051     AXIS2_EXTERN axutil_thread_t *AXIS2_CALL
00052     axutil_thread_pool_get_thread(
00053         axutil_thread_pool_t * pool,
00054         axutil_thread_start_t func,
00055         void *data);
00056 
00062     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00063     axutil_thread_pool_join_thread(
00064         axutil_thread_pool_t * pool,
00065         axutil_thread_t * thd);
00066 
00072     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00073     axutil_thread_pool_exit_thread(
00074         axutil_thread_pool_t * pool,
00075         axutil_thread_t * thd);
00076 
00082     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00083     axutil_thread_pool_thread_detach(
00084         axutil_thread_pool_t * pool,
00085         axutil_thread_t * thd);
00086 
00091     AXIS2_EXTERN void AXIS2_CALL
00092     axutil_thread_pool_free(
00093         axutil_thread_pool_t * pool);
00094 
00100     AXIS2_EXTERN axutil_thread_pool_t *AXIS2_CALL
00101     axutil_thread_pool_init(
00102         axutil_allocator_t * allocator);
00103 
00108     AXIS2_EXTERN struct axutil_env *AXIS2_CALL
00109                 axutil_init_thread_env(
00110                     const struct axutil_env *system_env);
00111 
00116     AXIS2_EXTERN void AXIS2_CALL
00117     axutil_free_thread_env(
00118         struct axutil_env *thread_env);
00119 
00122 #ifdef __cplusplus
00123 }
00124 #endif
00125 
00126 #endif                          /* AXIS2_THREAD_POOL_H */

Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by  doxygen 1.5.3