# common.h - [Overview](#section1043119264165626) - [Summary](#section647703513165626) - [Data Structures](#nested-classes) - [Macros](#define-members) - [Typedefs](#typedef-members) - [Functions](#func-members) ## **Overview** **Related Modules:** [Samgr](Samgr.md) **Description:** Provides common objects and functions for Samgr and external modules. This file provides simplified vector containers and downcast functions. **Since:** 1.0 **Version:** 1.0 ## **Summary** ## Data Structures

Data Structure Name

Description

SimpleVector

Defines the simplified vector class, which is extended by four elements.

## Macros

Macro Name and Value

Description

GET_OFFSIZE(T, member) (long)((char *)&(((T *)(0))->member))

Calculates the offset of the member in the T type.

## Typedefs

Typedef Name

Description

Vector

typedef struct SimpleVector

Defines the simplified vector class, which is extended by four elements.

## Functions

Function

Description

VECTOR_Make (VECTOR_Key key, VECTOR_Compare compare)

Vector

Creates or initializes a vector object.

VECTOR_Clear (Vector *vector)

void

Destruct a vector object.

VECTOR_Add (Vector *vector, void *element)

int16

Adds an element to the vector.

VECTOR_Size (Vector *vector)

int16

Obtains the number of elements in the vector, including elements that have been set to NULL.

VECTOR_Num (Vector *vector)

int16

Obtains the number of valid elements in the vector, excluding elements that have been set to NULL.

VECTOR_At (Vector *vector, int16 index)

void *

Obtains the element at a specified position.

VECTOR_Swap (Vector *vector, int16 index, void *element)

void *

Swaps the element at a specified position in a vector with another element.

VECTOR_Find (Vector *vector, const void *element)

int16

Checks the position of an element.

VECTOR_FindByKey (Vector *vector, const void *key)

int16

Checks the position of the element with a specified key.