Index: content/public/browser/file_descriptor_info.h |
diff --git a/content/public/browser/file_descriptor_info.h b/content/public/browser/file_descriptor_info.h |
index 2248eb690f1b942aac9a4901f86ed6e825d65403..7e5531a37937ac267b3fef3b57cea94e229e1482 100644 |
--- a/content/public/browser/file_descriptor_info.h |
+++ b/content/public/browser/file_descriptor_info.h |
@@ -5,23 +5,42 @@ |
#ifndef CONTENT_PUBLIC_BROWSER_FILE_DESCRIPTOR_INFO_H_ |
#define CONTENT_PUBLIC_BROWSER_FILE_DESCRIPTOR_INFO_H_ |
-#include "base/file_descriptor_posix.h" |
+#include "base/files/file.h" |
+#include "base/process/launch.h" |
namespace content { |
-// This struct is used when passing files that should be mapped in a process |
-// that is been created and allows to associate that file with a specific ID. |
-// It also provides a way to know if the actual file descriptor should be |
-// closed with the FileDescriptor.auto_close field. |
- |
-struct FileDescriptorInfo { |
- FileDescriptorInfo(int id, const base::FileDescriptor& file_descriptor) |
- : id(id), |
- fd(file_descriptor) { |
- } |
- |
- int id; |
- base::FileDescriptor fd; |
+// FileDescriptorInfo is a collection of file descriptors which is |
+// needed to launch a process. You should to tell FileDescriptorInfo |
jam
2014/09/24 20:45:47
nit: You should tell
Hajime Morrita
2014/09/24 23:08:56
Done.
|
+// which FD should be closed and which isn't so that it can take care |
mdempsky
2014/09/24 21:16:45
nit: "and which *shouldn't*"
Hajime Morrita
2014/09/24 23:08:56
Done.
|
+// of the lifetime of FDs. |
+// |
+// See base/process/launcher.h for more details about launching a |
+// process. |
+class FileDescriptorInfo { |
+ public: |
+ virtual ~FileDescriptorInfo() {} |
+ |
+ // Add and FD associated with an ID, without delegating the ownerhip |
jam
2014/09/24 20:45:47
nit: "Add an"
also leave a blank line between eac
Hajime Morrita
2014/09/24 23:08:56
Done.
|
+ // of ID. |
+ virtual void Share(int id, base::PlatformFile fd) = 0; |
+ // Add an FD associated with an ID, passing the FD ownership to |
+ // FileDescriptorInfo. |
+ virtual void Transfer(int id, base::ScopedFD fd) = 0; |
+ // Just delegating a lifetime of an FD. This is needed as some FDs |
+ // are transferred to another process without key mapping. |
+ virtual void TransferWithoutMapping(base::ScopedFD fd) = 0; |
+ // A vecotr-backed map from registered ID-FD pair. |
mdempsky
2014/09/24 21:16:44
nit: "A *vector*-backed map *of* registered ID-FD
Hajime Morrita
2014/09/24 23:08:56
Done.
|
+ virtual const base::FileHandleMappingVector& GetMapping() const = 0; |
+ // A GetMapping() variant what adjusts the ID value by |delta|. |
+ // Some environments need this trick. |
+ virtual base::FileHandleMappingVector GetMappingWithIDAdjustment( |
+ int delta) const = 0; |
+ |
+ // API for iterating registerd ID-FD pair. |
mdempsky
2014/09/24 21:16:45
nit: "registered" and "pairs"
Hajime Morrita
2014/09/24 23:08:56
Done.
|
+ virtual base::PlatformFile GetFDAt(size_t i) const = 0; |
+ virtual int GetIDAt(size_t i) const = 0; |
+ virtual size_t GetMappingSize() const = 0; |
}; |
} |