1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /* -*- 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 "mozilla/net/NeckoMessageUtils.h";
- using struct mozilla::void_t from "ipc/IPCMessageUtils.h";
- struct TCPError {
- nsString name;
- nsString message;
- };
- union SendableData {
- uint8_t[];
- nsCString;
- };
- union CallbackData {
- void_t;
- SendableData;
- TCPError;
- };
- namespace mozilla {
- namespace net {
- //-------------------------------------------------------------------
- protocol PTCPSocket
- {
- manager PNecko;
- parent:
- // Forward calling to child's open() method to parent, expect TCPOptions
- // is expanded to |useSSL| (from TCPOptions.useSecureTransport) and
- // |binaryType| (from TCPOption.binaryType).
- async Open(nsString host, uint16_t port, bool useSSL, bool useArrayBuffers);
- // Ask parent to open a socket and bind the newly-opened socket to a local
- // address specified in |localAddr| and |localPort|.
- async OpenBind(nsCString host, uint16_t port,
- nsCString localAddr, uint16_t localPort,
- bool useSSL, bool aUseArrayBuffers, nsCString aFilter);
- // When child's send() is called, this message requrests parent to send
- // data and update it's trackingNumber.
- async Data(SendableData data, uint32_t trackingNumber);
- // Forward calling to child's upgradeToSecure() method to parent.
- async StartTLS();
- // Forward calling to child's send() method to parent.
- async Suspend();
- // Forward calling to child's resume() method to parent.
- async Resume();
- // Forward calling to child's close() method to parent.
- async Close();
- child:
- // Forward events that are dispatched by parent.
- async Callback(nsString type, CallbackData data, uint32_t readyState);
- // Update child's bufferedAmount when parent's bufferedAmount is updated.
- // trackingNumber is also passed back to child to ensure the bufferedAmount
- // is corresponding the last call to send().
- async UpdateBufferedAmount(uint32_t bufferedAmount, uint32_t trackingNumber);
- both:
- async RequestDelete();
- async __delete__();
- };
- } // namespace net
- } // namespace mozilla
|