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 3 // found in the LICENSE file. 4 5 // IPC messages for the P2P Transport API. 6 // Multiply-included message file, hence no include guard. 7 8 #include "content/common/content_export.h" 9 #include "content/common/p2p_sockets.h" 10 #include "ipc/ipc_message_macros.h" 11 #include "net/base/ip_endpoint.h" 12 #include "net/base/net_util.h" 13 14 #undef IPC_MESSAGE_EXPORT 15 #define IPC_MESSAGE_EXPORT CONTENT_EXPORT 16 #define IPC_MESSAGE_START P2PMsgStart 17 18 IPC_ENUM_TRAITS(content::P2PSocketType) 19 20 IPC_STRUCT_TRAITS_BEGIN(net::NetworkInterface) 21 IPC_STRUCT_TRAITS_MEMBER(name) 22 IPC_STRUCT_TRAITS_MEMBER(address) 23 IPC_STRUCT_TRAITS_END() 24 25 // P2P Socket messages sent from the browser to the renderer. 26 27 IPC_MESSAGE_CONTROL1(P2PMsg_NetworkListChanged, 28 net::NetworkInterfaceList /* networks */) 29 30 IPC_MESSAGE_CONTROL2(P2PMsg_GetHostAddressResult, 31 int32 /* request_id */, 32 net::IPAddressNumber /* address */) 33 34 IPC_MESSAGE_CONTROL2(P2PMsg_OnSocketCreated, 35 int /* socket_id */, 36 net::IPEndPoint /* socket_address */) 37 38 IPC_MESSAGE_CONTROL1(P2PMsg_OnSendComplete, 39 int /* socket_id */) 40 41 IPC_MESSAGE_CONTROL1(P2PMsg_OnError, 42 int /* socket_id */) 43 44 IPC_MESSAGE_CONTROL2(P2PMsg_OnIncomingTcpConnection, 45 int /* socket_id */, 46 net::IPEndPoint /* socket_address */) 47 48 IPC_MESSAGE_CONTROL3(P2PMsg_OnDataReceived, 49 int /* socket_id */, 50 net::IPEndPoint /* socket_address */, 51 std::vector<char> /* data */) 52 53 // P2P Socket messages sent from the renderer to the browser. 54 55 // Start/stop sending P2PMsg_NetworkListChanged messages when network 56 // configuration changes. 57 IPC_MESSAGE_CONTROL0(P2PHostMsg_StartNetworkNotifications) 58 IPC_MESSAGE_CONTROL0(P2PHostMsg_StopNetworkNotifications) 59 60 IPC_MESSAGE_CONTROL2(P2PHostMsg_GetHostAddress, 61 std::string /* host_name */, 62 int32 /* request_id */) 63 64 IPC_MESSAGE_CONTROL4(P2PHostMsg_CreateSocket, 65 content::P2PSocketType /* type */, 66 int /* socket_id */, 67 net::IPEndPoint /* local_address */, 68 net::IPEndPoint /* remote_address */) 69 70 IPC_MESSAGE_CONTROL3(P2PHostMsg_AcceptIncomingTcpConnection, 71 int /* listen_socket_id */, 72 net::IPEndPoint /* remote_address */, 73 int /* connected_socket_id */) 74 75 // TODO(sergeyu): Use shared memory to pass the data. 76 IPC_MESSAGE_CONTROL3(P2PHostMsg_Send, 77 int /* socket_id */, 78 net::IPEndPoint /* socket_address */, 79 std::vector<char> /* data */) 80 81 IPC_MESSAGE_CONTROL1(P2PHostMsg_DestroySocket, 82 int /* socket_id */) 83