libamxp  1.4.0
Patterns C Implementation
variant_siginfo.c File Reference
#include <stdlib.h>
#include <string.h>
#include <amxc/amxc_macros.h>
#include <amxc/amxc.h>
#include <amxp/variant_siginfo.h>

Go to the source code of this file.

Functions

static int variant_siginfo_init (amxc_var_t *const var)
 
static void variant_siginfo_delete (amxc_var_t *var)
 
static int variant_siginfo_copy (amxc_var_t *const dest, const amxc_var_t *const src)
 
static int variant_siginfo_move (amxc_var_t *const dest, amxc_var_t *const src)
 
 CONSTRUCTOR_LVL (200)
 
 DESTRUCTOR_LVL (200)
 
const amxp_siginfo_tamxc_var_get_const_amxp_siginfo_t (const amxc_var_t *const var)
 
int amxc_var_set_amxp_siginfo_t (amxc_var_t *const var, const amxp_siginfo_t *const val)
 

Variables

static amxc_var_type_t variant_siginfo
 

Function Documentation

◆ amxc_var_get_const_amxp_siginfo_t()

const amxp_siginfo_t* amxc_var_get_const_amxp_siginfo_t ( const amxc_var_t *const  var)

Definition at line 125 of file variant_siginfo.c.

125  {
126  const amxp_siginfo_t* retval = NULL;
127 
128 
129  when_null(var, exit);
130  when_true(var->type_id != AMXC_VAR_ID_SIGINFO, exit);
131 
132  retval = (amxp_siginfo_t*) var->data.data;
133 exit:
134  return retval;
135 
136 }
struct signalfd_siginfo amxp_siginfo_t
#define AMXC_VAR_ID_SIGINFO

◆ amxc_var_set_amxp_siginfo_t()

int amxc_var_set_amxp_siginfo_t ( amxc_var_t *const  var,
const amxp_siginfo_t *const  val 
)

Definition at line 138 of file variant_siginfo.c.

138  {
139  int retval = -1;
140 
141  when_null(var, exit);
142  when_null(val, exit);
143  when_failed(amxc_var_set_type(var, AMXC_VAR_ID_SIGINFO), exit);
144 
145  memcpy(var->data.data, val, sizeof(amxp_siginfo_t));
146 
147  retval = 0;
148 
149 exit:
150  return retval;
151 }

◆ CONSTRUCTOR_LVL()

CONSTRUCTOR_LVL ( 200  )

Definition at line 117 of file variant_siginfo.c.

117  {
118  amxc_var_register_type(&variant_siginfo);
119 }
static amxc_var_type_t variant_siginfo

◆ DESTRUCTOR_LVL()

DESTRUCTOR_LVL ( 200  )

Definition at line 121 of file variant_siginfo.c.

121  {
122  amxc_var_unregister_type(&variant_siginfo);
123 }

◆ variant_siginfo_copy()

static int variant_siginfo_copy ( amxc_var_t *const  dest,
const amxc_var_t *const  src 
)
static

Definition at line 80 of file variant_siginfo.c.

81  {
82  int retval = -1;
83  const amxp_siginfo_t* src_var_siginfo = (amxp_siginfo_t*) src->data.data;
84  amxp_siginfo_t* dest_var_siginfo = (amxp_siginfo_t*) dest->data.data;
85 
86  memcpy(dest_var_siginfo, src_var_siginfo, sizeof(amxp_siginfo_t));
87 
88  retval = 0;
89 
90  return retval;
91 }

◆ variant_siginfo_delete()

static void variant_siginfo_delete ( amxc_var_t *  var)
static

Definition at line 74 of file variant_siginfo.c.

74  {
75  amxp_siginfo_t* var_siginfo = (amxp_siginfo_t*) var->data.data;
76  var->data.data = NULL;
77  free(var_siginfo);
78 }

◆ variant_siginfo_init()

static int variant_siginfo_init ( amxc_var_t *const  var)
static

Definition at line 62 of file variant_siginfo.c.

62  {
63  int retval = -1;
64  amxp_siginfo_t* var_siginfo = (amxp_siginfo_t*) calloc(1, sizeof(amxp_siginfo_t));
65  when_null(var_siginfo, exit);
66 
67  var->data.data = var_siginfo;
68  retval = 0;
69 
70 exit:
71  return retval;
72 }

◆ variant_siginfo_move()

static int variant_siginfo_move ( amxc_var_t *const  dest,
amxc_var_t *const  src 
)
static

Definition at line 93 of file variant_siginfo.c.

94  {
95  dest->data = src->data;
96  src->data.data = NULL;
97  return 0;
98 }

Variable Documentation

◆ variant_siginfo

amxc_var_type_t variant_siginfo
static
Initial value:
= {
.convert_from = NULL,
.convert_to = NULL,
.compare = NULL,
.get_key = NULL,
.set_key = NULL,
.get_index = NULL,
.set_index = NULL,
.type_id = 0,
.hit = { .ait = NULL, .key = NULL, .next = NULL },
}
static int variant_siginfo_copy(amxc_var_t *const dest, const amxc_var_t *const src)
static void variant_siginfo_delete(amxc_var_t *var)
static int variant_siginfo_move(amxc_var_t *const dest, amxc_var_t *const src)
static int variant_siginfo_init(amxc_var_t *const var)
#define AMXC_VAR_NAME_SIGINFO

Definition at line 100 of file variant_siginfo.c.