<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "Tor",
  "identifier" : "/documentation/Tor/TorControlEvent",
  "metadataVersion" : "0.1.0",
  "role" : "Enumeration",
  "symbol" : {
    "kind" : "Enumeration",
    "modules" : [
      "Tor"
    ],
    "preciseIdentifier" : "s:3Tor0A12ControlEventO"
  },
  "title" : "TorControlEvent"
}
-->

# TorControlEvent

Raw-protocol subscription keywords accepted by `SETEVENTS`.

```
enum TorControlEvent
```

## Overview

Each case maps 1:1 to a Tor control-protocol async event keyword
(control-spec.txt §4.1). Pass an array of these to
[`subscribe(to:)`](/documentation/Tor/TorControlClient/subscribe(to:)) to subscribe; Tor will then emit
`650` async replies carrying event payloads, which swift-tor decodes
into [`TorControlEventMessage`](/documentation/Tor/TorControlEventMessage) values.

Unlike [`TorEvent`](/documentation/Tor/TorEvent) — which is the curated, UI-friendly projection —
`TorControlEvent` is the full, untyped subscription vocabulary. Use it
when you need fine-grained or protocol-specific events that the
high-level stream does not surface.

> Note: Conformance is `Sendable` + `Hashable` + `CaseIterable`; the
> raw value is the exact protocol keyword, so round-tripping through
> the wire is lossless.

> Important: Subscribing to high-volume events (`DEBUG`, `INFO`, `BW`)
> on a saturated link can back up Tor’s control socket. Prefer
> `NOTICE`+ and curate `BW` subscriptions to specific measurement
> windows.

## Topics

### Status summaries

[`TorControlEvent.statusClient`](/documentation/Tor/TorControlEvent/statusClient)

`STATUS_CLIENT` — general client operation status.

[`TorControlEvent.statusServer`](/documentation/Tor/TorControlEvent/statusServer)

`STATUS_SERVER` — relay-side operation status.

[`TorControlEvent.statusGeneral`](/documentation/Tor/TorControlEvent/statusGeneral)

`STATUS_GENERAL` — global status affecting all Tor operation.

### Log severities

[`TorControlEvent.debug`](/documentation/Tor/TorControlEvent/debug)

`DEBUG` — developer-diagnostic log lines.

[`TorControlEvent.info`](/documentation/Tor/TorControlEvent/info)

`INFO` — routine operational log lines.

[`TorControlEvent.notice`](/documentation/Tor/TorControlEvent/notice)

`NOTICE` — informational log lines at default verbosity.

[`TorControlEvent.warn`](/documentation/Tor/TorControlEvent/warn)

`WARN` — recoverable problem log lines.

[`TorControlEvent.err`](/documentation/Tor/TorControlEvent/err)

`ERR` — fatal log lines.

### Traffic & topology

[`TorControlEvent.circuitStatus`](/documentation/Tor/TorControlEvent/circuitStatus)

`CIRC` — per-circuit lifecycle events.

[`TorControlEvent.streamStatus`](/documentation/Tor/TorControlEvent/streamStatus)

`STREAM` — per-stream lifecycle events.

[`TorControlEvent.bandwidthUsed`](/documentation/Tor/TorControlEvent/bandwidthUsed)

`BW` — per-second bandwidth usage totals.

[`TorControlEvent.newDescriptor`](/documentation/Tor/TorControlEvent/newDescriptor)

`NEWDESC` — new relay descriptors downloaded.

[`TorControlEvent.addressMap`](/documentation/Tor/TorControlEvent/addressMap)

`ADDRMAP` — address-mapping updates.

