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 13 namespace sandbox { 14 15 // Target process code to close the handle list copied over from the broker. 16 class 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