Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(395)

Unified Diff: ipc/ipc_channel.h

Issue 1286253002: IPC: Add attachment brokering support to the message header. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Compile error. Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ipc/ipc.gypi ('k') | ipc/ipc_channel.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ipc/ipc_channel.h
diff --git a/ipc/ipc_channel.h b/ipc/ipc_channel.h
index c74d084baac5a23099037e49594acbd594862c1b..9021ab496729fa54c6320562f783990ed7b6e6ee 100644
--- a/ipc/ipc_channel.h
+++ b/ipc/ipc_channel.h
@@ -52,7 +52,7 @@ class IPC_EXPORT Channel : public Endpoint {
MODE_CLIENT_FLAG = 0x2,
MODE_NAMED_FLAG = 0x4,
#if defined(OS_POSIX)
- MODE_OPEN_ACCESS_FLAG = 0x8, // Don't restrict access based on client UID.
+ MODE_OPEN_ACCESS_FLAG = 0x8, // Don't restrict access based on client UID.
#endif
};
@@ -66,8 +66,8 @@ class IPC_EXPORT Channel : public Endpoint {
MODE_NAMED_SERVER = MODE_SERVER_FLAG | MODE_NAMED_FLAG,
MODE_NAMED_CLIENT = MODE_CLIENT_FLAG | MODE_NAMED_FLAG,
#if defined(OS_POSIX)
- MODE_OPEN_NAMED_SERVER = MODE_OPEN_ACCESS_FLAG | MODE_SERVER_FLAG |
- MODE_NAMED_FLAG
+ MODE_OPEN_NAMED_SERVER =
+ MODE_OPEN_ACCESS_FLAG | MODE_SERVER_FLAG | MODE_NAMED_FLAG
#endif
};
@@ -195,9 +195,9 @@ class IPC_EXPORT Channel : public Endpoint {
// threads. This is constant for the lifetime of the |Channel|.
virtual bool IsSendThreadSafe() const;
- // NaCl in Non-SFI mode runs on Linux directly, and the following functions
- // compiled on Linux are also needed. Please see also comments in
- // components/nacl_nonsfi.gyp for more details.
+// NaCl in Non-SFI mode runs on Linux directly, and the following functions
+// compiled on Linux are also needed. Please see also comments in
+// components/nacl_nonsfi.gyp for more details.
#if defined(OS_POSIX) && !defined(OS_NACL_SFI)
// On POSIX an IPC::Channel wraps a socketpair(), this method returns the
// FD # for the client end of the socket.
@@ -240,6 +240,26 @@ class IPC_EXPORT Channel : public Endpoint {
// process such that it acts similar to if it was exec'd, for tests.
static void NotifyProcessForkedForTesting();
#endif
+
+ protected:
+ // An OutputElement is a wrapper around a Message or raw buffer while it is
+ // waiting to be passed to the system's underlying IPC mechanism.
+ class OutputElement {
+ public:
+ // Takes ownership of message.
+ OutputElement(Message* message);
+ // Takes ownership of the buffer.
+ OutputElement(void* buffer, size_t length);
+ ~OutputElement();
+ size_t size() const;
+ const void* data() const;
+ const Message* get_message() const { return message_.get(); }
+
+ private:
+ scoped_ptr<const Message> message_;
+ void* buffer_;
+ size_t length_;
+ };
};
#if defined(OS_POSIX)
« no previous file with comments | « ipc/ipc.gypi ('k') | ipc/ipc_channel.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698