libamxd  6.4.1
Data Model Manager
Data model structures, enums, typedefs

Data Structures

struct  _amxd_function
 RPC method structure. More...
 

Macros

#define AMXD_OBJECT_NAMED   0x00
 Name and path format flag - default behavior, use name for instance objects. More...
 
#define AMXD_OBJECT_INDEXED   0x01
 Name and path format flag - use index for instance objects. More...
 
#define AMXD_OBJECT_EXTENDED   0x02
 Path format flag - set name or index of instrance objects between '[' and ']'. More...
 
#define AMXD_OBJECT_REGEXP   0x04
 Path format flag - create path that can be used as regular expression. More...
 
#define AMXD_OBJECT_TERMINATE   0x08
 Path format flag - when set the object path is terminated with a dot. More...
 
#define AMXD_OBJECT_SUPPORTED   0x10
 Path format flag - adds {i} as placeholder for an instance object. More...
 
#define AMXD_OBJECT_PARAM   0x01
 List and describe flag. More...
 
#define AMXD_OBJECT_FUNC   0x02
 List and describe flag. More...
 
#define AMXD_OBJECT_CHILD   0x04
 List flag. More...
 
#define AMXD_OBJECT_INSTANCE   0x08
 List flag. More...
 
#define AMXD_OBJECT_NO_BASE   0x10
 List and describe flag. More...
 
#define AMXD_TEMPLATE_INFO   0x20
 List and describe flag. More...
 
#define AMXD_OBJECT_ALL
 List and describe flag. More...
 

Typedefs

typedef enum _amxd_dm_access amxd_dm_access_t
 Access level. More...
 
typedef enum _amxd_object_type amxd_object_type_t
 The different object types. More...
 
typedef enum _amxd_oattr_id amxd_oattr_id_t
 The object attributes. More...
 
typedef enum _amxd_aattr_id amxd_aattr_id_t
 The method argument attributes. More...
 
typedef enum _amxd_fattr_id amxd_fattr_id_t
 The method attributes. More...
 

Enumerations

enum  _amxd_dm_access { amxd_dm_access_public , amxd_dm_access_protected , amxd_dm_access_private }
 Access level. More...
 
enum  _amxd_object_type {
  amxd_object_root , amxd_object_singleton , amxd_object_template , amxd_object_instance ,
  amxd_object_mib , amxd_object_invalid
}
 The different object types. More...
 
enum  _amxd_oattr_id {
  amxd_oattr_read_only , amxd_oattr_persistent , amxd_oattr_private , amxd_oattr_locked ,
  amxd_oattr_protected , amxd_oattr_max = amxd_oattr_protected
}
 The object attributes. More...
 
enum  _amxd_aattr_id {
  amxd_aattr_in , amxd_aattr_out , amxd_aattr_mandatory , amxd_aattr_strict ,
  amxd_aattr_max = amxd_aattr_strict
}
 The method argument attributes. More...
 
enum  _amxd_fattr_id {
  amxd_fattr_template , amxd_fattr_instance , amxd_fattr_private , amxd_fattr_protected ,
  amxd_fattr_async , amxd_fattr_max = amxd_fattr_async
}
 The method attributes. More...
 

Detailed Description

Macro Definition Documentation

◆ AMXD_OBJECT_ALL

#define AMXD_OBJECT_ALL
Value:
AMXD_OBJECT_FUNC | \
AMXD_OBJECT_CHILD | \
AMXD_OBJECT_INSTANCE
#define AMXD_OBJECT_PARAM
List and describe flag.
Definition: amxd_object.h:244

List and describe flag.

This combines all list and describe flags, except AMXD_OBJECT_NO_BASE

Definition at line 328 of file amxd_object.h.

◆ AMXD_OBJECT_CHILD

#define AMXD_OBJECT_CHILD   0x04

List flag.

All child objects (sub-objects) of the object are added to the list.

This flag can be used in these functions:

Definition at line 273 of file amxd_object.h.

◆ AMXD_OBJECT_EXTENDED

