summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be_include/be_visitor_template_export.h
blob: 1f74232c3762497b506f09eacd46b4a8b7d1d5ed (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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//
// $Id$
//

/* -*- c++ -*- */
// ============================================================================
//
// = LIBRARY
//    TAO IDL
//
// = FILENAME
//    be_visitor_template_export.h
//
// = DESCRIPTION
//    This visitor generates an explicit export of a sequence's
//    template base class. It is conditionally launched by a
//    command line option and is motivated by a bug in Visual
//    Studio C++ (.NET 2002, .NET 2003, and Express 2005), documented in
//    http://support.microsoft.com/default.aspx?scid=kb;en-us;309801
//
// = AUTHOR
//    Jeff Parsons <j.parsons@vanderbilt.edu>
//
// ============================================================================

#ifndef TAO_BE_VISITOR_TEMPLATE_EXPORT_H
#define TAO_BE_VISITOR_TEMPLATE_EXPORT_H

#include "be_visitor_scope.h"

class AST_Interface;

class be_visitor_template_export : public be_visitor_scope
{
  //
  // = TITLE
  //   be_visitor_template_export
  //
  // = DESCRIPTION
  //   Generates sequence template base class export instantiation.
  //
public:
  be_visitor_template_export (be_visitor_context *ctx);

  virtual ~be_visitor_template_export (void);

  virtual int visit_root (be_root *node);

  virtual int visit_module (be_module *node);

  virtual int visit_typedef (be_typedef *node);

  virtual int visit_sequence (be_sequence *node);
};


#endif // TAO_BE_VISITOR_TEMPLATE_EXPORT_H