Merged to new default.
[cacao.git] / src / vm / annotation.h
index fd3f5c9a87387aba99269b3597f761dd87deeb26..2a8b11616e25ecfe5b6b2c71fda36486c6117d1d 100644 (file)
@@ -1,9 +1,7 @@
 /* src/vm/annotation.h - class annotations
 
-   Copyright (C) 2006 R. Grafl, A. Krall, C. Kruegel, C. Oates,
-   R. Obermaisser, M. Platter, M. Probst, S. Ring, E. Steiner,
-   C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, J. Wenninger,
-   Institut f. Computersprachen - TU Wien
+   Copyright (C) 2006, 2007, 2008
+   CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
 
    This file is part of CACAO.
 
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   Contact: cacao@cacaojvm.org
-
-   Authors: Christian Thalinger
-
-   $Id: utf8.h 5920 2006-11-05 21:23:09Z twisti $
-
 */
 
 
 #ifndef _ANNOTATION_H
 #define _ANNOTATION_H
 
-/* forward typedefs ***********************************************************/
-
-typedef struct annotation_t    annotation_t;
-typedef struct element_value_t element_value_t;
 
 #include "config.h"
+
 #include "vm/types.h"
 
+#include "vm/class.hpp"
+#include "vm/field.hpp"
 #include "vm/global.h"
-#include "vm/loader.h"
-#include "vm/utf8.h"
+#include "vm/loader.hpp"
+#include "vm/method.hpp"
 
 
-/* annotation *****************************************************************/
+/* function prototypes ********************************************************/
 
-struct annotation_t {
-       utf             *type;
-       s4               element_valuescount;
-       element_value_t *element_values;
-};
+#ifdef __cplusplus
+extern "C" {
+#endif
 
+bool annotation_load_class_attribute_runtimevisibleannotations(
+       classbuffer *cb);
 
-/* element_value **************************************************************/
+bool annotation_load_class_attribute_runtimeinvisibleannotations(
+       classbuffer *cb);
 
-struct element_value_t {
-       utf *name;
-       u1   tag;
-};
+bool annotation_load_method_attribute_runtimevisibleannotations(
+       classbuffer *cb, methodinfo *m);
 
+bool annotation_load_method_attribute_runtimeinvisibleannotations(
+       classbuffer *cb, methodinfo *m);
 
-/* function prototypes ********************************************************/
+bool annotation_load_field_attribute_runtimevisibleannotations(
+       classbuffer *cb, fieldinfo *f);
+
+bool annotation_load_field_attribute_runtimeinvisibleannotations(
+       classbuffer *cb, fieldinfo *f);
+
+bool annotation_load_method_attribute_annotationdefault(
+       classbuffer *cb, methodinfo *m);
+
+bool annotation_load_method_attribute_runtimevisibleparameterannotations(
+       classbuffer *cb, methodinfo *m);
+
+bool annotation_load_method_attribute_runtimeinvisibleparameterannotations(
+       classbuffer *cb, methodinfo *m);
 
-bool annotation_load_attribute_runtimevisibleannotations(classbuffer *cb);
+#ifdef __cplusplus
+}
+#endif
 
 #endif /* _ANNOTATION_H */