#define AMXD_OBJECT_EXTENDED   0x02

Path format flag - set name or index of instrance objects between '[' and ']'.

This flag can be used in these functions:

Definition at line 188 of file amxd_object.h.

◆ AMXD_OBJECT_FUNC

#define AMXD_OBJECT_FUNC   0x02

List and describe flag.

When used in amxd_object_list all functions of the object are added to the list.

When used in amxd_object_describe all functions of the object are described.

This flag can be used in these functions:

Definition at line 260 of file amxd_object.h.

◆ AMXD_OBJECT_INDEXED

#define AMXD_OBJECT_INDEXED   0x01

Name and path format flag - use index for instance objects.

Definition at line 176 of file amxd_object.h.

◆ AMXD_OBJECT_INSTANCE

#define AMXD_OBJECT_INSTANCE   0x08

List flag.

All instance of the object are added to the list. This flag only has effect when used on a multi-instance object.

This flag can be used in these functions:

Definition at line 287 of file amxd_object.h.

◆ AMXD_OBJECT_NAMED

#define AMXD_OBJECT_NAMED   0x00

Name and path format flag - default behavior, use name for instance objects.

Definition at line 164 of file amxd_object.h.

◆ AMXD_OBJECT_NO_BASE

#define AMXD_OBJECT_NO_BASE   0x10

List and describe flag.

When this flag is set, no base object functions are added to the list or describe table.

This flag can be used in these functions:

Definition at line 301 of file amxd_object.h.

◆ AMXD_OBJECT_PARAM

#define AMXD_OBJECT_PARAM   0x01

List and describe flag.

When used in amxd_object_list all parameters of the object are added.

When used in amxd_object_describe all parameters of the object are described.

This flag can be used in these functions:

Definition at line 244 of file amxd_object.h.

◆ AMXD_OBJECT_REGEXP

#define AMXD_OBJECT_REGEXP   0x04

Path format flag - create path that can be used as regular expression.

Using this flag will make sure that all dots are excaped.

This flag can be used in these functions:

Definition at line 202 of file amxd_object.h.

◆ AMXD_OBJECT_SUPPORTED

#define AMXD_OBJECT_SUPPORTED   0x10

Path format flag - adds {i} as placeholder for an instance object.

This flag can be used in these functions:

Definition at line 226 of file amxd_object.h.

◆ AMXD_OBJECT_TERMINATE

#define AMXD_OBJECT_TERMINATE   0x08

Path format flag - when set the object path is terminated with a dot.

This flag can be used in these functions:

Definition at line 214 of file amxd_object.h.

◆ AMXD_TEMPLATE_INFO

#define AMXD_TEMPLATE_INFO   0x20

List and describe flag.

When this flag is set, all parameters, functions and sub-objects are included.

This flag can be used in these functions:

Definition at line 314 of file amxd_object.h.

Typedef Documentation

◆ amxd_aattr_id_t

The method argument attributes.

◆ amxd_dm_access_t

Access level.

◆ amxd_fattr_id_t

The method attributes.

◆ amxd_oattr_id_t

The object attributes.

◆ amxd_object_type_t

The different object types.

Each object is of one of these types. Some of these types can be used in the constructor functions to specify the type of object you want to create,

Enumeration Type Documentation

◆ _amxd_aattr_id

The method argument attributes.

Enumerator
amxd_aattr_in 

is an in argument

amxd_aattr_out 

is an out argument

amxd_aattr_mandatory 

argument is mandatory

amxd_aattr_strict 

argument type is strict, no conversions are applied

amxd_aattr_max 

Definition at line 282 of file amxd_types.h.

