Chromium Code Reviews| 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; |
| }; |
| } |