summaryrefslogtreecommitdiffstats
path: root/eo_definitions.h
diff options
context:
space:
mode:
Diffstat (limited to 'eo_definitions.h')
-rw-r--r--eo_definitions.h91
1 files changed, 91 insertions, 0 deletions
diff --git a/eo_definitions.h b/eo_definitions.h
new file mode 100644
index 0000000..844717e
--- /dev/null
+++ b/eo_definitions.h
@@ -0,0 +1,91 @@
+#ifndef __EO_DEFINITIONS_H__
+#define __EO_DEFINITIONS_H__
+
+#include <Eina.h>
+
+/* RET */
+
+typedef struct _eo_ret_def
+{
+ const char *type;
+ const char *comment;
+} Eo_Ret_Def;
+
+/* PARAM */
+
+typedef enum _param_way
+{
+ IN,
+ OUT,
+ INOUT,
+ PARAM_WAY_LAST
+} Param_Way;
+
+typedef struct _eo_param_def
+{
+ Param_Way way;
+ const char *type;
+ const char *name;
+ const char *comment;
+} Eo_Param_Def;
+
+/* ACCESSOR */
+
+typedef enum _eo_accessor_type
+{
+ SETTER,
+ GETTER,
+ ACCESSOR_TYPE_LAST
+} Eo_Accessor_Type;
+
+typedef struct _eo_accessor_def
+{
+ Eo_Accessor_Type type;
+ Eo_Ret_Def ret;
+ const char *comment;
+ Eina_List *legacies;
+} Eo_Accessor_Def;
+
+/* PROPERTY */
+
+typedef struct _eo_property_def
+{
+ const char *name;
+ Eina_List *params;
+ Eina_List *accessors;
+} Eo_Property_Def;
+
+/* METHOD */
+
+typedef struct _eo_method_def
+{
+ Eo_Ret_Def ret;
+ const char *name;
+ const char *comment;
+ Eina_List *params;
+} Eo_Method_Def;
+
+/* CLASS */
+
+typedef struct _eo_class_def
+{
+ const char *name;
+ const char *comment;
+ Eina_List *inherits;
+ Eina_List *properties;
+ Eina_List *methods;
+} Eo_Class_Def;
+
+void eo_definitions_ret_free(Eo_Ret_Def *ret);
+
+void eo_definitions_param_free(Eo_Param_Def *param);
+
+void eo_definitions_accessor_free(Eo_Accessor_Def *accessor);
+
+void eo_definitions_property_def_free(Eo_Property_Def *prop);
+
+void eo_definitions_method_def_free(Eo_Method_Def *prop);
+
+void eo_definitions_class_def_free(Eo_Class_Def *kls);
+
+#endif /* __EO_DEFINITIONS_H__ */