activemq-cpp-3.9.5
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
23
24#include <decaf/lang/Runnable.h>
25#include <decaf/util/Timer.h>
26#include <decaf/util/StlMap.h>
28
29#include <string>
30
31namespace activemq {
32namespace threads {
33
40 class AMQCPP_API Scheduler : public activemq::util::ServiceSupport {
41 private:
42
44 std::string name;
45 decaf::util::Timer* timer;
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
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_ */
#define AMQCPP_API
Definition Config.h:30
Scheduler(const std::string &name)
virtual void doStop(activemq::util::ServiceStopper *stopper)
Performs the actual stop operation on the service, ensuring that all resources held are released,...
void executeAfterDelay(decaf::lang::Runnable *task, long long delay, bool ownsTask=true)
void schedualPeriodically(decaf::lang::Runnable *task, long long period, bool ownsTask=true)
virtual void doStart()
Performs the actual start operation on the service, acquiring all the resources needed to run the ser...
void cancel(decaf::lang::Runnable *task)
void executePeriodically(decaf::lang::Runnable *task, long long period, bool ownsTask=true)
Definition ServiceStopper.h:30
Provides a base class for Service implementations.
Definition ServiceSupport.h:38
Interface for a runnable object - defines a task that can be run by a thread.
Definition Runnable.h:29
Map template that wraps around a std::map to provide a more user-friendly interface and to provide co...
Definition StlMap.h:48
A facility for threads to schedule tasks for future execution in a background thread.
Definition Timer.h:56
Mutex object that offers recursive support on all platforms as well as providing the ability to use t...
Definition Mutex.h:39
Definition CompositeTask.h:25
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Definition CachedConsumer.h:24