# 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
## **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. |