Esempio n. 1
0
void free_amq_field_list_cls( amq_field_list_cls *obj) {
  if (obj && obj->field_list) {
	asl_field_list_destroy (&(obj->field_list));
    obj->field_list=0;
  }
  if (obj)
    free(obj);
}
Esempio n. 2
0
void
    asl_field_selftest (
void)
{
asl_field_list_t
    *list,                          //  List of fields
    *embedded_list;                 //  List embedded in the top list
asl_field_t
    *field,                         //  One field in list
    *embedded_field;                //  Field in the embedded list
icl_longstr_t
    *string;                        //  Serialised field list

//
//  We create a new empty list by passing it a null string
//
list = asl_field_list_new (NULL);

//  To add fields to the list, we use these methods, which
//  do not return any values.
//
asl_field_new_string  (list, "string",  "ring a ding ding");
asl_field_new_integer (list, "integer", 123456789);
asl_field_new_decimal (list, "decimal", 123456789, 3);
asl_field_new_time    (list, "time",    123456789);
asl_field_new_void    (list, "void");
embedded_list = asl_field_list_new (NULL);
asl_field_new_string  (embedded_list, "string",  "hello world");
asl_field_new_integer (embedded_list, "integer", 654321);
asl_field_new_field_table (list, "table", embedded_list);
asl_field_list_unlink (&embedded_list);

//  When we want to send a field list, we flatten it into a
//  string, which the list_flatten method allocates for us.
//
string = asl_field_list_flatten (list);
asl_field_list_destroy (&list);

//  Let's recreate the list and check that it's correct
list = asl_field_list_new (string);

field = asl_field_list_search (list, "string");
assert (streq (asl_field_string (field), "ring a ding ding"));
asl_field_unlink (&field);

field = asl_field_list_search (list, "integer");
assert (asl_field_integer (field) == 123456789);
assert (streq (asl_field_string (field), "123456789"));
asl_field_unlink (&field);

field = asl_field_list_search (list, "decimal");
assert (asl_field_integer (field) == 123456);
assert (streq (asl_field_string (field), "123457"));
asl_field_unlink (&field);

field = asl_field_list_search (list, "time");
assert (asl_field_integer (field) == 123456789);
asl_field_unlink (&field);

field = asl_field_list_search (list, "void");
assert (asl_field_integer (field) == 0);
asl_field_unlink (&field);

field = asl_field_list_search (list, "table");
embedded_list = asl_field_field_table (field);
embedded_field = asl_field_list_search (embedded_list, "string");
assert (streq (asl_field_string (embedded_field), "hello world"));
asl_field_unlink (&embedded_field);
embedded_field = asl_field_list_search (embedded_list, "integer");
assert (asl_field_integer (embedded_field) == 654321);
asl_field_unlink (&embedded_field);
asl_field_list_unlink (&embedded_list);
asl_field_unlink (&field);

//  We must destroy the flat string when finished with it
asl_field_list_destroy (&list);
icl_longstr_destroy (&string);
}