chromium/v8/test/inspector/tasks.h

// Copyright 2020 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef V8_TEST_INSPECTOR_TASKS_H_
#define V8_TEST_INSPECTOR_TASKS_H_

#include <vector>

#include "include/v8-context.h"
#include "include/v8-function.h"
#include "include/v8-inspector.h"
#include "include/v8-microtask-queue.h"
#include "include/v8-primitive.h"
#include "src/base/platform/semaphore.h"
#include "test/inspector/isolate-data.h"
#include "test/inspector/task-runner.h"
#include "test/inspector/utils.h"

namespace v8 {
namespace internal {

void RunSyncTask(TaskRunner* task_runner,
                 std::function<void(InspectorIsolateData*)> callback);
void RunSimpleAsyncTask(TaskRunner* task_runner,
                        std::function<void(InspectorIsolateData* data)> task,
                        v8::Local<v8::Function> callback);

class SendMessageToBackendTask : public TaskRunner::Task {};

inline void RunAsyncTask(TaskRunner* task_runner,
                         const v8_inspector::StringView& task_name,
                         std::unique_ptr<TaskRunner::Task> task) {}

class ExecuteStringTask : public TaskRunner::Task {};

class SetTimeoutTask : public TaskRunner::Task {};

class SetTimeoutExtension : public InspectorIsolateData::SetupGlobalTask {};

}  // namespace internal
}  // namespace v8

#endif  //  V8_TEST_INSPECTOR_TASKS_H_