27#ifndef IDLFE_AST_INTERFACE_H_
28#define IDLFE_AST_INTERFACE_H_
32#include <unordered_set>
66 const char* interface_kind_name () const noexcept;
109 template <
class T>
friend class Ptr;
113 void get_all_interfaces (IV_Bases& all)
const;
122 bases_.push_back (&base);
125 void get_all_bases (std::unordered_set <const Interface*>& bset,
Interfaces& bvec)
const;
140 template <
class T>
friend class Ptr;
143 ItemWithId (Item::Kind::INTERFACE_DECL, builder, name),
The common base for Interface and ValueType.
Interface forward declaration.
const Interfaces & bases() const noexcept
Interfaces get_all_bases() const
Kind
The kind of interface.
@ PSEUDO
pseudo interface is Nirvana IDL extension
@ ABSTRACT
abstract interface
Kind interface_kind() const noexcept
Items which have repository identifiers derive from this class.
The IDL simple declarator.
Abstract Syntax Tree namespace.
std::vector< const Interface * > Interfaces
The sequence of interfaces.