1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef SANDBOX_SRC_HANDLE_CLOSER_AGENT_H_
6#define SANDBOX_SRC_HANDLE_CLOSER_AGENT_H_
7
8#include "base/basictypes.h"
9#include "base/strings/string16.h"
10#include "sandbox/win/src/handle_closer.h"
11#include "sandbox/win/src/sandbox_types.h"
12
13namespace sandbox {
14
15// Target process code to close the handle list copied over from the broker.
16class HandleCloserAgent {
17 public:
18  HandleCloserAgent() {}
19
20  // Reads the serialized list from the broker and creates the lookup map.
21  void InitializeHandlesToClose();
22
23  // Closes any handles matching those in the lookup map.
24  bool CloseHandles();
25
26  // True if we have handles waiting to be closed
27  static bool NeedsHandlesClosed();
28
29 private:
30  HandleMap handles_to_close_;
31
32  DISALLOW_COPY_AND_ASSIGN(HandleCloserAgent);
33};
34
35}  // namespace sandbox
36
37#endif  // SANDBOX_SRC_HANDLE_CLOSER_AGENT_H_
38