24#include <unordered_map>
26#include <osl/conditn.hxx>
27#include <osl/mutex.hxx>
28#include <rtl/byteseq.hxx>
40 bool operator () ( const ::rtl::ByteSequence &a , const ::rtl::ByteSequence &b )
const
50 if(
a.getLength() >= 4 )
52 return *
reinterpret_cast<sal_Int32
const *
>(
a.getConstArray());
58 typedef std::unordered_map
61 std::pair < JobQueue * , JobQueue * >,
87 void dispose(
void const * nDisposeId );
88 void destroy(
void const * nDisposeId );
110 std::deque< rtl::Reference< ORequestThread > >
m_deque;
123 void dispose(
void const * nDisposeId );
124 void destroy(
void const * nDisposeId );
126 bool addJob( const ::rtl::ByteSequence &aThreadId,
128 void *pThreadSpecificData,
130 void const * disposeId );
132 void prepare( const ::rtl::ByteSequence &aThreadId );
133 void *
enter( const ::rtl::ByteSequence &aThreadId,
void const * nDisposeId );
138 bool revokeQueue( const ::rtl::ByteSequence & aThreadId ,
bool bAsynchron );
static DisposedCallerAdminHolder const & getInstance()
void dispose(void const *nDisposeId)
bool isDisposed(void const *nDisposeId)
std::vector< void const * > m_vector
void destroy(void const *nDisposeId)
void remove_locked(rtl::Reference< ORequestThread > const &)
void remove(rtl::Reference< ORequestThread > const &)
std::deque< rtl::Reference< ORequestThread > > m_deque
bool add_locked(rtl::Reference< ORequestThread > const &)
void * enter(const ::rtl::ByteSequence &aThreadId, void const *nDisposeId)
WaitingThreadDeque m_dequeThreads
void prepare(const ::rtl::ByteSequence &aThreadId)
void destroy(void const *nDisposeId)
ThreadAdmin m_aThreadAdmin
DisposedCallerAdminHolder m_DisposedCallerAdmin
ThreadIdHashMap m_mapQueue
void dispose(void const *nDisposeId)
std::mutex m_mutexWaitingThreadList
ThreadAdmin & getThreadAdmin()
bool addJob(const ::rtl::ByteSequence &aThreadId, bool bAsynchron, void *pThreadSpecificData, RequestFun *doRequest, void const *disposeId)
bool revokeQueue(const ::rtl::ByteSequence &aThreadId, bool bAsynchron)
void waitInPool(rtl::Reference< ORequestThread > const &pThread)
virtual ~ThreadPool() override
bool createThread(JobQueue *pQueue, const ::rtl::ByteSequence &aThreadId, bool bAsynchron)
std::shared_ptr< DisposedCallerAdmin > DisposedCallerAdminHolder
std::deque< struct ::cppu_threadpool::WaitingThread * > WaitingThreadDeque
rtl::Reference< ThreadPool > ThreadPoolHolder
std::unordered_map< ::rtl::ByteSequence, std::pair< JobQueue *, JobQueue * >, HashThreadId, EqualThreadId > ThreadIdHashMap
void() RequestFun(void *)
bool operator()(const ::rtl::ByteSequence &a, const ::rtl::ByteSequence &b) const
sal_Int32 operator()(const ::rtl::ByteSequence &a) const
WaitingThread(rtl::Reference< ORequestThread > theThread)
rtl::Reference< ORequestThread > thread