activemq-cpp-3.6.0
Main Page
Namespaces
Data Structures
Files
File List
Globals
Scheduler.h
Go to the documentation of this file.
1
/*
2
* Licensed to the Apache Software Foundation (ASF) under one or more
3
* contributor license agreements. See the NOTICE file distributed with
4
* this work for additional information regarding copyright ownership.
5
* The ASF licenses this file to You under the Apache License, Version 2.0
6
* (the "License"); you may not use this file except in compliance with
7
* the License. You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*/
17
18
#ifndef _ACTIVEMQ_THREADS_SCHEDULER_H_
19
#define _ACTIVEMQ_THREADS_SCHEDULER_H_
20
21
#include <
activemq/util/Config.h
>
22
#include <
activemq/util/ServiceSupport.h
>
23
24
#include <
decaf/lang/Runnable.h
>
25
#include <
decaf/util/Timer.h
>
26
#include <
decaf/util/StlMap.h
>
27
#include <
decaf/util/concurrent/Mutex.h
>
28
29
#include <string>
30
31
namespace
activemq {
32
namespace
threads {
33
40
class
AMQCPP_API
Scheduler
:
public
activemq::util::ServiceSupport
{
41
private
:
42
43
decaf::util::concurrent::Mutex
mutex;
44
std::string name;
45
decaf::util::Timer
* timer;
46
decaf::util::StlMap<decaf::lang::Runnable*, decaf::util::TimerTask*>
tasks;
47
48
private
:
49
50
Scheduler
(
const
Scheduler
&);
51
Scheduler
& operator= (
const
Scheduler
&);
52
53
public
:
54
55
Scheduler
(
const
std::string& name);
56
57
virtual
~
Scheduler
();
58
59
public
:
60
61
void
executePeriodically(
decaf::lang::Runnable
* task,
long
long
period,
bool
ownsTask =
true
);
62
63
void
schedualPeriodically(
decaf::lang::Runnable
* task,
long
long
period,
bool
ownsTask =
true
);
64
65
void
cancel(
decaf::lang::Runnable
* task);
66
67
void
executeAfterDelay(
decaf::lang::Runnable
* task,
long
long
delay,
bool
ownsTask =
true
);
68
69
void
shutdown();
70
71
protected
:
72
73
virtual
void
doStart();
74
75
virtual
void
doStop(
activemq::util::ServiceStopper
* stopper);
76
77
};
78
79
}}
80
81
#endif
/* _ACTIVEMQ_THREADS_SCHEDULER_H_ */
src
main
activemq
threads
Scheduler.h
Generated on Mon Mar 4 2013 10:25:45 for activemq-cpp-3.6.0 by
1.8.1.2