123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
- /* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- include protocol PNecko;
- include protocol PBackground;
- include protocol PBlob;
- include InputStreamParams;
- include "mozilla/net/NeckoMessageUtils.h";
- include "mozilla/net/DNS.h";
- include "prio.h";
- using mozilla::net::NetAddr from "mozilla/net/DNS.h";
- using struct mozilla::void_t from "ipc/IPCMessageUtils.h";
- struct UDPAddressInfo {
- nsCString addr;
- uint16_t port;
- };
- union UDPSocketAddr {
- UDPAddressInfo;
- NetAddr;
- };
- union UDPData {
- uint8_t[];
- InputStreamParams;
- };
- namespace mozilla {
- namespace net {
- //-------------------------------------------------------------------
- protocol PUDPSocket
- {
- manager PNecko or PBackground;
- parent:
- async Bind(UDPAddressInfo addressInfo, bool addressReuse, bool loopback,
- uint32_t recvBufferSize, uint32_t sendBufferSize);
- async Connect(UDPAddressInfo addressInfo);
- async OutgoingData(UDPData data, UDPSocketAddr addr);
- async JoinMulticast(nsCString multicastAddress, nsCString iface);
- async LeaveMulticast(nsCString multicastAddress, nsCString iface);
- async Close();
- async RequestDelete();
- child:
- async CallbackOpened(UDPAddressInfo addressInfo);
- async CallbackConnected(UDPAddressInfo addressInfo);
- async CallbackClosed();
- async CallbackReceivedData(UDPAddressInfo addressInfo, uint8_t[] data);
- async CallbackError(nsCString message, nsCString filename, uint32_t lineNumber);
- async __delete__();
- };
- } // namespace net
- } // namespace mozilla
|