General addressspace management like register/unregister namespaces.
More...
|
int | ua_addressspace_init (void) |
| Allocate resources for addressspace management. More...
|
|
void | ua_addressspace_clear (void) |
| Remove all registered namespaces from the addressspace and free their resources.
|
|
void | ua_addressspace_config_init (struct ua_addressspace_config *config) |
|
void | ua_addressspace_config_clear (struct ua_addressspace_config *config) |
|
int | ua_addressspace_register (const char *url, struct ua_addressspace_config *config, enum ua_addressspace_index_type type) |
| Registers a new namespace. More...
|
|
int | ua_addressspace_register_static (const char *url, int hashtablesize, struct mem_objectpool_static *nodepool, struct mem_objectpool_static *varpool, struct mem_objectpool_static *vartypepool, struct mem_objectpool_static *refpool, struct mem_objectpool_static *stringpool, const char *const stringtable[], struct mem_objectpool_static *guidpool, struct mem_objectpool_static *dimpool, uint16_t nsidx, unsigned int num_placeholders, enum ua_addressspace_index_type type) |
| Registers a new namespace. More...
|
|
void | ua_addressspace_unregister (uint16_t nsidx) |
| Unregister a namespace from the addressspace. More...
|
|
struct ua_addressspace * | ua_addressspace_getaddr (uint16_t nsidx) |
| Get the pointer to the ua_addressspace struct of a namespace. More...
|
|
struct ua_addressspace * | ua_addressspace_lookup_uri (const char *nsuri) |
| Finds address space context by is URI. More...
|
|
bool | ua_addressspace_is_static (struct ua_addressspace *addr) |
| Returns true if the address space is static. More...
|
|
void | ua_addressspace_set_digest (const unsigned char *digest, size_t len) |
| Set the digest which was used to generate NS0. More...
|
|
bool | ua_addressspace_verify_digest (const unsigned char *digest, size_t len) |
| Returns true if the digest is ok, false otherwise. More...
|
|
void | ua_addressspace_print_stat (uint16_t) |
| Print addressspace statistics for a namespace. More...
|
|
General addressspace management like register/unregister namespaces.
◆ ua_addressspace_index_type
Possible index types for nodes in the addressspace.
Enumerator |
---|
UA_INDEX_BTREE | Index using a binary tree (not implemented).
|
UA_INDEX_HASHTABLE | Index using a hashtable with linked list for collision handling.
|
UA_INDEX_HASHTABLEQP | Index using a hashtable with quadratic probing for collision handling.
|
◆ ua_addressspace_loading_mode
Enumerator |
---|
UA_LOADING_MODE_CREATE | Creates the namespaces that get loaded.
|
UA_LOADING_MODE_UPDATE | Updates the namespace that get loaded.
The namespaces must already exist.
|
◆ ua_addressspace_getaddr()
Get the pointer to the ua_addressspace struct of a namespace.
- Parameters
-
nsidx | Index of the namespace. |
- Returns
- Valid pointer on success or NULL on failure.
◆ ua_addressspace_init()
int ua_addressspace_init |
( |
void |
| ) |
|
Allocate resources for addressspace management.
- Returns
- Zero on success or errorcode on failure.
◆ ua_addressspace_is_static()
Returns true if the address space is static.
Static means it's compiled into the application and is constant. On embedded systems static address space can lie in ROM.
◆ ua_addressspace_lookup_uri()
Finds address space context by is URI.
- Parameters
-
nsuri | Namespace URI of the namespace. |
- Returns
- Valid pointer on success or NULL on failure.
◆ ua_addressspace_print_stat()
void ua_addressspace_print_stat |
( |
uint16_t |
nsidx | ) |
|
Print addressspace statistics for a namespace.
The statistics are printed to trace at level debug and facility session.
- Parameters
-
nsidx | index of namespace to print statistics for |
◆ ua_addressspace_register()
Registers a new namespace.
- Parameters
-
url | URL of namespace. |
config | Address space configuration which defines the pool sizes. |
type | Index type to use for indexing nodes. Note: Using UA_INDEX_HASHTABLEQP is not allowed as deleting nodes would corrupt the hashtable. |
- Returns
- Returns the assigned namespace index or negative errorcode in case of an error.
◆ ua_addressspace_register_static()
int ua_addressspace_register_static |
( |
const char * |
url, |
|
|
int |
hashtablesize, |
|
|
struct mem_objectpool_static * |
nodepool, |
|
|
struct mem_objectpool_static * |
varpool, |
|
|
struct mem_objectpool_static * |
vartypepool, |
|
|
struct mem_objectpool_static * |
refpool, |
|
|
struct mem_objectpool_static * |
stringpool, |
|
|
const char *const |
stringtable[], |
|
|
struct mem_objectpool_static * |
guidpool, |
|
|
struct mem_objectpool_static * |
dimpool, |
|
|
uint16_t |
nsidx, |
|
|
unsigned int |
num_placeholders, |
|
|
enum ua_addressspace_index_type |
type |
|
) |
| |
Registers a new namespace.
- Parameters
-
url | URL of namespace. |
hashtablesize | Size of hashtable for indexing nodes. |
nodepool | Static memory pool of nodes. |
varpool | Static memory pool of variables. |
vartypepool | Static memory pool of variable types. |
refpool | Static memory pool of references. |
stringpool | Static memory pool of strings. |
stringtable | String table with const strings. |
guidpool | Static memory pool of guids. |
nsidx | Requested namespace index. Set to -1 if you don't care. |
num_placeholders | Number of placeholde references that get allocated in RAM. |
type | Index type to use for indexing nodes. |
- Returns
- Returns the assigned namespace index or -1 in case of an error.
◆ ua_addressspace_set_digest()
void ua_addressspace_set_digest |
( |
const unsigned char * |
digest, |
|
|
size_t |
len |
|
) |
| |
Set the digest which was used to generate NS0.
◆ ua_addressspace_unregister()
void ua_addressspace_unregister |
( |
uint16_t |
nsidx | ) |
|
Unregister a namespace from the addressspace.
Remove all nodes from the given namespace.
- Parameters
-
nsidx | index of the namespace to unregister. |
◆ ua_addressspace_verify_digest()
bool ua_addressspace_verify_digest |
( |
const unsigned char * |
digest, |
|
|
size_t |
len |
|
) |
| |
Returns true if the digest is ok, false otherwise.