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