C++程序  |  40行  |  1.46 KB

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

#ifndef NET_WEBSOCKETS_WEBSOCKET_MUX_H_
#define NET_WEBSOCKETS_WEBSOCKET_MUX_H_

namespace net {

// Reason codes used by the mux extension.
enum WebSocketMuxError {
  // Codes starting with 2000 apply to the physical connection. They are used
  // for dropping the control channel.
  kWebSocketMuxErrorPhysicalConnectionFailed = 2000,
  kWebSocketMuxErrorInvalidEncapsulatingMessage = 2001,
  kWebSocketMuxErrorChannelIdTruncated = 2002,
  kWebSocketMuxErrorEncapsulatedFrameIsTruncated = 2003,
  kWebSocketMuxErrorUnknownMuxOpcode = 2004,
  kWebSocketMuxErrorInvalidMuxControlBlock = 2005,
  kWebSocketMuxErrorChannelAlreadyExists = 2006,
  kWebSocketMuxErrorNewChannelSlotViolation = 2007,
  kWebSocketMuxErrorNewChannelSlotOverflow = 2008,
  kWebSocketMuxErrorBadRequest = 2009,
  kWebSocketMuxErrorUnknownRequestEncoding = 2010,
  kWebSocketMuxErrorBadResponse = 2011,
  kWebSocketMuxErrorUnknownResponseEncoding = 2012,

  // Codes starting with 3000 apply to the logical connection.
  kWebSocketMuxErrorLogicalChannelFailed = 3000,
  kWebSocketMuxErrorSendQuotaViolation = 3005,
  kWebSocketMuxErrorSendQuotaOverflow = 3006,
  kWebSocketMuxErrorIdleTimeout = 3007,
  kWebSocketMuxErrorDropChannelAck = 3008,
  kWebSocketMuxErrorBadFragmentation = 3009,
};

}  // namespace net

#endif  // NET_WEBSOCKETS_WEBSOCKET_MUX_H_