blob: 095910b02841a6b2da68911689aa68595b74c61d [file] [log] [blame]
// 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_