blob: 5cf7aa02705694888ca95c8108b0cd6ed88ce917 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
// -*- C++ -*-
//=============================================================================
/**
* @file Thread_Hook.h
*
* $Id$
*
* @author Carlos O'Ryan <coryan@uci.edu>
*/
//=============================================================================
#ifndef ACE_THREAD_HOOK_H
#define ACE_THREAD_HOOK_H
#include /**/ "ace/pre.h"
#include /**/ "ace/config-all.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include /**/ "ace/ACE_export.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
* @class ACE_Thread_Hook
*
* @brief This class makes it possible to provide user-defined "start"
* hooks that are called before the thread entry point function
* is invoked.
*/
class ACE_Export ACE_Thread_Hook
{
public:
/// Default constructor
ACE_Thread_Hook (void);
/// Destructor.
virtual ~ACE_Thread_Hook (void);
/**
* This method can be overridden in a subclass to customize this
* pre-function call "hook" invocation that can perform
* initialization processing before the thread entry point @a func
* method is called back. The @a func and @a arg passed into the
* start hook are the same as those passed by the application that
* spawned the thread.
*/
virtual ACE_THR_FUNC_RETURN start (ACE_THR_FUNC func,
void *arg);
/// Sets the system wide thread hook, returns the previous thread
/// hook or 0 if none is set.
static ACE_Thread_Hook *thread_hook (ACE_Thread_Hook *hook);
/// Returns the current system thread hook.
static ACE_Thread_Hook *thread_hook (void);
};
ACE_END_VERSIONED_NAMESPACE_DECL
#include /**/ "ace/post.h"
#endif /* ACE_THREAD_HOOK_H */
|