00001 #ifndef FUNCTION_ANNOTATION_ATTRIBUTES_H_INCLUDED_ 00002 #define FUNCTION_ANNOTATION_ATTRIBUTES_H_INCLUDED_ 00003 00004 #include "rose.h" 00005 00006 #include "function_annotation.h" 00007 00008 namespace risc { 00009 00010 namespace sg { 00011 00012 class FunctionAnnotationAttributes: public AstAttribute { 00013 00014 public: 00015 00016 FunctionAnnotationAttributes(FunctionAnnotationAttributes *func_attributes); 00017 00018 FunctionAnnotationAttributes(FunctionAnnotation *annotation); 00019 // TODO for the new rose release 00020 //virtual AstAttribute::OwnershipPolicy getOwnershipPolicy() const ROSE_OVERRIDE 00021 //{ 00022 // return CONTAINER_OWNERSHIP; 00023 //} 00024 00025 FunctionAnnotationAttributes( 00026 std::string function_name, 00027 bool is_conflict_free, 00028 WAIT_CONSTRUCT wait_type, 00029 AnnotatedTime *annotated_time); 00030 00031 bool has_boundary(); 00032 00033 std::string function_name_; 00034 bool is_conflict_free_; 00035 00036 WAIT_CONSTRUCT wait_type_; 00037 AnnotatedTime *annotated_time_; 00038 00039 bool operator==(const FunctionAnnotationAttributes &other); 00040 00041 bool operator!=(const FunctionAnnotationAttributes &other); 00042 }; 00043 00044 } // end of namespace sg 00045 00046 } // end of namespace risc 00047 00048 #endif /* FUNCTION_ANNOTATION_ATTRIBUTES_H_INCLUDED_ */ 00049 00050 /* ex: set softtabstop=2 tabstop=2 shiftwidth=2 expandtab: */