]> git.buserror.net Git - polintos/scott/priv.git/blobdiff - idlcomp/languages/c++/c++.h
idlcomp/c++: Separate output_nsdecl into begin/children/end.
[polintos/scott/priv.git] / idlcomp / languages / c++ / c++.h
index 4717233185de8d6987ff4ce384261831980b5ce9..a8fb246821ea3c025d8c43d6bfd5dfc02041a665 100644 (file)
@@ -78,24 +78,22 @@ class CPPFile : public LangCallback {
        void output_methods(Interface *iface, Interface *super, bool prototype);
        void output_method_defs(Interface *iface);
 
-       void CPPFile::output_one_method(Interface *iface, Method *m, 
-                                       bool prototype, bool retval);
-       void CPPFile::output_one_method_ptr(Method *m, Interface *iface);
+       void output_one_method(Interface *iface, Method *m,
+                              bool prototype, bool retval);
+       void output_one_method_ptr(Method *m, Interface *iface);
        
-       static void output_iface_ns(CPPFile *file, NameSpace *sym);
-
        //// Misc members:
 
-       // Output the static const guid[] value.
+       // Output the static const guid[] value, and the IFaceInfo struct.
 
        void output_guid(const uint64_t *guid);
+       void output_ifaceinfo(Interface *iface);
 
        // Output a datum in the given struct, along with any necessary
        // padding.  Return the offset of the next datum.
        
        int output_datum(Struct *ns, Datum *d, int offset);
 
-       static void output_vstruct_ns(CPPFile *file, NameSpace *sym);
        void output_vstruct_info(Struct *sym);
        void output_vstruct_main(Struct *sym);
        void output_struct_ctor(Struct *sym, bool extra_vstruct);
@@ -141,8 +139,10 @@ class CPPFile : public LangCallback {
        // namespace, before any namespace members have been
        // emitted.
        
-       typedef void (*nsdecl_callback)(CPPFile *file, NameSpace *ns);
-       void output_nsdecl(NameSpace *ns, nsdecl_callback cb = NULL);
+       void output_nsdecl_begin(NameSpace *ns);
+       void output_nsdecl_children(NameSpace *ns);
+       void output_nsdecl_end(NameSpace *ns);
+       void output_nsdecl(NameSpace *ns);
 
        void output_aliases_and_types(NameSpace *ns);