| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef IPC_IPC_CHANNEL_H_ | 5 #ifndef IPC_IPC_CHANNEL_H_ |
| 6 #define IPC_IPC_CHANNEL_H_ | 6 #define IPC_IPC_CHANNEL_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
| 10 #include "ipc/ipc_channel_handle.h" | 10 #include "ipc/ipc_channel_handle.h" |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 MODE_NAMED_CLIENT = MODE_CLIENT_FLAG | MODE_NAMED_FLAG, | 87 MODE_NAMED_CLIENT = MODE_CLIENT_FLAG | MODE_NAMED_FLAG, |
| 88 #if defined(OS_POSIX) | 88 #if defined(OS_POSIX) |
| 89 // An "open" named server accepts connections from ANY client. | 89 // An "open" named server accepts connections from ANY client. |
| 90 // The caller must then implement their own access-control based on the | 90 // The caller must then implement their own access-control based on the |
| 91 // client process' user Id. | 91 // client process' user Id. |
| 92 MODE_OPEN_NAMED_SERVER = MODE_OPEN_ACCESS_FLAG | MODE_SERVER_FLAG | | 92 MODE_OPEN_NAMED_SERVER = MODE_OPEN_ACCESS_FLAG | MODE_SERVER_FLAG | |
| 93 MODE_NAMED_FLAG | 93 MODE_NAMED_FLAG |
| 94 #endif | 94 #endif |
| 95 }; | 95 }; |
| 96 | 96 |
| 97 // The Hello message is internal to the Channel class. It is sent |
| 98 // by the peer when the channel is connected. The message contains |
| 99 // just the process id (pid). The message has a special routing_id |
| 100 // (MSG_ROUTING_NONE) and type (HELLO_MESSAGE_TYPE). |
| 101 enum { |
| 102 HELLO_MESSAGE_TYPE = kuint16max // Maximum value of message type (uint16), |
| 103 // to avoid conflicting with normal |
| 104 // message types, which are enumeration |
| 105 // constants starting from 0. |
| 106 }; |
| 107 |
| 97 // The maximum message size in bytes. Attempting to receive a message of this | 108 // The maximum message size in bytes. Attempting to receive a message of this |
| 98 // size or bigger results in a channel error. | 109 // size or bigger results in a channel error. |
| 99 static const size_t kMaximumMessageSize = 128 * 1024 * 1024; | 110 static const size_t kMaximumMessageSize = 128 * 1024 * 1024; |
| 100 | 111 |
| 101 // Ammount of data to read at once from the pipe. | 112 // Ammount of data to read at once from the pipe. |
| 102 static const size_t kReadBufferSize = 4 * 1024; | 113 static const size_t kReadBufferSize = 4 * 1024; |
| 103 | 114 |
| 104 // Initialize a Channel. | 115 // Initialize a Channel. |
| 105 // | 116 // |
| 106 // |channel_handle| identifies the communication Channel. For POSIX, if | 117 // |channel_handle| identifies the communication Channel. For POSIX, if |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 // Used in Chrome by the TestSink to provide a dummy channel implementation | 201 // Used in Chrome by the TestSink to provide a dummy channel implementation |
| 191 // for testing. TestSink overrides the "interesting" functions in Channel so | 202 // for testing. TestSink overrides the "interesting" functions in Channel so |
| 192 // no actual implementation is needed. This will cause un-overridden calls to | 203 // no actual implementation is needed. This will cause un-overridden calls to |
| 193 // segfault. Do not use outside of test code! | 204 // segfault. Do not use outside of test code! |
| 194 Channel() : channel_impl_(0) { } | 205 Channel() : channel_impl_(0) { } |
| 195 | 206 |
| 196 private: | 207 private: |
| 197 // PIMPL to which all channel calls are delegated. | 208 // PIMPL to which all channel calls are delegated. |
| 198 class ChannelImpl; | 209 class ChannelImpl; |
| 199 ChannelImpl *channel_impl_; | 210 ChannelImpl *channel_impl_; |
| 200 | |
| 201 // The Hello message is internal to the Channel class. It is sent | |
| 202 // by the peer when the channel is connected. The message contains | |
| 203 // just the process id (pid). The message has a special routing_id | |
| 204 // (MSG_ROUTING_NONE) and type (HELLO_MESSAGE_TYPE). | |
| 205 enum { | |
| 206 HELLO_MESSAGE_TYPE = kuint16max // Maximum value of message type (uint16), | |
| 207 // to avoid conflicting with normal | |
| 208 // message types, which are enumeration | |
| 209 // constants starting from 0. | |
| 210 }; | |
| 211 }; | 211 }; |
| 212 | 212 |
| 213 } // namespace IPC | 213 } // namespace IPC |
| 214 | 214 |
| 215 #endif // IPC_IPC_CHANNEL_H_ | 215 #endif // IPC_IPC_CHANNEL_H_ |
| OLD | NEW |