# Consumer - [Overview](#section232136428165631) - [Summary](#section430934111165631) - [Data Fields](#pub-attribs) - [Details](#section304163631165631) - [Field](#section1026643206165631) - [Equal](#a38ab45549e981dc8c8c0a90883a6bac8) - [identity](#ac6e98b3361e6be922804e8c459fe303b) - [Notify](#a57b8ea7ff05c30832af06804a0526765) ## **Overview** **Related Modules:** [Broadcast](Broadcast.md) **Description:** Defines the topic consumer used to receive events and push data. You need to implement this struct for your application. ## **Summary** ## Data Fields

Variable Name

Description

identity

const Identity *

Notify )(Consumer *consumer, const Topic *topic, const Request *origin)

void(*

Defines how the consumer will process the events or data of a released topic.

Equal )(const Consumer *current, const Consumer *other)

BOOL(*

Checks whether two consumers are equal.

## **Details** ## **Field ** ## Equal ``` BOOL(* Consumer::Equal) (const [Consumer](Consumer.md) *current, const [Consumer](Consumer.md) *other) ``` **Description:** Checks whether two consumers are equal. You need to implement this function to prevent repeated topic subscription. **Parameters:**

Name

Description

current Indicates the pointer to the current consumer.
other Indicates the pointer to the target consumer to compare.
**Returns:** Returns **TRUE** if the two consumers are equal; returns **FALSE** otherwise. ## identity ``` const [Identity](Identity.md)* Consumer::identity ``` **Description:** [Consumer](Consumer.md) ID ## Notify ``` void(* Consumer::Notify) ([Consumer](Consumer.md) *consumer, const [Topic](Broadcast.md#gaf03f5bc94cad32ab628a6cdee09b0542) *topic, const [Request](Request.md) *origin) ``` **Description:** Defines how the consumer will process the events or data of a released topic. You can implement this function for consumers to process topics associated with the them. Note that the passed topic must have been subscribed by the consumer. Otherwise, the function does nothing. **Parameters:**

Name

Description

consumer Indicates this pointer of the consumer.
topic Indicates the pointer to the topic to be processed.
origin Indicates the pointer to the data to be processed.