1cc290419Sopenharmony_ci/*
2cc290419Sopenharmony_ci * Copyright (C) 2023 Huawei Device Co., Ltd.
3cc290419Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4cc290419Sopenharmony_ci * you may not use this file except in compliance with the License.
5cc290419Sopenharmony_ci * You may obtain a copy of the License at
6cc290419Sopenharmony_ci *
7cc290419Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8cc290419Sopenharmony_ci *
9cc290419Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10cc290419Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11cc290419Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12cc290419Sopenharmony_ci * See the License for the specific language governing permissions and
13cc290419Sopenharmony_ci * limitations under the License.
14cc290419Sopenharmony_ci */
15cc290419Sopenharmony_ci//! taskbase
16cc290419Sopenharmony_ci#![allow(missing_docs)]
17cc290419Sopenharmony_ci
18cc290419Sopenharmony_ciuse crate::config::HdcCommand;
19cc290419Sopenharmony_ci
20cc290419Sopenharmony_cipub trait TaskBase: Send + Sync + 'static {
21cc290419Sopenharmony_ci    fn command_dispatch(
22cc290419Sopenharmony_ci        &mut self,
23cc290419Sopenharmony_ci        _command: HdcCommand,
24cc290419Sopenharmony_ci        _payload: &[u8],
25cc290419Sopenharmony_ci        _payload_size: u16,
26cc290419Sopenharmony_ci    ) -> bool;
27cc290419Sopenharmony_ci    fn stop_task(&mut self);
28cc290419Sopenharmony_ci    fn ready_for_release(&mut self) -> bool;
29cc290419Sopenharmony_ci    fn channel_id(&self) -> u32 {
30cc290419Sopenharmony_ci        0
31cc290419Sopenharmony_ci    }
32cc290419Sopenharmony_ci    fn task_finish(&self);
33cc290419Sopenharmony_ci}
34