// Copyright 2013 The Chromium 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 CONTENT_CHILD_SCOPED_CHILD_PROCESS_REFERENCE_H_
#define CONTENT_CHILD_SCOPED_CHILD_PROCESS_REFERENCE_H_

#include "base/basictypes.h"

namespace base {
class TimeDelta;
}

namespace content {

// Scoper class that automatically adds a reference to the current child
// process in constructor and releases the reference on scope out.
// Consumers of this class can call ReleaseWithDelay() to explicitly release
// the reference with a certain delay.
class ScopedChildProcessReference {
 public:
  ScopedChildProcessReference();
  ~ScopedChildProcessReference();

  // Releases the process reference after |delay|. Once this is called
  // scoping out has no effect.
  // It is not valid to call this more than once.
  void ReleaseWithDelay(const base::TimeDelta& delay);

 private:
  bool has_reference_;
  DISALLOW_COPY_AND_ASSIGN(ScopedChildProcessReference);
};

}  // namespace content

#endif  // CONTENT_CHILD_SCOPED_CHILD_PROCESS_REFERENCE_H_
