зеркало из https://github.com/mozilla/gecko-dev.git
60 строки
2.1 KiB
Plaintext
60 строки
2.1 KiB
Plaintext
/* 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/. */
|
|
|
|
/**
|
|
* MozTCPSocket exposes a TCP client and server sockets
|
|
* to highly privileged apps. It provides a buffered, non-blocking
|
|
* interface for sending. For receiving, it uses an asynchronous,
|
|
* event handler based interface.
|
|
*/
|
|
|
|
#include "domstubs.idl"
|
|
|
|
%{C++
|
|
#include "nsTArrayForwardDeclare.h"
|
|
%}
|
|
[ref] native nsUint8TArrayRef(nsTArray<uint8_t>);
|
|
[ptr] native JSContextPtr(JSContext);
|
|
|
|
|
|
/*
|
|
* This interface is implemented in TCPSocket.cpp as an internal interface
|
|
* for use in cross-process socket implementation.
|
|
* Needed to account for multiple possible types that can be provided to
|
|
* the socket callbacks as arguments.
|
|
*/
|
|
[scriptable, uuid(ac2c4b69-cb79-4767-b1ce-bcf62945cd39)]
|
|
interface nsITCPSocketCallback : nsISupports {
|
|
// Limitation of TCPSocket's buffer size.
|
|
const unsigned long BUFFER_SIZE = 65536;
|
|
|
|
// Dispatch an "error" event at this object with the given name and type.
|
|
void fireErrorEvent(in AString name, in AString type, in nsresult errorCode);
|
|
|
|
// Dispatch a "data" event at this object with a string
|
|
void fireDataStringEvent(in AString type, in ACString data);
|
|
|
|
// Dispatch a "data" event at this object with an Array
|
|
void fireDataArrayEvent(in AString type, [const] in nsUint8TArrayRef data);
|
|
|
|
// Dispatch an event of the given type at this object.
|
|
void fireEvent(in AString type);
|
|
|
|
// Update the DOM object's readyState.
|
|
// @param readyState
|
|
// new ready state
|
|
void updateReadyState(in unsigned long readystate);
|
|
|
|
// Update the DOM object's bufferedAmount value with a tracking number to
|
|
// to allow tracking of which writes are "in-flight"
|
|
// @param bufferedAmount
|
|
// TCPSocket parent's bufferedAmount.
|
|
// @param trackingNumber
|
|
// A number to ensure the bufferedAmount is updated after data
|
|
// from child are sent to parent.
|
|
void updateBufferedAmount(in uint32_t bufferedAmount,
|
|
in uint32_t trackingNumber);
|
|
};
|
|
|