From: Thomas M. <tma...@ze...> - 2000-10-25 21:40:18
|
To start with, I have put everything into namespaces. There is a mapping of classnames required. SOMEObj -> SOME::Object SOMELibInfo -> SOME::LibCatalog SOMEClassInfo -> SOME::ClassCatalog could be changed back to ClassInfo SOMELibFactory -> SOME::LibFactory BasicDynLib -> SOME::BasicDynLib getSOMELibFactory() -> SOME::getLibFactory() member function names have been changed to reflect these changes. I had obfuscated the keys for classname and category, but then simplemenu doesn't work because you search for categories loaded. A method to add extra keys on the plugin side needs to be added. How about addClassCatalog returns a reference to the ClassCatalog? "John Palmieri (Quinticent)" wrote: > The solution is to kill windows ;-) Ok, yes add a constrctor that takes a map. > Document this workaround in doxigen. you got it. > configure --prefix=<base install dir> (default is /usr but the libs get sent to > <prefix>/lib/SOME and headers to <prefix>/include/SOME) good > I could make it more configurable. > > As for the test, I guessed at what the name for hpux would be. I will change the > configure script to print out the current host os. You send me the output and I > will change it. > > What are the directories for libs and includes on HPUX? when it searches for the platform it is hppa1.1-hp-hpux10.20. I'm not sure which other hpux platforms match. I guess we'll get to that when someone asks. Which libs and includes do you mean? > > > > 3) Name analysis. Are these the names we want for our classes > > > > > > Yes. I think we need to run this through beta testers and develop a > > > vocabulary (Perhaps the Info stuff should be called a catalog and > > > getCategory should be overloaded to handle both the simple catagory and > > > multipule category gets). Also intern names we use for the maps should be > > > obfusicated so as to avoid name clashes with someone perhaps using > > > "category" as one of their categories. > > > > > > > ClassProperties and LibCatalog? I'll change the classname and category keys > > to something peculiar. > > > > Not ClassProperties this implies encapsulated class variables (eg properties)- > ClassInfo is fine. I like LibCatalog though. getCatagory should take arguments: > > getCatagory( string simpleCatagory ); > getCatagory( string key, string value ); > getCatagory( SOME::map keyvalueMap ); > > setCatagory for the ClassInfo should take: > setCatagory( string simpleCatagory ); > setCatagory( string key, string value); look through my names, tell me what you think. > > > > 6) Write the searchForLib func. > > > > > > Yes. > > > > Actually, I have no idea what I intended searchForLib to do. What does it > > sound like to you? > > > > findLib is more compact. > > Search for a library and return its LibCatalog. Should we extend LibCatalog to > have the same catagory functionality as ClassInfo? how should we specify the searchpath? > Hmm...well it is their fault but I see how this could be a problem. Since we can > only load libs that are compiled for somelib there is no real problem with someone > trying to loadLib( "/usr/lib" ). Anytime a library is found not to contain the > correct exported functions it should be beaten to death with a stick and then > unloaded from memory (and the programmer/user properly chastised for sloppy > selection of directories). Remeber also that each loaded lib should only load > into memory the exported function (lazy loading) and memory usage should not go up > until an object is actualy created. To allow the programmer to finietly control > memory usage we should provide methods for unloading specific libs and checking > the size a library is currently taking up in memory. In the future we could > implement a caching mecinism that can be turned off or on (perhaps create a cache > plugin achetecture - SOMELib using SOMELib, cool!!!) that will unload unused > libraries from memory and when requested load them back up. I'll put in the code to make it throw out the lib if not a SOMELib. Not sure when I'll get the load a directories worth done. > Cool. Oh I'm going to start work on a preprocesor that is optional (I need to > refresh myself on the usage of lex and yacc so I said, "why not?"). The cool > thing about the preprocessor is that using the same functionality as printf > (unknown # of arguments) I can create an object with an unlimited amount of > constructors. It will be awhile before that goes in though. If you're more interested in Python, go to www.egroups.com/files/boost and get py_cpp. You may have to register to get it. There's a file called gen_function.py that does something like that. I haven't looked at it, but it may be interesting. Hope the changes don't take too long to put into SnagglePuss. -- Thomas O Matelich Senior Software Designer Zetec, Inc. sos...@us... tma...@ze... |