| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // IPC messages for the P2P Transport API. |
| // Multiply-included message file, hence no include guard. |
| |
| #include "base/time/time.h" |
| #include "content/common/content_export.h" |
| #include "content/public/common/p2p_socket_type.h" |
| #include "ipc/ipc_message_macros.h" |
| #include "net/base/ip_endpoint.h" |
| #include "net/base/net_util.h" |
| |
| #undef IPC_MESSAGE_EXPORT |
| #define IPC_MESSAGE_EXPORT CONTENT_EXPORT |
| #define IPC_MESSAGE_START P2PMsgStart |
| |
| IPC_ENUM_TRAITS(content::P2PSocketType) |
| IPC_ENUM_TRAITS(net::DiffServCodePoint) |
| |
| IPC_STRUCT_TRAITS_BEGIN(net::NetworkInterface) |
| IPC_STRUCT_TRAITS_MEMBER(name) |
| IPC_STRUCT_TRAITS_MEMBER(address) |
| IPC_STRUCT_TRAITS_END() |
| |
| // P2P Socket messages sent from the browser to the renderer. |
| |
| IPC_MESSAGE_CONTROL1(P2PMsg_NetworkListChanged, |
| net::NetworkInterfaceList /* networks */) |
| |
| IPC_MESSAGE_CONTROL2(P2PMsg_GetHostAddressResult, |
| int32 /* request_id */, |
| net::IPAddressNumber /* address */) |
| |
| IPC_MESSAGE_CONTROL2(P2PMsg_OnSocketCreated, |
| int /* socket_id */, |
| net::IPEndPoint /* socket_address */) |
| |
| IPC_MESSAGE_CONTROL1(P2PMsg_OnSendComplete, |
| int /* socket_id */) |
| |
| IPC_MESSAGE_CONTROL1(P2PMsg_OnError, |
| int /* socket_id */) |
| |
| IPC_MESSAGE_CONTROL2(P2PMsg_OnIncomingTcpConnection, |
| int /* socket_id */, |
| net::IPEndPoint /* socket_address */) |
| |
| IPC_MESSAGE_CONTROL4(P2PMsg_OnDataReceived, |
| int /* socket_id */, |
| net::IPEndPoint /* socket_address */, |
| std::vector<char> /* data */, |
| base::TimeTicks /* timestamp */ ) |
| |
| // P2P Socket messages sent from the renderer to the browser. |
| |
| // Start/stop sending P2PMsg_NetworkListChanged messages when network |
| // configuration changes. |
| IPC_MESSAGE_CONTROL0(P2PHostMsg_StartNetworkNotifications) |
| IPC_MESSAGE_CONTROL0(P2PHostMsg_StopNetworkNotifications) |
| |
| IPC_MESSAGE_CONTROL2(P2PHostMsg_GetHostAddress, |
| std::string /* host_name */, |
| int32 /* request_id */) |
| |
| IPC_MESSAGE_CONTROL4(P2PHostMsg_CreateSocket, |
| content::P2PSocketType /* type */, |
| int /* socket_id */, |
| net::IPEndPoint /* local_address */, |
| net::IPEndPoint /* remote_address */) |
| |
| IPC_MESSAGE_CONTROL3(P2PHostMsg_AcceptIncomingTcpConnection, |
| int /* listen_socket_id */, |
| net::IPEndPoint /* remote_address */, |
| int /* connected_socket_id */) |
| |
| // TODO(sergeyu): Use shared memory to pass the data. |
| IPC_MESSAGE_CONTROL5(P2PHostMsg_Send, |
| int /* socket_id */, |
| net::IPEndPoint /* socket_address */, |
| std::vector<char> /* data */, |
| net::DiffServCodePoint /* dscp */, |
| uint64 /* packet_id */) |
| |
| IPC_MESSAGE_CONTROL1(P2PHostMsg_DestroySocket, |
| int /* socket_id */) |