summaryrefslogtreecommitdiffstats
path: root/chrome/common/extensions/api/sockets_tcp_server.idl
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/common/extensions/api/sockets_tcp_server.idl')
-rw-r--r--chrome/common/extensions/api/sockets_tcp_server.idl191
1 files changed, 191 insertions, 0 deletions
diff --git a/chrome/common/extensions/api/sockets_tcp_server.idl b/chrome/common/extensions/api/sockets_tcp_server.idl
new file mode 100644
index 0000000..60c9b61
--- /dev/null
+++ b/chrome/common/extensions/api/sockets_tcp_server.idl
@@ -0,0 +1,191 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Use the <code>chrome.sockets.tcpServer</code> API to create server
+// applications using TCP connections. This API supersedes the TCP functionality
+// previously found in the <code>chrome.socket</code> API. Note that the socket
+// ids created from this namespace are not compatible with ids created in other
+// namespaces.
+namespace sockets.tcpServer {
+ // The socket properties specified in the <code>create</code> or
+ // <code>update</code> function. Each property is optional. If a property
+ // value is not specified, a default value is used when calling
+ // <code>create</code>, or the existing value if preserved when calling
+ // <code>update</code>.
+ dictionary SocketProperties {
+ // Flag indicating if the socket remains open when the event page of the
+ // application is unloaded (see
+ // <a href="http://developer.chrome.com/apps/app_lifecycle.html">Manage App
+ // Lifecycle</a>). The default value is "false." When the application is
+ // loaded, any sockets previously opened with persistent=true can be fetched
+ // with <code>getSockets</code>.
+ boolean? persistent;
+
+ // An application-defined string associated with the socket.
+ DOMString? name;
+ };
+
+ // Result of <code>create</code> call.
+ dictionary CreateInfo {
+ // The ID of the newly created server socket.
+ long socketId;
+ };
+
+ // Callback from the <code>create</code> method.
+ // |createInfo| : The result of the socket creation.
+ callback CreateCallback = void (CreateInfo createInfo);
+
+ // Callback from the <code>listen</code> method.
+ // |result| : The result code returned from the underlying network call.
+ // A negative value indicates an error.
+ callback ListenCallback = void (long result);
+
+ // Callback from the <code>disconnect</code> method.
+ callback DisconnectCallback = void ();
+
+ // Callback from the <code>close<code> method.
+ callback CloseCallback = void ();
+
+ // Callback from the <code>update</code> method.
+ callback UpdateCallback = void ();
+
+ // Callback from the <code>setPaused<code> method.
+ callback SetPausedCallback = void ();
+
+ // Result of the <code>getInfo</code> method.
+ dictionary SocketInfo {
+ // The socket identifier.
+ long socketId;
+
+ // Flag indicating if the socket remains open when the event page of the
+ // application is unloaded (see <code>SocketProperties.persistent</code>).
+ // The default value is "false".
+ boolean persistent;
+
+ // Application-defined string associated with the socket.
+ DOMString? name;
+
+ // Flag indicating whether connection requests on a listening socket are
+ // dispatched through the <code>onAccept<code> event or queued up in the
+ // listen queue backlog.
+ // See <code>setPaused<code>. The default value is "false".
+ boolean paused;
+
+ // If the socket is listening, contains its local IPv4/6 address.
+ DOMString? localAddress;
+
+ // If the socket is listening, contains its local port.
+ long? localPort;
+ };
+
+ // Callback from the <code>getInfo</code> method.
+ // |socketInfo| : Object containing the socket information.
+ callback GetInfoCallback = void (SocketInfo socketInfo);
+
+ // Callback from the <code>getSockets</code> method.
+ // |socketInfos| : Array of object containing socket information.
+ callback GetSocketsCallback = void (SocketInfo[] socketInfos);
+
+ // Data from an <code>onAccept</code> event.
+ dictionary AcceptInfo {
+ // The server socket identifier.
+ long socketId;
+
+ // The client socket identifier, i.e. the socket identifier of the newly
+ // established connection. This socket identifier should be used only with
+ // functions from the <code>chrome.sockets.tcp<code> namespace.
+ long clientSocketId;
+ };
+
+ // Data from an <code>onAcceptError</code> event.
+ dictionary AcceptErrorInfo {
+ // The server socket identifier.
+ long socketId;
+
+ // The result code returned from the underlying network call.
+ long resultCode;
+ };
+
+ interface Functions {
+ // Creates a TCP server socket.
+ // |properties| : The socket properties (optional).
+ // |callback| : Called when the socket has been created.
+ static void create(optional SocketProperties properties,
+ CreateCallback callback);
+
+ // Updates the socket properties.
+ // |socketId| : The socket identifier.
+ // |properties| : The properties to update.
+ // |callback| : Called when the properties are updated.
+ static void update(long socketId,
+ SocketProperties properties,
+ optional UpdateCallback callback);
+
+ // Enables or disables a listening socket from accepting new connections.
+ // When paused, a listening socket accepts new connections until its backlog
+ // (see <code>listen<code> function) is full then refuses additional
+ // connection requests. <code>onAccept<code> events are raised only when
+ // the socket is un-paused.
+ static void setPaused(long socketId,
+ boolean paused,
+ optional SetPausedCallback callback);
+
+ // Listens for connections on the specified port and address.
+ // If the port/address is in use, the callback indicates a failure.
+ // |socketId| : The socket identifier.
+ // |address| : The address of the local machine.
+ // |port| : The port of the local machine.
+ // |backlog| : Length of the socket's listen queue. The default value
+ // depends on the Operating System (SOMAXCONN), which ensures a reasonable
+ // queue length for most applications.
+ // |callback| : Called when listen operation completes.
+ static void listen(long socketId,
+ DOMString address,
+ long port,
+ optional long backlog,
+ ListenCallback callback);
+
+ // Disconnects the listening socket, i.e. stops accepting new connections
+ // and releases the address/port the socket is bound to. The socket
+ // identifier remains valid, e.g. it can be used with <code>listen<code> to
+ // accept connections on a new port and address.
+ // |socketId| : The socket identifier.
+ // |callback| : Called when the disconnect attempt is complete.
+ static void disconnect(long socketId,
+ optional DisconnectCallback callback);
+
+ // Disconnects and destroys the socket. Each socket created should be
+ // closed after use. The socket id is no longer valid as soon at the
+ // function is called. However, the socket is guaranteed to be closed only
+ // when the callback is invoked.
+ // |socketId| : The socket identifier.
+ // |callback| : Called when the <code>close</code> operation completes.
+ static void close(long socketId,
+ optional CloseCallback callback);
+
+ // Retrieves the state of the given socket.
+ // |socketId| : The socket identifier.
+ // |callback| : Called when the socket state is available.
+ static void getInfo(long socketId,
+ GetInfoCallback callback);
+
+ // Retrieves the list of currently opened sockets owned by the application.
+ // |callback| : Called when the list of sockets is available.
+ static void getSockets(GetSocketsCallback callback);
+ };
+
+ interface Events {
+ // Event raised when a connection has been made to the server socket.
+ // |info| : The event data.
+ static void onAccept(AcceptInfo info);
+
+ // Event raised when a network error occured while the runtime was waiting
+ // for new connections on the socket address and port. Once this event is
+ // raised, the socket is set to <code>paused</code> and no more
+ // <code>onAccept</code> events are raised for this socket until the socket
+ // is resumed.
+ // |info| : The event data.
+ static void onAcceptError(AcceptErrorInfo info);
+ };
+};