My Project
UDK 3.2.7 C/C++ API Reference
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
salhelper
thread.hxx
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/*
3
* Version: MPL 1.1 / GPLv3+ / LGPLv3+
4
*
5
* The contents of this file are subject to the Mozilla Public License Version
6
* 1.1 (the "License"); you may not use this file except in compliance with
7
* the License or as specified alternatively below. You may obtain a copy of
8
* the License at http://www.mozilla.org/MPL/
9
*
10
* Software distributed under the License is distributed on an "AS IS" basis,
11
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12
* for the specific language governing rights and limitations under the
13
* License.
14
*
15
* Major Contributor(s):
16
* [ Copyright (C) 2012 Red Hat, Inc., Stephan Bergmann <sbergman@redhat.com>
17
* (initial developer) ]
18
*
19
* All Rights Reserved.
20
*
21
* For minor contributions see the git repository.
22
*
23
* Alternatively, the contents of this file may be used under the terms of
24
* either the GNU General Public License Version 3 or later (the "GPLv3+"), or
25
* the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
26
* in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
27
* instead of those above.
28
*/
29
30
#ifndef INCLUDED_SALHELPER_THREAD_HXX
31
#define INCLUDED_SALHELPER_THREAD_HXX
32
33
#include "
sal/config.h
"
34
35
#include <cstddef>
36
37
#include "
osl/thread.hxx
"
38
#include "
sal/types.h
"
39
#include "
salhelper/salhelperdllapi.h
"
40
#include "
salhelper/simplereferenceobject.hxx
"
41
42
namespace
salhelper {
43
49
class
SALHELPER_DLLPUBLIC
Thread
:
50
public
salhelper::SimpleReferenceObject
,
private
osl::Thread
51
{
52
public
:
57
Thread
(
char
const
* name);
58
69
void
launch();
70
71
using
osl::Thread::getIdentifier
;
72
using
osl::Thread::join
;
73
using
osl::Thread::schedule
;
74
using
osl::Thread::terminate
;
75
76
// While the below static member functions should arguably always be called
77
// with qualified (osl::Thread) names, compilers would still complain that
78
// they are inaccessible from within derivations of salhelper::Thread (an
79
// alternative would be to force such derivations to use global names,
80
// prefixed with ::osl::Thread):
81
using
osl::Thread::getCurrentIdentifier
;
82
using
osl::Thread::wait
;
83
using
osl::Thread::yield
;
84
85
static
inline
void
*
operator
new
(std::size_t size)
86
{
return
SimpleReferenceObject::operator
new
(size); }
87
88
static
inline
void
operator
delete
(
void
* pointer)
89
{ SimpleReferenceObject::operator
delete
(pointer); }
90
91
protected
:
92
virtual
~
Thread
();
93
99
virtual
void
execute() = 0;
100
101
private
:
102
virtual
void
SAL_CALL run();
103
104
virtual
void
SAL_CALL onTerminated();
105
106
char
const
* name_;
107
};
108
109
}
110
111
#endif
112
113
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Generated on Mon Oct 8 2012 00:36:42 for My Project by
1.8.1.2