Apollo
10.0
自动驾驶开放平台
scheduler_classic.h
浏览该文件的文档.
1
/******************************************************************************
2
* Copyright 2018 The Apollo Authors. All Rights Reserved.
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*****************************************************************************/
16
17
#ifndef CYBER_SCHEDULER_POLICY_SCHEDULER_CLASSIC_H_
18
#define CYBER_SCHEDULER_POLICY_SCHEDULER_CLASSIC_H_
19
20
#include <memory>
21
#include <string>
22
#include <unordered_map>
23
#include <vector>
24
25
#include "
cyber/croutine/croutine.h
"
26
#include "cyber/proto/classic_conf.pb.h"
27
#include "
cyber/scheduler/scheduler.h
"
28
29
namespace
apollo
{
30
namespace
cyber {
31
namespace
scheduler {
32
33
using
apollo::cyber::croutine::CRoutine
;
34
using
apollo::cyber::proto::ClassicConf
;
35
using
apollo::cyber::proto::ClassicTask
;
36
37
class
SchedulerClassic
:
public
Scheduler
{
38
public
:
39
bool
RemoveCRoutine
(uint64_t crid)
override
;
40
bool
RemoveTask
(
const
std::string& name)
override
;
41
bool
DispatchTask
(
const
std::shared_ptr<CRoutine>&)
override
;
42
43
private
:
44
friend
Scheduler
*
Instance
();
45
SchedulerClassic
();
46
47
void
CreateProcessor();
48
bool
NotifyProcessor(uint64_t crid)
override
;
49
50
std::unordered_map<std::string, ClassicTask> cr_confs_;
51
52
ClassicConf
classic_conf_;
53
};
54
55
}
// namespace scheduler
56
}
// namespace cyber
57
}
// namespace apollo
58
59
#endif
// CYBER_SCHEDULER_POLICY_SCHEDULER_CLASSIC_H_
apollo::cyber::croutine::CRoutine
Definition
croutine.h:40
apollo::cyber::scheduler::SchedulerClassic
Definition
scheduler_classic.h:37
apollo::cyber::scheduler::SchedulerClassic::RemoveTask
bool RemoveTask(const std::string &name) override
Definition
scheduler_classic.cc:184
apollo::cyber::scheduler::SchedulerClassic::RemoveCRoutine
bool RemoveCRoutine(uint64_t crid) override
Definition
scheduler_classic.cc:193
apollo::cyber::scheduler::SchedulerClassic::Instance
friend Scheduler * Instance()
Definition
scheduler_factory.cc:49
apollo::cyber::scheduler::SchedulerClassic::DispatchTask
bool DispatchTask(const std::shared_ptr< CRoutine > &) override
Definition
scheduler_classic.cc:112
apollo::cyber::scheduler::Scheduler
Definition
scheduler.h:58
croutine.h
apollo
class register implement
Definition
arena_queue.h:37
scheduler.h
apollo::cyber::proto::ClassicConf
Definition
classic_conf.proto:21
apollo::cyber::proto::ClassicTask
Definition
classic_conf.proto:5
cyber
scheduler
policy
scheduler_classic.h