Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/netwerk/base/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 2 kB image not shown  

Quelle  nsASocketHandler.h   Sprache: C

 
/* 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/. */


#ifndef nsASocketHandler_h__
#define nsASocketHandler_h__

#include "nsError.h"
#include "nsINetAddr.h"
#include "nsISupports.h"
#include "prio.h"

// socket handler used by nsISocketTransportService.
// methods are only called on the socket thread.

class nsASocketHandler : public nsISupports {
 public:
  nsASocketHandler() = default;

  //
  // this condition variable will be checked to determine if the socket
  // handler should be detached.  it must only be accessed on the socket
  // thread.
  //
  nsresult mCondition{NS_OK};

  //
  // these flags can only be modified on the socket transport thread.
  // the socket transport service will check these flags before calling
  // PR_Poll.
  //
  uint16_t mPollFlags{0};

  //
  // this value specifies the maximum amount of time in seconds that may be
  // spent waiting for activity on this socket.  if this timeout is reached,
  // then OnSocketReady will be called with outFlags = -1.
  //
  // the default value for this member is UINT16_MAX, which disables the
  // timeout error checking.  (i.e., a timeout value of UINT16_MAX is
  // never reached.)
  //
  uint16_t mPollTimeout{UINT16_MAX};

  bool mIsPrivate{false};

  //
  // called to service a socket
  //
  // params:
  //   socketRef - socket identifier
  //   fd        - socket file descriptor
  //   outFlags  - value of PR_PollDesc::out_flags after PR_Poll returns
  //               or -1 if a timeout occurred
  //
  virtual void OnSocketReady(PRFileDesc* fd, int16_t outFlags) = 0;

  //
  // called when a socket is no longer under the control of the socket
  // transport service.  the socket handler may close the socket at this
  // point.  after this call returns, the handler will no longer be owned
  // by the socket transport service.
  //
  virtual void OnSocketDetached(PRFileDesc* fd) = 0;

  //
  // called to determine if the socket is for a local peer.
  // when used for server sockets, indicates if it only accepts local
  // connections.
  //
  virtual void IsLocal(bool* aIsLocal) = 0;

  //
  // called to determine if this socket should not be terminated when Gecko
  // is turned offline. This is mostly useful for the debugging server
  // socket.
  //
  virtual void KeepWhenOffline(bool* aKeepWhenOffline) {
    *aKeepWhenOffline = false;
  }

  //
  // called when global pref for keepalive has changed.
  //
  virtual void OnKeepaliveEnabledPrefChange(bool aEnabled) {}

  //
  // called to determine the NetAddr. addr can only be assumed to be initialized
  // when NS_OK is returned
  //
  virtual nsresult GetRemoteAddr(mozilla::net::NetAddr* addr) {
    return NS_ERROR_NOT_IMPLEMENTED;
  }

  //
  // returns the number of bytes sent/transmitted over the socket
  //
  virtual uint64_t ByteCountSent() = 0;
  virtual uint64_t ByteCountReceived() = 0;
};

#endif  // !nsASocketHandler_h__

100%


¤ Dauer der Verarbeitung: 0.25 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.