# Event

<a id="event-2"></a>

# Event

```cpp
#include <icy/symple/event.h>

class Event
```

[Defined in src/symple/include/icy/symple/event.h:29](https://github.com/auscaster/icey/blob/main/src/symple/include/icy/symple/event.h#L29)

> **Inherits:** [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12)

Symple event message carrying a named occurrence with a timestamp.

The `name` field identifies the event. The `time` field is stored as a Unix timestamp (seconds since epoch).

## List of all members

| Name | Kind | Owner |
|------|------|-------|
| [`Event`](#event-3) | `function` | Declared here |
| [`Event`](#event-4) | `function` | Declared here |
| [`Event`](#event-5) | `function` | Declared here |
| [`~Event`](#event-6) | `function` | Declared here |
| [`valid`](#valid-12) | `function` | Declared here |
| [`name`](#name-17) | `function` | Declared here |
| [`time`](#time-4) | `function` | Declared here |
| [`setName`](#setname-2) | `function` | Declared here |
| [`setTime`](#settime) | `function` | Declared here |
| [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-13) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-14) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-15) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#operator-247) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`~Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-16) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`clone`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#clone-22) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`valid`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#valid-15) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`clear`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#clear-11) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`clearData`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#cleardata) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`clearNotes`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#clearnotes) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`type`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#type-25) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`id`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#id-12) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`to`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#to) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`from`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#from) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`toUser`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#touser) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`toId`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#toid) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`fromUser`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#fromuser) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`fromId`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#fromid) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`status`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#status-3) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`setType`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#settype-2) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`setTo`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setto) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`setTo`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setto-1) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`setTo`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setto-2) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`setFrom`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setfrom) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`setFrom`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setfrom-1) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`setFrom`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setfrom-2) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`setStatus`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setstatus-1) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`notes`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#notes) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`setNote`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setnote) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`addNote`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#addnote) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`data`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#data-9) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`data`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#data-10) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`setData`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setdata) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`setData`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setdata-1) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`setData`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setdata-2) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`setData`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setdata-3) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`setData`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setdata-4) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`removeData`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#removedata) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`hasData`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#hasdata-1) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`read`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#read-17) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`read`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#read-18) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`write`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#write-46) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`isRequest`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#isrequest) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`size`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#size-20) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`print`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#print-18) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`className`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#classname-13) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`data`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#data-11) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`hasData`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#hasdata-2) | `function` | Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12) |
| [`operator<<`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#operator-41) | `friend` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`opaque`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#opaque) | `variable` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`info`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#info) | `variable` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`flags`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#flags) | `variable` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket-1) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket-2) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#operator-42) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`clone`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#clone-1) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`~IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket-3) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`read`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#read-1) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`write`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#write-4) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`size`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#size-1) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`hasData`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#hasdata) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`data`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#data-2) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`constData`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#constdata) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`className`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#classname-1) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |
| [`print`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#print) | `function` | Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket) |

## Inherited from [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-12)

| Kind | Name | Description |
|------|------|-------------|
| `function` | [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-13)  | Constructs a new message with a random ID and type set to "message". |
| `function` | [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-14)  | Constructs a message from a JSON value; sets missing id/type fields. |
| `function` | [`Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-15)  | Copy constructor; preserves or generates id/type fields. |
| `function` | [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#operator-247)  | Defaulted assignment operator. |
| `function` | [`~Message`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#message-16) `virtual` |  |
| `function` | [`clone`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#clone-22) `virtual` `const` `override` | Returns a heap-allocated copy of this message. |
| `function` | [`valid`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#valid-15) `virtual` `const` | Returns true if the message has both `type` and `id` fields. |
| `function` | [`clear`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#clear-11) `virtual` | Clears all JSON fields from this message. |
| `function` | [`clearData`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#cleardata) `virtual` | Clears the `data` sub-object. |
| `function` | [`clearNotes`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#clearnotes) `virtual` | Clears the `notes` array. |
| `function` | [`type`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#type-25) `const` | Returns the message type string (defaults to "message"). |
| `function` | [`id`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#id-12) `const` | Returns the message ID string. |
| `function` | [`to`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#to) `const` | Returns the recipient address parsed from the `to` field. |
| `function` | [`from`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#from) `const` | Returns the sender address parsed from the `from` field. |
| `function` | [`toUser`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#touser) `const` | Returns the user component of the `to` address without constructing an [Address](https://auscaster.com/icey/docs/api-reference/icy-smpl-Address.md#address-13). |
| `function` | [`toId`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#toid) `const` | Returns the id component of the `to` address without constructing an [Address](https://auscaster.com/icey/docs/api-reference/icy-smpl-Address.md#address-13). |
| `function` | [`fromUser`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#fromuser) `const` | Returns the user component of the `from` address without constructing an [Address](https://auscaster.com/icey/docs/api-reference/icy-smpl-Address.md#address-13). |
| `function` | [`fromId`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#fromid) `const` | Returns the id component of the `from` address without constructing an [Address](https://auscaster.com/icey/docs/api-reference/icy-smpl-Address.md#address-13). |
| `function` | [`status`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#status-3) `const` | Returns the HTTP status code, or -1 if not set. |
| `function` | [`setType`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#settype-2)  | Sets the message type field. |
| `function` | [`setTo`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setto)  | Sets the `to` field from a peer's address. |
| `function` | [`setTo`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setto-1)  | Sets the `to` field from an address object. |
| `function` | [`setTo`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setto-2)  | Sets the `to` field from an address string. |
| `function` | [`setFrom`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setfrom)  | Sets the `from` field from a peer's address. |
| `function` | [`setFrom`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setfrom-1)  | Sets the `from` field from an address object. |
| `function` | [`setFrom`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setfrom-2)  | Sets the `from` field from an address string. |
| `function` | [`setStatus`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setstatus-1)  | HTTP status codes are used to describe the message response. Throws std::invalid_argument if code is outside [101, 504]. **See also**: [http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) |
| `function` | [`notes`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#notes)  | Returns a reference to the `notes` JSON array. |
| `function` | [`setNote`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setnote)  | Replaces all notes with a single note. |
| `function` | [`addNote`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#addnote)  | Appends a note to the `notes` array. |
| `function` | [`data`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#data-9) `const` | Returns a copy of the named data field. |
| `function` | [`data`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#data-10)  | Returns a reference to the named data field (creates it if absent). |
| `function` | [`setData`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setdata)  | Creates or replaces a named data field; returns a reference to it. |
| `function` | [`setData`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setdata-1)  | Sets a named data field to a C-string value. |
| `function` | [`setData`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setdata-2)  | Sets a named data field to a string value. |
| `function` | [`setData`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setdata-3)  | Sets a named data field to a JSON value. |
| `function` | [`setData`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#setdata-4)  | Sets a named data field to an integer value. |
| `function` | [`removeData`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#removedata)  | Removes a named field from the `data` sub-object. |
| `function` | [`hasData`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#hasdata-1)  | Returns true if the named field exists in the `data` sub-object. |
| `function` | [`read`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#read-17) `virtual` `override` | Deserialises the message from a raw buffer. |
| `function` | [`read`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#read-18) `virtual` | Deserialises the message from a JSON string. |
| `function` | [`write`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#write-46) `virtual` `const` `override` | Serialises the message as JSON into a buffer. |
| `function` | [`isRequest`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#isrequest) `const` | Returns true if no status code has been set (i.e. [status()](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#status-3) == -1). |
| `function` | [`size`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#size-20) `virtual` `const` `override` | Returns the serialised JSON size in bytes. |
| `function` | [`print`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#print-18) `virtual` `const` `override` | Pretty-prints the message JSON to the given stream. |
| `function` | [`className`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#classname-13) `virtual` `const` `inline` `override` | Returns the class name of this packet type for logging and diagnostics. |
| `function` | [`data`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#data-11) `virtual` `const` `inline` | The packet data pointer for buffered packets. |
| `function` | [`hasData`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#hasdata-2) `virtual` `const` `inline` | Returns true if the packet has a non-null data pointer. |

## Inherited from [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket)

| Kind | Name | Description |
|------|------|-------------|
| `friend` | [`operator<<`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#operator-41) `inline` | [Stream](https://auscaster.com/icey/docs/api-reference/icy-Stream.md#stream) insertion operator; delegates to [print()](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#print). |
| `variable` | [`opaque`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#opaque)  | Optional type-safe context data. Use std::any_cast to retrieve. Lifetime of the stored value is tied to the packet's lifetime. |
| `variable` | [`info`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#info)  | Optional extra information about the packet. |
| `variable` | [`flags`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#flags)  | Provides basic information about the packet. |
| `function` | [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket-1) `inline` |  |
| `function` | [`IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket-2) `inline` | Copy constructor; clones the info object if present. |
| `function` | [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#operator-42) `inline` | Copy assignment; clones the info object if present. |
| `function` | [`clone`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#clone-1) `virtual` `const` | Returns a heap-allocated deep copy of this packet. |
| `function` | [`~IPacket`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#ipacket-3) `virtual` | Defaulted destructor. |
| `function` | [`read`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#read-1) `virtual` | Read/parse to the packet from the given input buffer. The number of bytes read is returned. |
| `function` | [`write`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#write-4) `virtual` `const` | Copy/generate to the packet given output buffer. The number of bytes written can be obtained from the buffer. |
| `function` | [`size`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#size-1) `virtual` `const` `inline` | The size of the packet in bytes. |
| `function` | [`hasData`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#hasdata) `virtual` `const` `inline` | Returns true if the packet has a non-null data pointer. |
| `function` | [`data`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#data-2) `virtual` `const` `inline` | The packet data pointer for buffered packets. |
| `function` | [`constData`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#constdata) `virtual` `const` `inline` | The const packet data pointer for buffered packets. |
| `function` | [`className`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#classname-1) `virtual` `const` | Returns the class name of this packet type for logging and diagnostics. |
| `function` | [`print`](https://auscaster.com/icey/docs/api-reference/icy-IPacket.md#print) `virtual` `const` `inline` | Prints a human-readable representation to the given stream. |

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`Event`](#event-3)  | Constructs an event with type "event" and time set to now. |
|  | [`Event`](#event-4)  | Constructs an event from a JSON value; sets missing time to now. |
|  | [`Event`](#event-5)  | Copy constructor; preserves or sets missing time to now. |
|  | [`~Event`](#event-6) `virtual` |  |
| `bool` | [`valid`](#valid-12) `virtual` `const` | Returns true if the base message is valid and the `name` field is set. |
| `std::string` | [`name`](#name-17) `const` | Returns the event name string. |
| `std::time_t` | [`time`](#time-4) `const` | Returns the event timestamp as a Unix time_t value. |
| `void` | [`setName`](#setname-2)  | Sets the event name field. |
| `void` | [`setTime`](#settime)  | Sets the event timestamp. |

---

<a id="event-3"></a>

### Event

```cpp
Event()
```

[Defined in src/symple/include/icy/symple/event.h:33](https://github.com/auscaster/icey/blob/main/src/symple/include/icy/symple/event.h#L33)

Constructs an event with type "event" and time set to now.

---

<a id="event-4"></a>

### Event

```cpp
Event(const json::Value & root)
```

[Defined in src/symple/include/icy/symple/event.h:37](https://github.com/auscaster/icey/blob/main/src/symple/include/icy/symple/event.h#L37)

Constructs an event from a JSON value; sets missing time to now.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `root` | const [`json::Value`](https://auscaster.com/icey/docs/api-reference/icy-json.md#value) & | JSON object to initialise from. |

---

<a id="event-5"></a>

### Event

```cpp
Event(const Event & root)
```

[Defined in src/symple/include/icy/symple/event.h:41](https://github.com/auscaster/icey/blob/main/src/symple/include/icy/symple/event.h#L41)

Copy constructor; preserves or sets missing time to now.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `root` | const [`Event`](#event-2) & | Source event. |

---

<a id="event-6"></a>

### ~Event

`virtual`

```cpp
virtual ~Event()
```

[Defined in src/symple/include/icy/symple/event.h:43](https://github.com/auscaster/icey/blob/main/src/symple/include/icy/symple/event.h#L43)

---

<a id="valid-12"></a>

### valid

`virtual` `const`

```cpp
virtual bool valid() const
```

[Defined in src/symple/include/icy/symple/event.h:46](https://github.com/auscaster/icey/blob/main/src/symple/include/icy/symple/event.h#L46)

Returns true if the base message is valid and the `name` field is set.

#### Reimplements

- [`Message::valid`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Message.md#valid-15)

---

<a id="name-17"></a>

### name

`const`

```cpp
std::string name() const
```

[Defined in src/symple/include/icy/symple/event.h:49](https://github.com/auscaster/icey/blob/main/src/symple/include/icy/symple/event.h#L49)

Returns the event name string.

---

<a id="time-4"></a>

### time

`const`

```cpp
std::time_t time() const
```

[Defined in src/symple/include/icy/symple/event.h:53](https://github.com/auscaster/icey/blob/main/src/symple/include/icy/symple/event.h#L53)

Returns the event timestamp as a Unix time_t value.

---

<a id="setname-2"></a>

### setName

```cpp
void setName(std::string_view name)
```

[Defined in src/symple/include/icy/symple/event.h:57](https://github.com/auscaster/icey/blob/main/src/symple/include/icy/symple/event.h#L57)

Sets the event name field.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `name` | `std::string_view` | [Event](#event-2) name string. |

---

<a id="settime"></a>

### setTime

```cpp
void setTime(std::time_t time)
```

[Defined in src/symple/include/icy/symple/event.h:62](https://github.com/auscaster/icey/blob/main/src/symple/include/icy/symple/event.h#L62)

Sets the event timestamp.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `time` | `std::time_t` | Unix timestamp (seconds since epoch). |
