| 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 |