OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 SANDBOX_SRC_CROSSCALL_SERVER_H_ | 5 #ifndef SANDBOX_SRC_CROSSCALL_SERVER_H_ |
6 #define SANDBOX_SRC_CROSSCALL_SERVER_H_ | 6 #define SANDBOX_SRC_CROSSCALL_SERVER_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
11 #include "base/callback.h" | 11 #include "base/callback.h" |
| 12 #include "base/strings/string16.h" |
12 #include "sandbox/win/src/crosscall_params.h" | 13 #include "sandbox/win/src/crosscall_params.h" |
13 | 14 |
14 // This is the IPC server interface for CrossCall: The IPC for the Sandbox | 15 // This is the IPC server interface for CrossCall: The IPC for the Sandbox |
15 // On the server, CrossCall needs two things: | 16 // On the server, CrossCall needs two things: |
16 // 1) threads: Or better said, someone to provide them, that is what the | 17 // 1) threads: Or better said, someone to provide them, that is what the |
17 // ThreadProvider interface is defined for. These thread(s) are | 18 // ThreadProvider interface is defined for. These thread(s) are |
18 // the ones that will actually execute the IPC data retrieval. | 19 // the ones that will actually execute the IPC data retrieval. |
19 // | 20 // |
20 // 2) a dispatcher: This interface represents the way to route and process | 21 // 2) a dispatcher: This interface represents the way to route and process |
21 // an IPC call given the IPC tag. | 22 // an IPC call given the IPC tag. |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 // Gets a parameter that is four bytes in size. | 106 // Gets a parameter that is four bytes in size. |
106 // Returns false if the parameter does not exist or is not 32 bits wide. | 107 // Returns false if the parameter does not exist or is not 32 bits wide. |
107 bool GetParameter32(uint32 index, uint32* param); | 108 bool GetParameter32(uint32 index, uint32* param); |
108 | 109 |
109 // Gets a parameter that is void pointer in size. | 110 // Gets a parameter that is void pointer in size. |
110 // Returns false if the parameter does not exist or is not void pointer sized. | 111 // Returns false if the parameter does not exist or is not void pointer sized. |
111 bool GetParameterVoidPtr(uint32 index, void** param); | 112 bool GetParameterVoidPtr(uint32 index, void** param); |
112 | 113 |
113 // Gets a parameter that is a string. Returns false if the parameter does not | 114 // Gets a parameter that is a string. Returns false if the parameter does not |
114 // exist. | 115 // exist. |
115 bool GetParameterStr(uint32 index, std::wstring* string); | 116 bool GetParameterStr(uint32 index, base::string16* string); |
116 | 117 |
117 // Gets a parameter that is an in/out buffer. Returns false is the parameter | 118 // Gets a parameter that is an in/out buffer. Returns false is the parameter |
118 // does not exist or if the size of the actual parameter is not equal to the | 119 // does not exist or if the size of the actual parameter is not equal to the |
119 // expected size. | 120 // expected size. |
120 bool GetParameterPtr(uint32 index, uint32 expected_size, void** pointer); | 121 bool GetParameterPtr(uint32 index, uint32 expected_size, void** pointer); |
121 | 122 |
122 // Frees the memory associated with the IPC parameters. | 123 // Frees the memory associated with the IPC parameters. |
123 static void operator delete(void* raw_memory) throw(); | 124 static void operator delete(void* raw_memory) throw(); |
124 | 125 |
125 private: | 126 private: |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 CallbackGeneric callback; | 216 CallbackGeneric callback; |
216 }; | 217 }; |
217 | 218 |
218 // List of IPC Calls supported by the class. | 219 // List of IPC Calls supported by the class. |
219 std::vector<IPCCall> ipc_calls_; | 220 std::vector<IPCCall> ipc_calls_; |
220 }; | 221 }; |
221 | 222 |
222 } // namespace sandbox | 223 } // namespace sandbox |
223 | 224 |
224 #endif // SANDBOX_SRC_CROSSCALL_SERVER_H_ | 225 #endif // SANDBOX_SRC_CROSSCALL_SERVER_H_ |
OLD | NEW |