Date: 15 Apr 2002 15:33:08 -0700 From: Max Okumoto <okumoto@ucsd.edu> To: freebsd-libh@FreeBSD.ORG Subject: cleanup of HSystem 2nd try (stage 4) Message-ID: <hfhemc6197.fsf@multivac.sdsc.edu>
next in thread | raw e-mail | index | archive | help
* (include/HSystem.hh) Added new function gen_file(). Make gen_header() gen_classes_interfaces(), gen_register_command_access(), gen_footer() and other types to private. * (lib/tcl/tcl_interface_gen.cc) Use new gen_file(). Index: include/HSystem.hh =================================================================== RCS file: /home/libh/cvs/libh/include/HSystem.hh,v retrieving revision 1.9 diff -u -r1.9 HSystem.hh --- include/HSystem.hh 2002/04/15 21:47:31 1.9 +++ include/HSystem.hh 2002/04/15 22:27:03 @@ -39,10 +39,9 @@ #include "LanguageInterface.hh" -#include <iostream.h> - -#include <set> +#include <iostream> #include <list> +#include <set> //====================================================================== @@ -57,39 +56,15 @@ typedef LanguageInterface::Object::MethodDescription MethodDesc; typedef LanguageInterface::Object::CallbackDescription CallBackDesc; - public: typedef list<const ClassDesc *> Descriptions; typedef set<string> Includes; typedef list<const char*> CommandAccessToRegister; typedef list<pair<string,string> > StaticMethods; - - /** - * Constructor. - */ - HSystem(const string& aName) - : name(aName) {} - /** - * Copy constructor. XXX This is broken! None of the other state is - * copied! - */ - HSystem(const HSystem& aHSystem) - : name(aHSystem.name) {} - - /** - * Adds the class description and include file to the system definition. - * - * @param class_desc - * @param include_file - * - * @see find_classes_descriptions.pl - */ - void - add_class(const ClassDesc *class_desc, const string& include_file) - { - descriptions.push_back(class_desc); - includes.insert(include_file); - } + Descriptions descriptions; + Includes includes; + CommandAccessToRegister commandAccessToRegister; + StaticMethods staticMethods; /** * Output header and includes. The output text contains a @@ -109,14 +84,34 @@ */ void gen_footer(ostream& out); - Descriptions descriptions; - Includes includes; - CommandAccessToRegister commandAccessToRegister; - StaticMethods staticMethods; + void gen_class_header(ostream& out, const ClassDesc *cd); + void gen_callback_interfaces(ostream& out, const ClassDesc *cd); + void gen_dynamic_methods_interfaces(ostream& out, const ClassDesc *cd); + void gen_static_method_interfaces(ostream& out, const ClassDesc *cd); + string gen_result_to_obj(MethodDesc::Value t); + string gen_method_argument(MethodDesc::Value t, int argno, int method_argno, bool last_arg_in_set_method); + public: + /** Mame of subsystem. + * @note This should be made private But this would require modifications + * out side of HSystem.hh. + */ string name; /** + * Constructor. + */ + HSystem(const string& aName) + : name(aName) {} + + /** + * Copy constructor. XXX This is broken! None of the other state is + * copied! + */ + HSystem(const HSystem& aHSystem) + : name(aHSystem.name) {} + + /** * LessThan operator. * * @param rhs Right hand side of the less than operator. @@ -130,13 +125,27 @@ */ bool operator==(const HSystem& rhs) const { return name == rhs.name; } - private: - void gen_class_header(ostream& out, const ClassDesc *cd); - void gen_callback_interfaces(ostream& out, const ClassDesc *cd); - void gen_dynamic_methods_interfaces(ostream& out, const ClassDesc *cd); - void gen_static_method_interfaces(ostream& out, const ClassDesc *cd); - string gen_result_to_obj(MethodDesc::Value t); - string gen_method_argument(MethodDesc::Value t, int argno, int method_argno, bool last_arg_in_set_method); + /** + * Adds the class description and include file to the system definition. + * + * @param cd + * @param include_file + * + * @see find_classes_descriptions.pl + */ + void + add_class(const ClassDesc *cd, const string& include_file) + { + descriptions.push_back(cd); + includes.insert(include_file); + } + + /** + * Generate libh subsystem tcl interface text. + * + * @param out stream to send text. + */ + void gen_file(ostream &out); }; // class HSystem Index: lib/tcl/tcl_interface_gen.cc =================================================================== RCS file: /home/libh/cvs/libh/lib/tcl/tcl_interface_gen.cc,v retrieving revision 1.9 diff -u -r1.9 tcl_interface_gen.cc --- lib/tcl/tcl_interface_gen.cc 2002/04/15 16:26:47 1.9 +++ lib/tcl/tcl_interface_gen.cc 2002/04/15 22:27:05 @@ -62,10 +62,7 @@ throw runtime_error( string( "Unable to create " ) + argv[2] + ": " + ::strerror( errno ) ); HSystem& s = const_cast<HSystem&>( *system ); - s.gen_header( out ); - s.gen_classes_interfaces( out ); - s.gen_register_command_access( out ); - s.gen_footer( out ); + s.gen_file( out ); } catch ( exception& err ) { cerr << "Error: " << err.what() << endl; @@ -75,6 +72,15 @@ return 0; } /* main */ + +void +HSystem::gen_file(ostream& out) +{ + gen_header(out); + gen_classes_interfaces(out); + gen_register_command_access(out); + gen_footer(out); +} void HSystem::gen_header( ostream& out ) { To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-libh" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?hfhemc6197.fsf>