libamxd  6.4.1
Data Model Manager
amxd_transaction.h File Reference

Ambiorix Data Model API header file. More...

#include <amxd/amxd_types.h>

Go to the source code of this file.

Data Structures

struct  _amxd_trans_attr
 
struct  _amxd_trans_action
 
struct  _amxd_transaction
 

Macros

#define amxd_trans_set_value(type, trans, name, value)    amxd_trans_set_ ## type(trans, name, value)
 Helper macro for setting a value. More...
 

Typedefs

typedef enum _amxd_tattr_id amxd_tattr_id_t
 Transaction attributes. More...
 
typedef struct _amxd_trans_attr amxd_trans_attr_t
 
typedef struct _amxd_trans_action amxd_trans_action_t
 
typedef struct _amxd_transaction amxd_trans_t
 

Enumerations

enum  _amxd_tattr_id { amxd_tattr_change_ro , amxd_tattr_change_pub , amxd_tattr_change_prot , amxd_tattr_change_priv }
 Transaction attributes. More...
 

Functions

amxd_status_t amxd_trans_init (amxd_trans_t *const trans)
 Initializes a transaction object. More...
 
void amxd_trans_clean (amxd_trans_t *const trans)
 Cleans the transaction object. More...
 
amxd_status_t amxd_trans_new (amxd_trans_t **trans)
 Allocates a transaction object on the heap and initializes it. More...
 
void amxd_trans_delete (amxd_trans_t **trans)
 Frees the memory previously allocated for a transaction object. More...
 
amxd_status_t amxd_trans_set_attr (amxd_trans_t *trans, amxd_tattr_id_t attr, bool enable)
 Set the transaction attributes. More...
 
amxd_status_t amxd_trans_add_action (amxd_trans_t *const trans, const amxd_action_t reason, const amxc_var_t *data)
 Adds an action to a transaction. More...
 
amxd_status_t amxd_trans_select_pathf (amxd_trans_t *const trans, const char *path,...) __attribute__((format(printf
 Selects an object using a absolute or relative path. More...
 
amxd_status_t amxd_status_t amxd_trans_select_object (amxd_trans_t *trans, const amxd_object_t *const object)
 Selects an object using an object pointer. More...
 
amxd_status_t amxd_trans_set_param (amxd_trans_t *const trans, const char *param_name, amxc_var_t *const value)
 Adds a set value action to a transaction. More...
 
amxd_status_t amxd_trans_add_inst (amxd_trans_t *const trans, const uint32_t index, const char *name)
 Adds an instance add action to a transaction. More...
 
amxd_status_t amxd_trans_del_inst (amxd_trans_t *const trans, const uint32_t index, const char *name)
 Adds an instance delete action to a transaction. More...
 
amxd_status_t amxd_trans_add_mib (amxd_trans_t *const trans, const char *mib_name)
 
amxd_status_t amxd_trans_apply (amxd_trans_t *const trans, amxd_dm_t *const dm)
 Applies all previously added actions. More...
 
void amxd_trans_dump (const amxd_trans_t *const trans, const int fd, const bool reverse)
 Dumps the transaction to a file descriptor. More...
 
static amxd_status_t amxd_trans_set_cstring_t (amxd_trans_t *const trans, const char *name, const char *value)
 
static amxd_status_t amxd_trans_set_csv_string_t (amxd_trans_t *const trans, const char *name, const char *value)
 
static amxd_status_t amxd_trans_set_ssv_string_t (amxd_trans_t *const trans, const char *name, const char *value)
 
static amxd_status_t amxd_trans_set_bool (amxd_trans_t *const trans, const char *name, bool value)
 
static amxd_status_t amxd_trans_set_int8_t (amxd_trans_t *const trans, const char *name, int8_t value)
 
static amxd_status_t amxd_trans_set_uint8_t (amxd_trans_t *const trans, const char *name, uint8_t value)
 
static amxd_status_t amxd_trans_set_int16_t (amxd_trans_t *const trans, const char *name, int16_t value)
 
static amxd_status_t amxd_trans_set_uint16_t (amxd_trans_t *const trans, const char *name, uint16_t value)
 
static amxd_status_t amxd_trans_set_int32_t (amxd_trans_t *const trans, const char *name, int32_t value)
 
static amxd_status_t amxd_trans_set_uint32_t (amxd_trans_t *const trans, const char *name, uint32_t value)
 
static amxd_status_t amxd_trans_set_int64_t (amxd_trans_t *const trans, const char *name, int64_t value)
 
static amxd_status_t amxd_trans_set_uint64_t (amxd_trans_t *const trans, const char *name, uint64_t value)
 
static amxd_status_t amxd_trans_set_double (amxd_trans_t *const trans, const char *name, double value)
 
static amxd_status_t amxd_trans_set_amxc_ts_t (amxd_trans_t *const trans, const char *name, amxc_ts_t *value)
 

Detailed Description

Ambiorix Data Model API header file.

Definition in file amxd_transaction.h.

Typedef Documentation

◆ amxd_trans_action_t

◆ amxd_trans_attr_t

◆ amxd_trans_t

Function Documentation

◆ amxd_trans_add_mib()

amxd_status_t amxd_trans_add_mib ( amxd_trans_t *const  trans,
const char *  mib_name 
)

Definition at line 815 of file amxd_transaction.c.

816  {
818  amxd_trans_action_t* action = NULL;
819 
820  when_null(trans, exit);
821 
823  when_null(action, exit);
824  when_str_empty(mib_name, exit);
825 
826  when_null(amxc_var_add_key(cstring_t,
827  &action->data,
828  "mib",
829  mib_name),
830  exit);
831 
833 
834 exit:
835  if(trans != NULL) {
836  trans->status = status;
837  }
838  return status;
839 }
static amxd_trans_action_t * amxd_trans_new_action(amxd_trans_t *trans, amxd_action_t reason)
@ action_object_add_mib
Definition: amxd_types.h:126
enum _amxd_status amxd_status_t
@ amxd_status_ok
Definition: amxd_types.h:78
@ amxd_status_unknown_error
Definition: amxd_types.h:79
amxd_status_t status
static amxd_status_t status

◆ amxd_trans_set_amxc_ts_t()

static amxd_status_t amxd_trans_set_amxc_ts_t ( amxd_trans_t *const  trans,
const char *  name,
amxc_ts_t *  value 
)
inlinestatic

Definition at line 651 of file amxd_transaction.h.

653  {
655  amxc_var_t new_value;
656 
657  amxc_var_init(&new_value);
658  amxc_var_set(amxc_ts_t, &new_value, value);
659  status = amxd_trans_set_param(trans, name, &new_value);
660 
661  amxc_var_clean(&new_value);
662  return status;
663 }
amxd_status_t amxd_trans_set_param(amxd_trans_t *const trans, const char *param_name, amxc_var_t *const value)
Adds a set value action to a transaction.

◆ amxd_trans_set_bool()

static amxd_status_t amxd_trans_set_bool ( amxd_trans_t *const  trans,
const char *  name,
bool  value 
)
inlinestatic

Definition at line 501 of file amxd_transaction.h.

503  {
505  amxc_var_t new_value;
506 
507  amxc_var_init(&new_value);
508  amxc_var_set(bool, &new_value, value);
509  status = amxd_trans_set_param(trans, name, &new_value);
510 
511  amxc_var_clean(&new_value);
512  return status;
513 }

◆ amxd_trans_set_cstring_t()

static amxd_status_t amxd_trans_set_cstring_t ( amxd_trans_t *const  trans,
const char *  name,
const char *  value 
)
inlinestatic

Definition at line 456 of file amxd_transaction.h.

458  {
460  amxc_var_t new_value;
461 
462  amxc_var_init(&new_value);
463  amxc_var_set(cstring_t, &new_value, value);
464  status = amxd_trans_set_param(trans, name, &new_value);
465 
466  amxc_var_clean(&new_value);
467  return status;
468 }

◆ amxd_trans_set_csv_string_t()

static amxd_status_t amxd_trans_set_csv_string_t ( amxd_trans_t *const  trans,
const char *  name,
const char *  value 
)
inlinestatic

Definition at line 471 of file amxd_transaction.h.

473  {
475  amxc_var_t new_value;
476 
477  amxc_var_init(&new_value);
478  amxc_var_set(csv_string_t, &new_value, value);
479  status = amxd_trans_set_param(trans, name, &new_value);
480 
481  amxc_var_clean(&new_value);
482  return status;
483 }

◆ amxd_trans_set_double()

static amxd_status_t amxd_trans_set_double ( amxd_trans_t *const  trans,
const char *  name,
double  value 
)
inlinestatic

Definition at line 636 of file amxd_transaction.h.

638  {
640  amxc_var_t new_value;
641 
642  amxc_var_init(&new_value);
643  amxc_var_set(double, &new_value, value);
644  status = amxd_trans_set_param(trans, name, &new_value);
645 
646  amxc_var_clean(&new_value);
647  return status;
648 }

◆ amxd_trans_set_int16_t()

static amxd_status_t amxd_trans_set_int16_t ( amxd_trans_t *const  trans,
const char *  name,
int16_t  value 
)
inlinestatic

Definition at line 546 of file amxd_transaction.h.

548  {
550  amxc_var_t new_value;
551 
552  amxc_var_init(&new_value);
553  amxc_var_set(int16_t, &new_value, value);
554  status = amxd_trans_set_param(trans, name, &new_value);
555 
556  amxc_var_clean(&new_value);
557  return status;
558 }

◆ amxd_trans_set_int32_t()

static amxd_status_t amxd_trans_set_int32_t ( amxd_trans_t *const  trans,
const char *  name,
int32_t  value 
)
inlinestatic

Definition at line 576 of file amxd_transaction.h.

578  {
580  amxc_var_t new_value;
581 
582  amxc_var_init(&new_value);
583  amxc_var_set(int32_t, &new_value, value);
584  status = amxd_trans_set_param(trans, name, &new_value);
585 
586  amxc_var_clean(&new_value);
587  return status;
588 }

◆ amxd_trans_set_int64_t()

static amxd_status_t amxd_trans_set_int64_t ( amxd_trans_t *const  trans,
const char *  name,
int64_t  value 
)
inlinestatic

Definition at line 606 of file amxd_transaction.h.

608  {
610  amxc_var_t new_value;
611 
612  amxc_var_init(&new_value);
613  amxc_var_set(int64_t, &new_value, value);
614  status = amxd_trans_set_param(trans, name, &new_value);
615 
616  amxc_var_clean(&new_value);
617  return status;
618 }

◆ amxd_trans_set_int8_t()

static amxd_status_t amxd_trans_set_int8_t ( amxd_trans_t *const  trans,
const char *  name,
int8_t  value 
)
inlinestatic

Definition at line 516 of file amxd_transaction.h.

518  {
520  amxc_var_t new_value;
521 
522  amxc_var_init(&new_value);
523  amxc_var_set(int8_t, &new_value, value);
524  status = amxd_trans_set_param(trans, name, &new_value);
525 
526  amxc_var_clean(&new_value);
527  return status;
528 }

◆ amxd_trans_set_ssv_string_t()

static amxd_status_t amxd_trans_set_ssv_string_t ( amxd_trans_t *const  trans,
const char *  name,
const char *  value 
)
inlinestatic

Definition at line 486 of file amxd_transaction.h.

488  {
490  amxc_var_t new_value;
491 
492  amxc_var_init(&new_value);
493  amxc_var_set(ssv_string_t, &new_value, value);
494  status = amxd_trans_set_param(trans, name, &new_value);
495 
496  amxc_var_clean(&new_value);
497  return status;
498 }

◆ amxd_trans_set_uint16_t()

static amxd_status_t amxd_trans_set_uint16_t ( amxd_trans_t *const  trans,
const char *  name,
uint16_t  value 
)
inlinestatic

Definition at line 561 of file amxd_transaction.h.

563  {
565  amxc_var_t new_value;
566 
567  amxc_var_init(&new_value);
568  amxc_var_set(uint16_t, &new_value, value);
569  status = amxd_trans_set_param(trans, name, &new_value);
570 
571  amxc_var_clean(&new_value);
572  return status;
573 }

◆ amxd_trans_set_uint32_t()

static amxd_status_t amxd_trans_set_uint32_t ( amxd_trans_t *const  trans,
const char *  name,
uint32_t  value 
)
inlinestatic

Definition at line 591 of file amxd_transaction.h.

593  {
595  amxc_var_t new_value;
596 
597  amxc_var_init(&new_value);
598  amxc_var_set(uint32_t, &new_value, value);
599  status = amxd_trans_set_param(trans, name, &new_value);
600 
601  amxc_var_clean(&new_value);
602  return status;
603 }

◆ amxd_trans_set_uint64_t()

static amxd_status_t amxd_trans_set_uint64_t ( amxd_trans_t *const  trans,
const char *  name,
uint64_t  value 
)
inlinestatic

Definition at line 621 of file amxd_transaction.h.

623  {
625  amxc_var_t new_value;
626 
627  amxc_var_init(&new_value);
628  amxc_var_set(uint64_t, &new_value, value);
629  status = amxd_trans_set_param(trans, name, &new_value);
630 
631  amxc_var_clean(&new_value);
632  return status;
633 }

◆ amxd_trans_set_uint8_t()

static amxd_status_t amxd_trans_set_uint8_t ( amxd_trans_t *const  trans,
const char *  name,
uint8_t  value 
)
inlinestatic

Definition at line 531 of file amxd_transaction.h.

533  {
535  amxc_var_t new_value;
536 
537  amxc_var_init(&new_value);
538  amxc_var_set(uint8_t, &new_value, value);
539  status = amxd_trans_set_param(trans, name, &new_value);
540 
541  amxc_var_clean(&new_value);
542  return status;
543 }