summaryrefslogtreecommitdiff
path: root/modules/CIAO/CIDLC/InterfaceEmitter.hpp
blob: fdd2411f9122f3e14c5fed7ea4cfebbf6faea43c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// file      : CIDLC/InterfaceEmitter.hpp
// author    : Jeff Parsons <j.parsons@vanderbilt.edu>
// cvs-id    : $Id$

#ifndef INTERFACEEMITTER_HPP
#define INTERFACEEMITTER_HPP

#include "CCF/CIDL/SemanticGraph.hpp"
#include "CCF/CIDL/Traversal.hpp"

#include "EmitterBase.hpp"

using namespace CCF::CIDL;
using namespace CCF::CIDL::SemanticGraph;

struct InterfaceEmitter : Traversal::UnconstrainedInterface,
                          EmitterBase
{
  InterfaceEmitter (Context& c);

  virtual void traverse (UnconstrainedInterface&);

private:
  bool add (UnconstrainedInterface&);

private:
  std::set<UnconstrainedInterface*> interfaces_;
};

#endif  // INTERFACEEMITTER_HPP