summaryrefslogtreecommitdiffstats
path: root/ppapi/proxy/serialized_structs.h
diff options
context:
space:
mode:
authordmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-16 23:23:53 +0000
committerdmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-16 23:23:53 +0000
commiteb5960da1e59be98182120c3c489d92094f3c5c9 (patch)
tree0baeb22b52e5c9d54d15f4fdc5a36dc7a976733a /ppapi/proxy/serialized_structs.h
parent97af43ea66f1a7a734cccbc0e4bf65b88c37c4a7 (diff)
downloadchromium_src-eb5960da1e59be98182120c3c489d92094f3c5c9.zip
chromium_src-eb5960da1e59be98182120c3c489d92094f3c5c9.tar.gz
chromium_src-eb5960da1e59be98182120c3c489d92094f3c5c9.tar.bz2
PPAPI/NaCl: Move handle extraction code to ppapi/proxy
BUG=165201 TEST= TBR=jln@chromium.org Review URL: https://chromiumcodereview.appspot.com/11894003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177257 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/proxy/serialized_structs.h')
-rw-r--r--ppapi/proxy/serialized_structs.h114
1 files changed, 0 insertions, 114 deletions
diff --git a/ppapi/proxy/serialized_structs.h b/ppapi/proxy/serialized_structs.h
index 5c5dcab..dcb99817 100644
--- a/ppapi/proxy/serialized_structs.h
+++ b/ppapi/proxy/serialized_structs.h
@@ -11,7 +11,6 @@
#include "base/logging.h"
#include "base/shared_memory.h"
#include "build/build_config.h"
-#include "ipc/ipc_platform_file.h"
#include "ppapi/c/pp_bool.h"
#include "ppapi/c/pp_instance.h"
#include "ppapi/c/pp_point.h"
@@ -87,119 +86,6 @@ struct PPBURLLoader_UpdateProgress_Params {
int64_t total_bytes_to_be_received;
};
-// We put all our handles in a unified structure to make it easy to translate
-// them in NaClIPCAdapter for use in NaCl.
-class PPAPI_PROXY_EXPORT SerializedHandle {
- public:
- enum Type { INVALID, SHARED_MEMORY, SOCKET, CHANNEL_HANDLE, FILE };
- struct Header {
- Header() : type(INVALID), size(0) {}
- Header(Type type_arg, uint32_t size_arg)
- : type(type_arg), size(size_arg) {
- }
- Type type;
- uint32_t size;
- };
-
- SerializedHandle();
- // Create an invalid handle of the given type.
- explicit SerializedHandle(Type type);
-
- // Create a shared memory handle.
- SerializedHandle(const base::SharedMemoryHandle& handle, uint32_t size);
-
- // Create a socket, channel or file handle.
- SerializedHandle(const Type type,
- const IPC::PlatformFileForTransit& descriptor);
-
- Type type() const { return type_; }
- bool is_shmem() const { return type_ == SHARED_MEMORY; }
- bool is_socket() const { return type_ == SOCKET; }
- bool is_channel_handle() const { return type_ == CHANNEL_HANDLE; }
- bool is_file() const { return type_ == FILE; }
- const base::SharedMemoryHandle& shmem() const {
- DCHECK(is_shmem());
- return shm_handle_;
- }
- uint32_t size() const {
- DCHECK(is_shmem());
- return size_;
- }
- const IPC::PlatformFileForTransit& descriptor() const {
- DCHECK(is_socket() || is_channel_handle() || is_file());
- return descriptor_;
- }
- void set_shmem(const base::SharedMemoryHandle& handle, uint32_t size) {
- type_ = SHARED_MEMORY;
- shm_handle_ = handle;
- size_ = size;
-
- descriptor_ = IPC::InvalidPlatformFileForTransit();
- }
- void set_socket(const IPC::PlatformFileForTransit& socket) {
- type_ = SOCKET;
- descriptor_ = socket;
-
- shm_handle_ = base::SharedMemory::NULLHandle();
- size_ = 0;
- }
- void set_channel_handle(const IPC::PlatformFileForTransit& descriptor) {
- type_ = CHANNEL_HANDLE;
-
- descriptor_ = descriptor;
- shm_handle_ = base::SharedMemory::NULLHandle();
- size_ = 0;
- }
- void set_file_handle(const IPC::PlatformFileForTransit& descriptor) {
- type_ = FILE;
-
- descriptor_ = descriptor;
- shm_handle_ = base::SharedMemory::NULLHandle();
- size_ = 0;
- }
- void set_null_shmem() {
- set_shmem(base::SharedMemory::NULLHandle(), 0);
- }
- void set_null_socket() {
- set_socket(IPC::InvalidPlatformFileForTransit());
- }
- void set_null_channel_handle() {
- set_channel_handle(IPC::InvalidPlatformFileForTransit());
- }
- void set_null_file_handle() {
- set_file_handle(IPC::InvalidPlatformFileForTransit());
- }
- bool IsHandleValid() const;
-
- Header header() const {
- return Header(type_, size_);
- }
-
- // Closes the handle and sets it to invalid.
- void Close();
-
- // Write/Read a Header, which contains all the data except the handle. This
- // allows us to write the handle in a platform-specific way, as is necessary
- // in NaClIPCAdapter to share handles with NaCl from Windows.
- static bool WriteHeader(const Header& hdr, Pickle* pickle);
- static bool ReadHeader(PickleIterator* iter, Header* hdr);
-
- private:
- // The kind of handle we're holding.
- Type type_;
-
- // We hold more members than we really need; we can't easily use a union,
- // because we hold non-POD types. But these types are pretty light-weight. If
- // we add more complex things later, we should come up with a more memory-
- // efficient strategy.
- // These are valid if type == SHARED_MEMORY.
- base::SharedMemoryHandle shm_handle_;
- uint32_t size_;
-
- // This is valid if type == SOCKET || type == CHANNEL_HANDLE.
- IPC::PlatformFileForTransit descriptor_;
-};
-
struct PPPDecryptor_Buffer {
ppapi::HostResource resource;
uint32_t size;