diff options
author | David Tardon <dtardon@redhat.com> | 2013-04-19 18:54:16 +0200 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2013-04-24 05:17:10 +0000 |
commit | 6c7659b584ea7ed3652ca4eb9a2297f36310c365 (patch) | |
tree | adf631e2d3db309b0696babd9d026bce0996c215 /cppu/inc/uno/threadpool.h | |
parent | 24500d6798007d84521eb24a81c121ebe69d3bfd (diff) |
move URE headers to include/
Change-Id: Ib48a12e902f2311c295b2007f08f44dee28f431d
Reviewed-on: https://gerrit.libreoffice.org/3499
Reviewed-by: David Tardon <dtardon@redhat.com>
Tested-by: David Tardon <dtardon@redhat.com>
Diffstat (limited to 'cppu/inc/uno/threadpool.h')
-rw-r--r-- | cppu/inc/uno/threadpool.h | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/cppu/inc/uno/threadpool.h b/cppu/inc/uno/threadpool.h deleted file mode 100644 index 6e880e55b144..000000000000 --- a/cppu/inc/uno/threadpool.h +++ /dev/null @@ -1,185 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you 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 . - */ - -#include <cppu/cppudllapi.h> -#include <rtl/byteseq.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/*** - * Thread identifier administration. - ***/ -/** - Establishs an association between the current thread and the given thread identifier. - There can be only one association at a time. The association must be broken by - uno_releaseIdFromCurrentThread(). - This method is in general called by a bridge, that wants to bind a remote threadId - to a new thread. - - @param pThreadId a byte sequence, that contains the identifier of the current thread. - @return true, when the identifier was registered. - false, when the thread has already an identifier. The identifier was not - altered. ( This is in general a bug ). - - @see uno_releaseIdFromCurrentThread() - */ -CPPU_DLLPUBLIC sal_Bool SAL_CALL uno_bindIdToCurrentThread( sal_Sequence *pThreadId ) - SAL_THROW_EXTERN_C(); - - -/** - Get the identifier of the current thread. - If no id has been bound for the thread before, a new one is generated and bound - to the thread. - For each call to uno_getIdOfCurrentThread(), a call to uno_releaseIdFromCurrentThread() - must be done. - - @param ppThreadId [out] Contains the (acquired) ThreadId. - @see uno_releaseIdFromCurrentThread() - */ -CPPU_DLLPUBLIC void SAL_CALL uno_getIdOfCurrentThread( sal_Sequence **ppThreadId ) - SAL_THROW_EXTERN_C(); - - -/** - If the internal refcount drops to zero, the association between threadId and - thread is broken. - */ -CPPU_DLLPUBLIC void SAL_CALL uno_releaseIdFromCurrentThread() - SAL_THROW_EXTERN_C(); - - -struct _uno_ThreadPool; -typedef struct _uno_ThreadPool * uno_ThreadPool; - -/** - Creates a threadpool handle. Typically each remote bridge instances creates one - handle. - */ -CPPU_DLLPUBLIC uno_ThreadPool SAL_CALL -uno_threadpool_create() SAL_THROW_EXTERN_C(); - - -/** - Makes the current thread known to the threadpool. This function must be - called, BEFORE uno_threadpool_enter() is called and BEFORE a job for this - thread is put into the threadpool (avoid a race between this thread and - an incoming request/reply). - For every call to uno_threadpool_attach, a corrosponding call to - uno_threadpool_detach must be done. - - @param hPool The bridge threadpool handle previously created by uno_threadpool_create. - -*/ -CPPU_DLLPUBLIC void SAL_CALL -uno_threadpool_attach( uno_ThreadPool hPool ) SAL_THROW_EXTERN_C(); - -/** - This method is called to wait for a reply of a previously sent request. This is a - blocking method. uno_threadpool_attach() must have been called before. - - @param hPool the handle that was previously created by uno_threadpool_create(). - @param ppJob [out] the pointer, that was given by uno_threadpool_putJob - 0, when uno_threadpool_dispose() was the reason to fall off from threadpool. - @see uno_threadpool_dispose() - **/ -CPPU_DLLPUBLIC void SAL_CALL -uno_threadpool_enter( uno_ThreadPool hPool , void **ppJob ) - SAL_THROW_EXTERN_C(); - -/** - Detaches the current thread from the threadpool. Must be called for - every call to uno_threadpool_attach. - @param hPool the handle that was previously created by uno_threadpool_create(). -*/ -CPPU_DLLPUBLIC void SAL_CALL -uno_threadpool_detach( uno_ThreadPool hPool ) SAL_THROW_EXTERN_C(); - -/** - Puts a job into the pool. A job may eiter be a request or a reply - (replies have a 0 in the doRequest parameter). This function is non-blocking. - - A request may either be synchronous or asynchronous. - If the request is synchronous, it is first looked up, - if there exists a handle with the given - identifier. If this is the case, the thread is woken up and the doRequest - function is called with the given pJob. If no handle exists, - a new thread is created and the given threadId is bound to the new thread. - - If the request is asynchronous, it is put into the queue of asynchronous - requests for the current threadid. The requests are always executed in a new - thread, even if the thread with the given id is waiting in the pool. No id is bound - to the newly created thread. The responsibilty is left to the bridge ( if it - wishes to bind a name). - - If pJob is a reply, there MUST be a thread with the given threadId waiting - for this reply. - - @param hPool the handle that was previously created by uno_threadpool_create(). - @param pThreadId The Id of the thread, that initialized this request. (In general a - remote threadid). - @param pJob The argument, that doRequest will get or that will be returned by - uno_threadpool_enter(). - @param doRequest The function, that shall be called to execute the request. - 0 if pJob is a reply. - @param bIsOneway True, if the request is asynchrons. False, if it is synchronous. - Set to sal_False, if pJob is a reply. - */ -CPPU_DLLPUBLIC void SAL_CALL -uno_threadpool_putJob( - uno_ThreadPool hPool, - sal_Sequence *pThreadId, - void *pJob, - void ( SAL_CALL * doRequest ) ( void *pThreadSpecificData ), - sal_Bool bIsOneway ) SAL_THROW_EXTERN_C(); - -/** - All threads, that are waiting on the hPool handle, are forced out of the pool. - The threads waiting with uno_threadpool_enter() will return with *ppJob == 0 - - Later calls to uno_threadpool_enter() using the hPool handle will also - return immeadiatly with *ppJob == 0. - - @param hPool The handle to be disposed. - - This function is called i.e. by a bridge, that is forced to dispose itself. - */ -CPPU_DLLPUBLIC void SAL_CALL -uno_threadpool_dispose( uno_ThreadPool hPool ) SAL_THROW_EXTERN_C(); - - -/** Releases the previously with uno_threadpool_create() created handle. - The handle thus becomes invalid. It is an error to use the handle after - uno_threadpool_destroy(). - - A call to uno_threadpool_destroy can synchronously join on spawned worker - threads, so this function must never be called from such a worker thread. - - @see uno_threadpool_create() - */ -CPPU_DLLPUBLIC void SAL_CALL -uno_threadpool_destroy( uno_ThreadPool hPool ) SAL_THROW_EXTERN_C(); - -#ifdef __cplusplus -} -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |