37 lines
1.1 KiB
C++
37 lines
1.1 KiB
C++
// Copyright 2015 The Weave 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 LIBWEAVE_INCLUDE_WEAVE_PROVIDER_TASK_RUNNER_H_
|
|
#define LIBWEAVE_INCLUDE_WEAVE_PROVIDER_TASK_RUNNER_H_
|
|
|
|
#include <string>
|
|
#include <utility>
|
|
#include <vector>
|
|
|
|
#include <base/callback.h>
|
|
#include <base/location.h>
|
|
#include <base/time/time.h>
|
|
|
|
namespace weave {
|
|
namespace provider {
|
|
|
|
// Interface with methods to post tasks into platform-specific message loop of
|
|
// the current thread.
|
|
class TaskRunner {
|
|
public:
|
|
// Posts tasks to be executed with the given delay.
|
|
// |from_here| argument is used for debugging and usually just provided by
|
|
// FROM_HERE macro. Implementation may ignore this argument.
|
|
virtual void PostDelayedTask(const tracked_objects::Location& from_here,
|
|
const base::Closure& task,
|
|
base::TimeDelta delay) = 0;
|
|
|
|
protected:
|
|
virtual ~TaskRunner() {}
|
|
};
|
|
|
|
} // namespace provider
|
|
} // namespace weave
|
|
|
|
#endif // LIBWEAVE_INCLUDE_WEAVE_PROVIDER_TASK_RUNNER_H_
|