/* -*- c++ -*- */ // ============================================================================ // // = LIBRARY // TAO IDL // // = FILENAME // be_structure.h // // = DESCRIPTION // Extension of class AST_Structure that provides additional means for C++ // mapping. // // = AUTHOR // Copyright 1994-1995 by Sun Microsystems, Inc. // and // Aniruddha Gokhale // // ============================================================================ #if !defined (BE_STRUCTURE_H) #define BE_STRUCTURE_H /* * BE_Structure */ class be_structure : public virtual AST_Structure, public virtual be_scope, public virtual be_type { public: // =Operations be_structure (void); // default constructor be_structure (UTL_ScopedName *n, UTL_StrList *p); // constructor virtual int gen_client_header (void); // Generates the client-side header information for the struct virtual int gen_client_stubs (void); // Generates the client-side stubs for the struct virtual int gen_server_header (void); // Generates the server-side header information for the struct virtual int gen_server_skeletons (void); // Generates the server-side skeletons for the struct virtual int gen_client_inline (void); // Generates the client-side inline for the struct virtual int gen_server_inline (void); // Generates the server-side inlines for the struct virtual int gen_var_defn (void); // generate the _var class definition virtual int gen_var_impl (void); // generate the implementation for the _var class virtual int gen_out_defn (void); // generate the _out class definition virtual int gen_out_impl (void); // generate the _out implementation virtual int gen_typecode (void); // generate the typecode virtual int gen_encapsulation (void); // encapsulation for parameters virtual long tc_size (void); // return typecode size virtual long tc_encap_len (void); // return length of encapsulation virtual int member_count (void); // return the count of members virtual int write_as_return (TAO_OutStream *stream, be_type *type); // write the mapping as a return value on the stream. // Visiting virtual int accept (be_visitor *visitor); // Narrowing DEF_NARROW_METHODS3 (be_structure, AST_Structure, be_scope, be_type); DEF_NARROW_FROM_DECL (be_structure); DEF_NARROW_FROM_SCOPE (be_structure); protected: virtual int compute_size_type (void); // compute the size type if it is unknown private: //=helper int compute_member_count (void); // count the number of members int member_count_; // number of members }; #endif