Пример #1
0
static sched_kw_gruptree_type * sched_kw_gruptree_copyc(const sched_kw_gruptree_type * src) {
  sched_kw_gruptree_type * target = sched_kw_gruptree_alloc_empty();
  hash_iter_type * iter = hash_iter_alloc(src->gruptree_hash);
  const char * kw = hash_iter_get_next_key(iter);
  while (kw != NULL) {
    char * parent_name = hash_get_string(src->gruptree_hash , kw);
    hash_insert_string( target->gruptree_hash , kw , parent_name);
    kw = hash_iter_get_next_key(iter);
  }
  hash_iter_free(iter);
  return target;
}
Пример #2
0
void test_define(config_parser_type * config , const char * config_file) {
  hash_type * pre_defined_kw_map = hash_alloc();
  hash_insert_string(pre_defined_kw_map, "<CONFIG_FILE>", "TEST_VALUE");
  config_content_type * content = config_parse( config , config_file , NULL , NULL , "DEFINE" , pre_defined_kw_map , CONFIG_UNRECOGNIZED_IGNORE , true );
  hash_free(pre_defined_kw_map);
  test_assert_true( config_content_is_instance( content ));
  test_assert_true(config_content_is_valid( content ));
  {
    const subst_list_type * define_list = config_content_get_define_list( content );
    test_assert_true( subst_list_has_key( define_list , "VAR1"));
    test_assert_true( subst_list_has_key( define_list , "VAR2"));
    test_assert_true( subst_list_has_key( define_list , "VARX"));
    test_assert_true( subst_list_has_key( define_list , "<CONFIG_FILE>"));
    test_assert_false( subst_list_has_key( define_list , "VARY"));
    
    
    test_assert_string_equal( subst_list_get_value( define_list , "VAR1") , "100");
    test_assert_string_equal( subst_list_get_value( define_list , "VAR2") , "10");
    test_assert_string_equal( subst_list_get_value( define_list , "VARX") , "1");
    test_assert_string_equal( subst_list_get_value( define_list , "<CONFIG_FILE>") , "TEST_VALUE");
  }

  config_content_free( content );
}
Пример #3
0
pktmeta_type_t
pktmeta_type_from_name(const char *name)
{
    pktmeta_type_t t;
    void *o;
    
    if (s_registered_types == NULL) {
	s_registered_types = hash_new(allocator_shared(),
				      HASHKEYS_STRING, NULL, NULL);
    }
    
    o = hash_lookup_string(s_registered_types, name);
    
    if (o == NULL) {
	/* create new type */
	s_type_counter++; /* after incr s_type_counter is the new type id */
	t = s_type_counter;
	hash_insert_string(s_registered_types, name, (void *) (uint32_t) t);
    } else {
    	t = (pktmeta_type_t) (uint32_t) o;
    }
    
    return t;
}
Пример #4
0
static void sched_kw_gruptree_add_well(sched_kw_gruptree_type * kw , const char * child_group , const char * parent_group) {
  hash_insert_string(kw->gruptree_hash, child_group , parent_group);
}