forked from enlightenment/efl
eolian: remove the remaining superfluous database_ functions
This commit is contained in:
parent
97d9bf37fa
commit
dbf48c0ecc
|
@ -68,133 +68,3 @@ database_class_add(const char *class_name, Eolian_Class_Type type)
|
|||
free(full_name);
|
||||
return cl;
|
||||
}
|
||||
|
||||
/*
|
||||
* ret false -> clash, class = NULL
|
||||
* ret true && class -> only one class corresponding
|
||||
* ret true && !class -> no class corresponding
|
||||
*/
|
||||
Eina_Bool database_class_name_validate(const char *class_name, const Eolian_Class **cl)
|
||||
{
|
||||
char *name = strdup(class_name);
|
||||
char *colon = name + 1;
|
||||
const Eolian_Class *found_class = NULL;
|
||||
const Eolian_Class *candidate;
|
||||
if (cl) *cl = NULL;
|
||||
do
|
||||
{
|
||||
colon = strchr(colon, '.');
|
||||
if (colon) *colon = '\0';
|
||||
candidate = eolian_class_get_by_name(name);
|
||||
if (candidate)
|
||||
{
|
||||
if (found_class)
|
||||
{
|
||||
ERR("Name clash between class %s and class %s",
|
||||
candidate->full_name,
|
||||
found_class->full_name);
|
||||
free(name);
|
||||
return EINA_FALSE; // Names clash
|
||||
}
|
||||
found_class = candidate;
|
||||
}
|
||||
if (colon) *colon++ = '.';
|
||||
}
|
||||
while(colon);
|
||||
if (cl) *cl = found_class;
|
||||
free(name);
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
database_class_inherit_add(Eolian_Class *cl, const char *inherit_class_name)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EINA_FALSE);
|
||||
cl->inherits = eina_list_append(cl->inherits, eina_stringshare_add(inherit_class_name));
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
database_class_description_set(Eolian_Class *cl, const char *description)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN(cl);
|
||||
cl->description = eina_stringshare_add(description);
|
||||
}
|
||||
|
||||
void
|
||||
database_class_legacy_prefix_set(Eolian_Class *cl, const char *legacy_prefix)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN(cl);
|
||||
cl->legacy_prefix = eina_stringshare_add(legacy_prefix);
|
||||
}
|
||||
|
||||
void
|
||||
database_class_eo_prefix_set(Eolian_Class *cl, const char *eo_prefix)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN(cl);
|
||||
cl->eo_prefix = eina_stringshare_add(eo_prefix);
|
||||
}
|
||||
|
||||
void
|
||||
database_class_data_type_set(Eolian_Class *cl, const char *data_type)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN(cl);
|
||||
cl->data_type = eina_stringshare_add(data_type);
|
||||
}
|
||||
|
||||
Eina_Bool database_class_function_add(Eolian_Class *cl, Eolian_Function *fid)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EINA_FALSE);
|
||||
EINA_SAFETY_ON_FALSE_RETURN_VAL(fid && cl, EINA_FALSE);
|
||||
switch (fid->type)
|
||||
{
|
||||
case EOLIAN_PROPERTY:
|
||||
case EOLIAN_PROP_SET:
|
||||
case EOLIAN_PROP_GET:
|
||||
cl->properties = eina_list_append(cl->properties, fid);
|
||||
break;
|
||||
case EOLIAN_METHOD:
|
||||
cl->methods = eina_list_append(cl->methods, fid);
|
||||
break;
|
||||
case EOLIAN_CTOR:
|
||||
cl->constructors = eina_list_append(cl->constructors, fid);
|
||||
break;
|
||||
default:
|
||||
ERR("Bad function type %d.", fid->type);
|
||||
return EINA_FALSE;
|
||||
}
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
database_class_implement_add(Eolian_Class *cl, Eolian_Implement *impl_desc)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(impl_desc, EINA_FALSE);
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EINA_FALSE);
|
||||
cl->implements = eina_list_append(cl->implements, impl_desc);
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
database_class_event_add(Eolian_Class *cl, Eolian_Event *event_desc)
|
||||
{
|
||||
EINA_SAFETY_ON_FALSE_RETURN_VAL(event_desc && cl, EINA_FALSE);
|
||||
cl->events = eina_list_append(cl->events, event_desc);
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
database_class_ctor_enable_set(Eolian_Class *cl, Eina_Bool enable)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EINA_FALSE);
|
||||
cl->class_ctor_enable = enable;
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
database_class_dtor_enable_set(Eolian_Class *cl, Eina_Bool enable)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(cl, EINA_FALSE);
|
||||
cl->class_dtor_enable = enable;
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ _db_fill_key(Eolian_Function *foo_id, Eo_Param_Def *param)
|
|||
param->name,
|
||||
param->comment);
|
||||
foo_id->keys = eina_list_append(foo_id->keys, p);
|
||||
database_parameter_nonull_set(p, param->nonull);
|
||||
p->nonull = param->nonull;
|
||||
param->type = NULL;
|
||||
|
||||
p->base = param->base;
|
||||
|
@ -35,7 +35,7 @@ _db_fill_value(Eolian_Function *foo_id, Eo_Param_Def *param)
|
|||
param->name,
|
||||
param->comment);
|
||||
foo_id->params = eina_list_append(foo_id->params, p);
|
||||
database_parameter_nonull_set(p, param->nonull);
|
||||
p->nonull = param->nonull;
|
||||
param->type = NULL;
|
||||
|
||||
p->base = param->base;
|
||||
|
@ -64,7 +64,7 @@ _db_fill_param(Eolian_Function *foo_id, Eo_Param_Def *param)
|
|||
param->comment);
|
||||
p->param_dir = param->way;
|
||||
foo_id->params = eina_list_append(foo_id->params, p);
|
||||
database_parameter_nonull_set(p, param->nonull);
|
||||
p->nonull = param->nonull;
|
||||
param->type = NULL;
|
||||
|
||||
p->base = param->base;
|
||||
|
@ -145,9 +145,10 @@ _db_fill_accessor(Eolian_Function *foo_id, Eo_Class_Def *kls,
|
|||
}
|
||||
else if (acc_param->is_const)
|
||||
{
|
||||
database_parameter_const_attribute_set(desc,
|
||||
accessor->type == GETTER,
|
||||
EINA_TRUE);
|
||||
if (accessor->type == GETTER)
|
||||
desc->is_const_on_get = EINA_TRUE;
|
||||
else
|
||||
desc->is_const_on_set = EINA_TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -205,7 +206,7 @@ _db_fill_property(Eolian_Class *cl, Eo_Class_Def *kls, Eo_Property_Def *prop)
|
|||
prop->base.file = NULL;
|
||||
}
|
||||
|
||||
database_class_function_add(cl, foo_id);
|
||||
cl->properties = eina_list_append(cl->properties, foo_id);
|
||||
|
||||
return EINA_TRUE;
|
||||
|
||||
|
@ -233,7 +234,7 @@ _db_fill_method(Eolian_Class *cl, Eo_Class_Def *kls, Eo_Method_Def *meth)
|
|||
|
||||
foo_id->scope = meth->scope;
|
||||
|
||||
database_class_function_add(cl, foo_id);
|
||||
cl->methods = eina_list_append(cl->methods, foo_id);
|
||||
|
||||
if (meth->ret)
|
||||
{
|
||||
|
@ -278,7 +279,7 @@ _db_fill_ctor(Eolian_Class *cl, Eo_Method_Def *meth)
|
|||
{
|
||||
Eolian_Function *foo_id = database_function_new(meth->name, EOLIAN_CTOR);
|
||||
|
||||
database_class_function_add(cl, foo_id);
|
||||
cl->constructors = eina_list_append(cl->constructors, foo_id);
|
||||
|
||||
if (meth->ret)
|
||||
foo_id->get_return_comment = eina_stringshare_ref(meth->ret->comment);
|
||||
|
@ -312,13 +313,13 @@ _db_fill_implement(Eolian_Class *cl, Eolian_Implement *impl)
|
|||
|
||||
if (!strcmp(impl_name, "class.constructor"))
|
||||
{
|
||||
database_class_ctor_enable_set(cl, EINA_TRUE);
|
||||
cl->class_ctor_enable = EINA_TRUE;
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!strcmp(impl_name, "class.destructor"))
|
||||
{
|
||||
database_class_dtor_enable_set(cl, EINA_TRUE);
|
||||
cl->class_dtor_enable = EINA_TRUE;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -361,7 +362,7 @@ _db_fill_implement(Eolian_Class *cl, Eolian_Implement *impl)
|
|||
foo_id->get_virtual_pure = EINA_TRUE;
|
||||
return 1;
|
||||
}
|
||||
database_class_implement_add(cl, impl);
|
||||
cl->implements = eina_list_append(cl->implements, impl);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -390,7 +391,7 @@ _db_fill_events(Eolian_Class *cl, Eo_Class_Def *kls)
|
|||
|
||||
EINA_LIST_FOREACH(kls->events, l, event)
|
||||
{
|
||||
database_class_event_add(cl, event);
|
||||
cl->events = eina_list_append(cl->events, event);
|
||||
eina_list_data_set(l, NULL); /* prevent double free */
|
||||
}
|
||||
|
||||
|
@ -407,27 +408,17 @@ _db_fill_class(Eo_Class_Def *kls)
|
|||
eina_hash_set(_classesf, kls->base.file, cl);
|
||||
|
||||
if (kls->comment)
|
||||
{
|
||||
database_class_description_set(cl, kls->comment);
|
||||
}
|
||||
cl->description = eina_stringshare_ref(kls->comment);
|
||||
|
||||
EINA_LIST_FOREACH(kls->inherits, l, s)
|
||||
{
|
||||
database_class_inherit_add(cl, s);
|
||||
}
|
||||
cl->inherits = eina_list_append(cl->inherits, eina_stringshare_add(s));
|
||||
|
||||
if (kls->legacy_prefix)
|
||||
{
|
||||
database_class_legacy_prefix_set(cl, kls->legacy_prefix);
|
||||
}
|
||||
cl->legacy_prefix = eina_stringshare_ref(kls->legacy_prefix);
|
||||
if (kls->eo_prefix)
|
||||
{
|
||||
database_class_eo_prefix_set(cl, kls->eo_prefix);
|
||||
}
|
||||
cl->eo_prefix = eina_stringshare_ref(kls->eo_prefix);
|
||||
if (kls->data_type)
|
||||
{
|
||||
database_class_data_type_set(cl, kls->data_type);
|
||||
}
|
||||
cl->data_type = eina_stringshare_ref(kls->data_type);
|
||||
|
||||
if (!_db_fill_ctors (cl, kls)) return EINA_FALSE;
|
||||
if (!_db_fill_properties(cl, kls)) return EINA_FALSE;
|
||||
|
|
|
@ -22,27 +22,3 @@ database_parameter_del(Eolian_Function_Parameter *pdesc)
|
|||
eina_stringshare_del(pdesc->description);
|
||||
free(pdesc);
|
||||
}
|
||||
|
||||
void
|
||||
database_parameter_const_attribute_set(Eolian_Function_Parameter *param, Eina_Bool is_get, Eina_Bool is_const)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN(param);
|
||||
if (is_get)
|
||||
param->is_const_on_get = is_const;
|
||||
else
|
||||
param->is_const_on_set = is_const;
|
||||
}
|
||||
|
||||
void
|
||||
database_parameter_type_set(Eolian_Function_Parameter *param, Eolian_Type *types)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN(param);
|
||||
param->type = types;
|
||||
}
|
||||
|
||||
void
|
||||
database_parameter_nonull_set(Eolian_Function_Parameter *param, Eina_Bool nonull)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN(param);
|
||||
param->nonull = nonull;
|
||||
}
|
||||
|
|
|
@ -8,13 +8,51 @@ eolian_implement_full_name_get(const Eolian_Implement *impl)
|
|||
return impl->full_name;
|
||||
}
|
||||
|
||||
/*
|
||||
* ret false -> clash, class = NULL
|
||||
* ret true && class -> only one class corresponding
|
||||
* ret true && !class -> no class corresponding
|
||||
*/
|
||||
static Eina_Bool
|
||||
_class_name_validate(const char *class_name, const Eolian_Class **cl)
|
||||
{
|
||||
char *name = strdup(class_name);
|
||||
char *colon = name + 1;
|
||||
const Eolian_Class *found_class = NULL;
|
||||
const Eolian_Class *candidate;
|
||||
if (cl) *cl = NULL;
|
||||
do
|
||||
{
|
||||
colon = strchr(colon, '.');
|
||||
if (colon) *colon = '\0';
|
||||
candidate = eolian_class_get_by_name(name);
|
||||
if (candidate)
|
||||
{
|
||||
if (found_class)
|
||||
{
|
||||
ERR("Name clash between class %s and class %s",
|
||||
candidate->full_name,
|
||||
found_class->full_name);
|
||||
free(name);
|
||||
return EINA_FALSE; // Names clash
|
||||
}
|
||||
found_class = candidate;
|
||||
}
|
||||
if (colon) *colon++ = '.';
|
||||
}
|
||||
while(colon);
|
||||
if (cl) *cl = found_class;
|
||||
free(name);
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_fill_class(Eolian_Implement *impl)
|
||||
{
|
||||
const Eolian_Class *class = NULL;
|
||||
if (impl->klass)
|
||||
return EINA_TRUE;
|
||||
if (!database_class_name_validate(impl->full_name, &class) || !class)
|
||||
if (!_class_name_validate(impl->full_name, &class) || !class)
|
||||
return EINA_FALSE;
|
||||
impl->klass = class;
|
||||
return EINA_TRUE;
|
||||
|
|
|
@ -262,6 +262,8 @@ struct _Eolian_Variable
|
|||
int database_init();
|
||||
int database_shutdown();
|
||||
|
||||
char *database_class_to_filename(const char *cname);
|
||||
|
||||
/* types */
|
||||
|
||||
Eina_Bool database_type_add(Eolian_Type *def);
|
||||
|
@ -289,22 +291,6 @@ Eina_Bool database_var_add(Eolian_Variable *var);
|
|||
Eolian_Class *database_class_add(const char *class_name, Eolian_Class_Type type);
|
||||
void database_class_del(Eolian_Class *cl);
|
||||
|
||||
char *database_class_to_filename(const char *cname);
|
||||
|
||||
Eina_Bool database_class_inherit_add(Eolian_Class *cl, const char *inherit_class_name);
|
||||
Eina_Bool database_class_function_add(Eolian_Class *cl, Eolian_Function *foo_id);
|
||||
Eina_Bool database_class_implement_add(Eolian_Class *cl, Eolian_Implement *impl_id);
|
||||
Eina_Bool database_class_event_add(Eolian_Class *cl, Eolian_Event *event_desc);
|
||||
|
||||
void database_class_description_set(Eolian_Class *cl, const char *description);
|
||||
void database_class_legacy_prefix_set(Eolian_Class *cl, const char *legacy_prefix);
|
||||
void database_class_eo_prefix_set(Eolian_Class *cl, const char *eo_prefix);
|
||||
void database_class_data_type_set(Eolian_Class *cl, const char *data_type);
|
||||
Eina_Bool database_class_ctor_enable_set(Eolian_Class *cl, Eina_Bool enable);
|
||||
Eina_Bool database_class_dtor_enable_set(Eolian_Class *cl, Eina_Bool enable);
|
||||
|
||||
Eina_Bool database_class_name_validate(const char *class_name, const Eolian_Class **cl);
|
||||
|
||||
/* functions */
|
||||
|
||||
Eolian_Function *database_function_new(const char *function_name, Eolian_Function_Type foo_type);
|
||||
|
@ -315,9 +301,6 @@ void database_function_del(Eolian_Function *fid);
|
|||
Eolian_Function_Parameter *database_parameter_add(Eolian_Type *type, const char *name, const char *description);
|
||||
void database_parameter_del(Eolian_Function_Parameter *pdesc);
|
||||
|
||||
void database_parameter_const_attribute_set(Eolian_Function_Parameter *param, Eina_Bool is_get, Eina_Bool is_const);
|
||||
void database_parameter_nonull_set(Eolian_Function_Parameter *param, Eina_Bool nonull);
|
||||
|
||||
/* implements */
|
||||
|
||||
void database_implement_del(Eolian_Implement *impl);
|
||||
|
|
Loading…
Reference in New Issue