OpenDDS  Snapshot(2023/04/07-19:43)
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 54 of file annotations.cpp.

55 : declaration_(0)
56 {
57 }
AST_Annotation_Decl * declaration_
Definition: annotations.h:78

◆ ~Annotation()

Annotation::~Annotation ( )
virtual

Definition at line 59 of file annotations.cpp.

60 {
61 }

Member Function Documentation

◆ cache()

void Annotation::cache ( )

Definition at line 83 of file annotations.cpp.

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

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

◆ 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 78 of file annotations.cpp.

References declaration_.

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

◆ fullname()

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

Definition at line 68 of file annotations.cpp.

References module(), and name().

Referenced by cache().

69 {
70  return module() + std::string("@") + name();
71 }
virtual std::string name() const =0
virtual std::string module() const
Definition: annotations.cpp:63

◆ module()

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

Reimplemented in OpenDDS::DataRepresentationAnnotation.

Definition at line 63 of file annotations.cpp.

Referenced by fullname().

64 {
65  return "::";
66 }

◆ 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: