Merge pull request #1844 from jrw972/monterey
[ACE_TAO.git] / TAO / TAO_IDL / be_include / be_field.h
blob3b860cf73909bd695c7a177dde4da079f66d2862
2 //=============================================================================
3 /**
4 * @file be_field.h
6 * Extension of class AST_Field that provides additional means for C++
7 * mapping.
9 * @author Copyright 1994-1995 by Sun Microsystems
10 * @author Inc. and Aniruddha Gokhale
12 //=============================================================================
14 #ifndef BE_FIELD_H
15 #define BE_FIELD_H
17 #include "be_decl.h"
18 #include "ast_field.h"
20 class be_visitor;
21 class TAO_OutStream;
23 class be_field : public virtual AST_Field,
24 public virtual be_decl
26 public:
27 be_field (AST_Type *ft,
28 UTL_ScopedName *n,
29 Visibility vis = vis_NA);
31 // Non-virtual override of frontend method.
32 be_type *field_type (void) const;
34 // Generate debugging ostream operator for members.
35 void gen_member_ostream_operator (TAO_OutStream *os,
36 const char *instance_name,
37 bool use_underscore,
38 bool accessor = false);
40 // Accessors for the member.
41 bool port_name_prefixed (void) const;
42 void port_name_prefixed (bool val);
44 // Visiting.
45 virtual int accept (be_visitor *visitor);
47 // Cleanup.
48 virtual void destroy (void);
50 // Narrowing.
52 DEF_NARROW_FROM_DECL (be_field);
54 private:
55 // If the name of a provides or uses node has already been
56 // prefixed with the (mirror)port name(s), we don't want
57 // to prefix it again.
58 bool port_name_prefixed_;
61 #endif