282  {
283  amxd_aattr_in,
enum _amxd_aattr_id amxd_aattr_id_t
The method argument attributes.
@ amxd_aattr_max
Definition: amxd_types.h:287
@ amxd_aattr_strict
Definition: amxd_types.h:286
@ amxd_aattr_in
Definition: amxd_types.h:283
@ amxd_aattr_mandatory
Definition: amxd_types.h:285
@ amxd_aattr_out
Definition: amxd_types.h:284

◆ _amxd_dm_access

Access level.

Enumerator
amxd_dm_access_public 

public access, all services or applications working on behalf of external applications like browser, usp agent, ... - should use this access level

amxd_dm_access_protected 

protected access, all services or applications running in the same environment can use this access level

amxd_dm_access_private 

private access, the process owning a data model can use private access to access private members of the data model. Remote process can never use private access.

Definition at line 135 of file amxd_types.h.

135  {
enum _amxd_dm_access amxd_dm_access_t
Access level.
@ amxd_dm_access_private
Definition: amxd_types.h:141
@ amxd_dm_access_protected
Definition: amxd_types.h:139
@ amxd_dm_access_public
Definition: amxd_types.h:136

◆ _amxd_fattr_id

The method attributes.

Enumerator
amxd_fattr_template 

Method can be called on template objects

amxd_fattr_instance 

Method can be called on instance objects

amxd_fattr_private 

The method is private. It can only used internally in the application, remote clients will have no access to it, the object will not be visible in introspection.

amxd_fattr_protected 

The method is protected. External clients (webui, usp controllers, ...) can not call this method. Other process on the system can call the method.

amxd_fattr_async 

Indicate that this function is handled asynchronously

amxd_fattr_max 

Definition at line 310 of file amxd_types.h.

310  {
enum _amxd_fattr_id amxd_fattr_id_t
The method attributes.
@ amxd_fattr_max
Definition: amxd_types.h:322
@ amxd_fattr_template
Definition: amxd_types.h:311
@ amxd_fattr_async
Definition: amxd_types.h:321
@ amxd_fattr_private
Definition: amxd_types.h:313
@ amxd_fattr_protected
Definition: amxd_types.h:317
@ amxd_fattr_instance
Definition: amxd_types.h:312

◆ _amxd_oattr_id

The object attributes.

Enumerator
amxd_oattr_read_only 

The object is read only

amxd_oattr_persistent 

The object is persistent and should be stored in local persistent storage the object is saved

amxd_oattr_private 

The object is private. It can only used internally in the application, remote clients will have no access to it, the object will not be visible in introspection.

amxd_oattr_locked 

The object is locked. No functions or parameters can be added when an object is locked. Attributes of the object can not be changed anymore after locking the object

amxd_oattr_protected 
amxd_oattr_max 

Definition at line 198 of file amxd_types.h.

198  {
enum _amxd_oattr_id amxd_oattr_id_t
The object attributes.
@ amxd_oattr_read_only
Definition: amxd_types.h:199
@ amxd_oattr_locked
Definition: amxd_types.h:206
@ amxd_oattr_protected
Definition: amxd_types.h:210
@ amxd_oattr_max
Definition: amxd_types.h:211
@ amxd_oattr_persistent
Definition: amxd_types.h:200
@ amxd_oattr_private
Definition: amxd_types.h:202

◆ _amxd_object_type

The different object types.

Each object is of one of these types. Some of these types can be used in the constructor functions to specify the type of object you want to create,

Enumerator
amxd_object_root 

The root object, only one exists for each data model and is automatically created when calling amxd_dm_init

amxd_object_singleton 

Singleton object, can be created using amxd_object_new

amxd_object_template 

Template object, can be created using amxd_object_new. Instances of a template object can be created using amxd_object_new_instance

amxd_object_instance 

Instance object, the parent of an instance object is always a template object

amxd_object_mib 

A mib object does not have a parent, a mib can be used to extend other objects

amxd_object_invalid 

Should not be used

Definition at line 177 of file amxd_types.h.

177  {
enum _amxd_object_type amxd_object_type_t
The different object types.
@ amxd_object_root
Definition: amxd_types.h:178
@ amxd_object_template
Definition: amxd_types.h:183
@ amxd_object_mib
Definition: amxd_types.h:188
@ amxd_object_singleton
Definition: amxd_types.h:181
@ amxd_object_instance
Definition: amxd_types.h:186
@ amxd_object_invalid
Definition: amxd_types.h:190