Annotation of sbbs/include/mozilla/nspr/prtpool.h, revision 1.1.1.1

1.1       root        1: /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
                      2: /* 
                      3:  * The contents of this file are subject to the Mozilla Public
                      4:  * License Version 1.1 (the "License"); you may not use this file
                      5:  * except in compliance with the License. You may obtain a copy of
                      6:  * the License at http://www.mozilla.org/MPL/
                      7:  * 
                      8:  * Software distributed under the License is distributed on an "AS
                      9:  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
                     10:  * implied. See the License for the specific language governing
                     11:  * rights and limitations under the License.
                     12:  * 
                     13:  * The Original Code is the Netscape Portable Runtime (NSPR).
                     14:  * 
                     15:  * The Initial Developer of the Original Code is Netscape
                     16:  * Communications Corporation.  Portions created by Netscape are 
                     17:  * Copyright (C) 1999-2000 Netscape Communications Corporation.  All
                     18:  * Rights Reserved.
                     19:  * 
                     20:  * Contributor(s):
                     21:  * 
                     22:  * Alternatively, the contents of this file may be used under the
                     23:  * terms of the GNU General Public License Version 2 or later (the
                     24:  * "GPL"), in which case the provisions of the GPL are applicable 
                     25:  * instead of those above.  If you wish to allow use of your 
                     26:  * version of this file only under the terms of the GPL and not to
                     27:  * allow others to use your version of this file under the MPL,
                     28:  * indicate your decision by deleting the provisions above and
                     29:  * replace them with the notice and other provisions required by
                     30:  * the GPL.  If you do not delete the provisions above, a recipient
                     31:  * may use your version of this file under either the MPL or the
                     32:  * GPL.
                     33:  */
                     34: 
                     35: #ifndef prtpool_h___
                     36: #define prtpool_h___
                     37: 
                     38: #include "prtypes.h"
                     39: #include "prthread.h"
                     40: #include "prio.h"
                     41: #include "prerror.h"
                     42: 
                     43: /*
                     44:  * NOTE:
                     45:  *     THIS API IS A PRELIMINARY VERSION IN NSPR 4.0 AND IS SUBJECT TO
                     46:  *     CHANGE
                     47:  */
                     48: 
                     49: PR_BEGIN_EXTERN_C
                     50: 
                     51: typedef struct PRJobIoDesc {
                     52:     PRFileDesc *socket;
                     53:     PRErrorCode error;
                     54:     PRIntervalTime timeout;
                     55: } PRJobIoDesc;
                     56: 
                     57: typedef struct PRThreadPool PRThreadPool;
                     58: typedef struct PRJob PRJob;
                     59: typedef void (PR_CALLBACK *PRJobFn) (void *arg);
                     60: 
                     61: /* Create thread pool */
                     62: NSPR_API(PRThreadPool *)
                     63: PR_CreateThreadPool(PRInt32 initial_threads, PRInt32 max_threads,
                     64:                           PRUint32 stacksize);
                     65: 
                     66: /* queue a job */
                     67: NSPR_API(PRJob *)
                     68: PR_QueueJob(PRThreadPool *tpool, PRJobFn fn, void *arg, PRBool joinable);
                     69: 
                     70: /* queue a job, when a socket is readable */
                     71: NSPR_API(PRJob *)
                     72: PR_QueueJob_Read(PRThreadPool *tpool, PRJobIoDesc *iod,
                     73:                            PRJobFn fn, void * arg, PRBool joinable);
                     74: 
                     75: /* queue a job, when a socket is writeable */
                     76: NSPR_API(PRJob *)
                     77: PR_QueueJob_Write(PRThreadPool *tpool, PRJobIoDesc *iod,
                     78:                                PRJobFn fn, void * arg, PRBool joinable);
                     79: 
                     80: /* queue a job, when a socket has a pending connection */
                     81: NSPR_API(PRJob *)
                     82: PR_QueueJob_Accept(PRThreadPool *tpool, PRJobIoDesc *iod,
                     83:                                    PRJobFn fn, void * arg, PRBool joinable);
                     84: 
                     85: /* queue a job, when the socket connection to addr succeeds or fails */
                     86: NSPR_API(PRJob *)
                     87: PR_QueueJob_Connect(PRThreadPool *tpool, PRJobIoDesc *iod,
                     88:            const PRNetAddr *addr, PRJobFn fn, void * arg, PRBool joinable);
                     89: 
                     90: /* queue a job, when a timer exipres */
                     91: NSPR_API(PRJob *)
                     92: PR_QueueJob_Timer(PRThreadPool *tpool, PRIntervalTime timeout,
                     93:                                PRJobFn fn, void * arg, PRBool joinable);
                     94: /* cancel a job */
                     95: NSPR_API(PRStatus)
                     96: PR_CancelJob(PRJob *job);
                     97: 
                     98: /* join a job */
                     99: NSPR_API(PRStatus)
                    100: PR_JoinJob(PRJob *job);
                    101: 
                    102: /* shutdown pool */
                    103: NSPR_API(PRStatus)
                    104: PR_ShutdownThreadPool(PRThreadPool *tpool);
                    105: 
                    106: /* join pool, wait for exit of all threads */
                    107: NSPR_API(PRStatus)
                    108: PR_JoinThreadPool(PRThreadPool *tpool);
                    109: 
                    110: PR_END_EXTERN_C
                    111: 
                    112: #endif /* prtpool_h___ */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.