# Feature ## **Overview** **Related Modules:** [Samgr](samgr.md) **Description:** Defines the base class of a feature. You need to implement the pointer to the feature. **Since:** 1.0 **Version:** 1.0 ## **Summary** ## Data Fields

Variable Name

Description

GetName )(Feature *feature)

const char *(*

Obtains a feature name.

OnInitialize )(Feature *feature, Service *parent, Identity identity)

void(*

Initializes a feature.

OnStop )(Feature *feature, Identity identity)

void(*

Stops a feature.

OnMessage )(Feature *feature, Request *request)

BOOL(*

Processes a feature message.

## **Details** ## **Field Documentation** ## GetName ``` const char*(* Feature::GetName) ([Feature](feature.md) *feature) ``` **Description:** Obtains a feature name. This function is implemented by developers and called by Samgr during feature registration and startup. **Parameters:**

Name

Description

feature Indicates the pointer to the feature.
**Returns:** Returns a constant character string less than 16 bytes if the operation is successful; returns **NULL** if the operation fails. ## OnInitialize ``` void(* Feature::OnInitialize) ([Feature](feature.md) *feature, [Service](service.md) *parent, [Identity](identity.md) identity) ``` **Description:** Initializes a feature. This function is implemented by developers. After Samgr dispatches tasks to a service, the service calls this function in its own tasks. **Parameters:**

Name

Description

feature Indicates the pointer to the feature.
parent Indicates the pointer to the Service to which the feature belongs.
identity Indicates the identity of a feature dispatched by the system.
## OnMessage ``` BOOL(* Feature::OnMessage) ([Feature](feature.md) *feature, [Request](request.md) *request) ``` **Description:** Processes a feature message. This function is implemented by developers to process requests sent by callers through [IUnknown](iunknown.md). **Parameters:**

Name

Description

feature Indicates the pointer to the feature.
request Indicates the request message.
**Returns:** Returns **TRUE** if the processing is successful; returns **FALSE** if the processing fails. ## OnStop ``` void(* Feature::OnStop) ([Feature](feature.md) *feature, [Identity](identity.md) identity) ``` **Description:** Stops a feature. This function is implemented by developers and is called by Samgr when a feature is deregistered to stop running services. **Parameters:**

Name

Description

feature Indicates the pointer to the feature.
identity Indicates the Identity of the feature to be stopped.