Files
xiaoguo0742 88e8a3ab72 feat(devtools): remove base lib and adopt footstone (#2177)
* feat(devtools): remove base lib and adopt footstone

* feat(devtools): fix workermanager crash

* feat(devtools): fix conflit

* feat(devtools): add devtools macros

* fix(cmake): update cmake script to use gloabl packages module

* feat(devtools): remove devtools_base/logging

* feat(devtools): move tdf_string_util.cc to footstone

* feat(devtools): remove devtools_base

* feat(devtools): chore macros

* fix(devtools): remove unuse space

* fix(devtools): fix ios work manager

* fix(devtools): remove unuse %s

* fix(devtools): fix ios compile

Co-authored-by: Super Zheng <medns@126.com>
Co-authored-by: ivanfanwu <ivanfanwu@tencent.com>
Co-authored-by: Zoom Chan <zoom_chan@163.com>
2022-07-12 12:41:35 +08:00

55 lines
1.8 KiB
C++

/*
* Tencent is pleased to support the open source community by making
* Hippy available.
*
* Copyright (C) 2017-2019 THL A29 Limited, a Tencent company.
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <memory>
#include <string>
#include "footstone/task_runner.h"
#include "footstone/worker_manager.h"
#include "module/model/base_model.h"
namespace hippy::devtools {
class FramePollModel : public BaseModel, public std::enable_shared_from_this<FramePollModel> {
public:
using ResponseHandler = std::function<void()>;
void InitTask();
inline void SetResponseHandler(ResponseHandler handler) { response_handler_ = handler; }
void StartPoll();
void StopPoll();
explicit FramePollModel(std::shared_ptr<footstone::WorkerManager> worker_manager) : worker_manager_(worker_manager) {}
~FramePollModel();
private:
void RemoveFrameCallback();
void AddFrameCallback();
bool had_add_frame_callback_ = false;
uint64_t frame_callback_handler_ = 0;
ResponseHandler response_handler_;
bool frame_is_dirty_ = true;
std::shared_ptr<footstone::TaskRunner> refresh_task_runner_;
std::function<void()> refresh_task_;
std::recursive_mutex mutex_;
std::shared_ptr<footstone::WorkerManager> worker_manager_;
};
} // namespace hippy::devtools