OpenDDS  Snapshot(2023/04/28-20:55)
Public Member Functions | Private Attributes | List of all members
Annotation Class Referenceabstract

#include <annotations.h>

Inheritance diagram for Annotation:
Inheritance graph
[legend]

Public Member Functions

 Annotation ()
 
virtual ~Annotation ()
 
virtual std::string definition () const =0
 
virtual std::string name () const =0
 
virtual std::string module () const
 
virtual std::string fullname () const
 
AST_Annotation_Decl * declaration () const
 
AST_Annotation_Appl * find_on (AST_Decl *node) const
 
void cache ()
 

Private Attributes

AST_Annotation_Decl * declaration_
 

Detailed Description

Wrapper Base Class for Annotations

Definition at line 63 of file annotations.h.

Constructor & Destructor Documentation

◆ Annotation()

Annotation::Annotation ( )

Definition at line 56 of file annotations.cpp.

57 : declaration_(0)
58 {
59 }
AST_Annotation_Decl * declaration_
Definition: annotations.h:78

◆ ~Annotation()

Annotation::~Annotation ( )
virtual

Definition at line 61 of file annotations.cpp.

62 {
63 }

Member Function Documentation

◆ cache()

void Annotation::cache ( )

Definition at line 85 of file annotations.cpp.

References declaration_, definition(), and fullname().

86 {
87  idl_global->eval(definition().c_str());
88  UTL_Scope* root = idl_global->scopes().bottom();
89  declaration_ = dynamic_cast<AST_Annotation_Decl*>(
90  root->lookup_by_name(fullname().c_str()));
91 }
AST_Annotation_Decl * declaration_
Definition: annotations.h:78
virtual std::string definition() const =0
virtual std::string fullname() const
Definition: annotations.cpp:70

◆ declaration()

AST_Annotation_Decl * Annotation::declaration ( ) const

◆ definition()

virtual std::string Annotation::definition ( ) const
pure virtual

◆ find_on()

AST_Annotation_Appl * Annotation::find_on ( AST_Decl *  node) const

Definition at line 80 of file annotations.cpp.

References declaration_.

81 {
82  return node->annotations().find(declaration_);
83 }
AST_Annotation_Decl * declaration_
Definition: annotations.h:78

◆ fullname()

std::string Annotation::fullname ( ) const
virtual

Definition at line 70 of file annotations.cpp.

References module(), and name().

Referenced by cache().

71 {
72  return module() + std::string("@") + name();
73 }
virtual std::string module() const
Definition: annotations.cpp:65
virtual std::string name() const =0

◆ module()

std::string Annotation::module ( void  ) const
virtual

◆ name()

virtual std::string Annotation::name ( ) const
pure virtual

Member Data Documentation

◆ declaration_

AST_Annotation_Decl* Annotation::declaration_
private

Definition at line 78 of file annotations.h.

Referenced by cache(), declaration(), and find_on().


The documentation for this class was generated from the following files: