Esempio n. 1
0
static void
_struct_properties_init(void)
{
   typedef struct _This_Esql_Model_Table_Properties
     {
        const char *database;
        const char *table;
     } This_Esql_Model_Table_Properties;

   static Eina_Value_Struct_Member prop_members[] = {
     EINA_VALUE_STRUCT_MEMBER(NULL, This_Esql_Model_Table_Properties, database),
     EINA_VALUE_STRUCT_MEMBER(NULL, This_Esql_Model_Table_Properties, table),
   };
   prop_members[ESQL_MODEL_TABLE_PROP_DATABASE].type = EINA_VALUE_TYPE_STRING;
   prop_members[ESQL_MODEL_TABLE_PROP_TABLE].type = EINA_VALUE_TYPE_STRING;

   static Eina_Value_Struct_Desc prop_desc = {
     EINA_VALUE_STRUCT_DESC_VERSION,
     NULL, // no special operations
     prop_members,
     EINA_C_ARRAY_LENGTH(prop_members),
     sizeof(This_Esql_Model_Table_Properties)
   };
   ESQL_MODEL_TABLE_PROPERTIES_DESC = &prop_desc;
}
static void
_fill_receive_array_of_string_int_with_size(Eldbus_Message *msg, int size, const char *array[])
{
   Eina_Value *value_struct, *value_array;
   int i;
   unsigned offset;
   Eina_Value_Struct_Member main_members[2];
   Eina_Value_Struct_Member sub_members[] = {
      EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_STRING, sub_struct, txt),
      EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, sub_struct, num)
   };
   Eina_Value_Struct_Desc desc_sub_struct = {
      EINA_VALUE_STRUCT_DESC_VERSION,
      NULL, // no special operations
      sub_members,
      2,
      sizeof(sub_struct)
   };
   Eina_Value_Struct_Desc desc_struct = {
      EINA_VALUE_STRUCT_DESC_VERSION,
      NULL, // no special operations
      main_members,
      2,
      0//will be set below
   };

   offset = _type_offset(sizeof(int), sizeof(Eina_Value_Array));
   main_members[0].name = "size";
   main_members[0].type = EINA_VALUE_TYPE_INT, 0;
   main_members[0].offset = 0;
   main_members[1].name = "array";
   main_members[1].type = EINA_VALUE_TYPE_ARRAY;
   main_members[1].offset = offset;
   desc_struct.size = offset + sizeof(Eina_Value_Array);

   value_struct = eina_value_struct_new(&desc_struct);
   eina_value_struct_set(value_struct, "size", size);

   value_array = eina_value_array_new(EINA_VALUE_TYPE_STRUCT, size);
   for (i = 0; i < size; i++)
     {
        Eina_Value *value_sub_struct = eina_value_struct_new(&desc_sub_struct);
        Eina_Value_Struct st;
        eina_value_struct_set(value_sub_struct, "txt", array[i]);
        eina_value_struct_set(value_sub_struct, "num", i);
        eina_value_get(value_sub_struct, &st);
        eina_value_array_append(value_array, st);
        eina_value_free(value_sub_struct);
     }
   eina_value_struct_value_set(value_struct, "array", value_array);

   eldbus_message_from_eina_value("ia(si)", msg, value_struct);

   eina_value_free(value_struct);
   eina_value_free(value_array);
}
Esempio n. 3
0
void value_init(void)
{
   typedef struct _My_Struct_V1 {
     int param1;
     char param2;
   } My_Struct_V1;


   static Eina_Value_Struct_Member v1_members[] = {
     // no eina_value_type as they are not constant initializers, see below.
     EINA_VALUE_STRUCT_MEMBER(NULL, My_Struct_V1, param1),
     EINA_VALUE_STRUCT_MEMBER(NULL, My_Struct_V1, param2)
   };
   v1_members[0].type = EINA_VALUE_TYPE_INT;
   v1_members[1].type = EINA_VALUE_TYPE_CHAR;
   static Eina_Value_Struct_Desc v1_desc = {
     EINA_VALUE_STRUCT_DESC_VERSION,
     NULL, // no special operations
     v1_members,
     EINA_C_ARRAY_LENGTH(v1_members),
     sizeof(My_Struct_V1)
   };
   V1_DESC = &v1_desc;

   typedef struct _My_Struct_V2 {
     int param1;
     char param2;
     int param3;
   } My_Struct_V2;
   static Eina_Value_Struct_Member v2_members[] = {
     // no eina_value_type as they are not constant initializers, see below.
     EINA_VALUE_STRUCT_MEMBER(NULL, My_Struct_V2, param1),
     EINA_VALUE_STRUCT_MEMBER(NULL, My_Struct_V2, param2),
     EINA_VALUE_STRUCT_MEMBER(NULL, My_Struct_V2, param3)
   };
   v2_members[0].type = EINA_VALUE_TYPE_INT;
   v2_members[1].type = EINA_VALUE_TYPE_CHAR;
   v2_members[2].type = EINA_VALUE_TYPE_INT;
   static Eina_Value_Struct_Desc v2_desc = {
     EINA_VALUE_STRUCT_DESC_VERSION,
     NULL, // no special operations
     v2_members,
     EINA_C_ARRAY_LENGTH(v2_members),
     sizeof(My_Struct_V2)
   };
   V2_DESC = &v2_desc;
}