TO-DO List ========== - Remove jdaux.exe from CVS repository. - Finalize the headers (put authors in all the modules). - Fix the trace function so that it prints out the messages going both ways. - The TCPChannel::writeN() method blocks when the client and server are in the same process. That is because the client cannot read anything as long as writeN() is blocked on a synchronous write. - Figure out how to handle getProperty() return type. - Having problems with reference on Repository::createInstance() and Repository::getInstance(). References not always in standard form. Also, resolve() fails when instance has properties of difference case. - Super class name does not seem to be set in enumerateClasses operation. ------------------------------------------------------------------------ - Remove "std::" qualifiers and use a macro and use #define for PEGASUS_NAMESPACE_STD. - Change getLength() to length() or size()? - Change find to findByIndex(). - Need get by name. Now: - Add convenience functions: addProperty(). - Change CimException to CIMException - Get ACE working on Tandem (or remove ACE from Pegasus). - Port Pegasus to Tandem (look for Tandem machine at BMC). - Instance repository. - Delete namespace. - Finalize provider interface. - Associations (basic). - Provider registration (by the standard). - MOF compiler (finalize). - Write short paper on Pegasus data objects. - Integrate DOC++ with make system. - Compaq requested SQL level-1 description. - Get rid of ACE (required if no ACE on Tandem). - Need query capability for Compaq. - Threading (and process forking). - Implement protocol module (the default uses ACE). - Package up pegasus in Install Shield application. ------------------------------------------------------------------------ (A) Install shield install of Pegasus. (A) Handle escaping of strings inside object names. Example: X.key1="Hello \"You\"" (A) Notice that there is a bug where you select Scope::REFERENCE and and the validation routines still say the scope is wrong for qualifiers applied actual references (they are checking for property instead). (A) There is an odering problem when applying the qualifiers with association scope to classes. If the association qualifier does not come first, then application of prior qualifiers fail. Checking this should be moved to class resolution. ------------------------------------------------------------------------ (B) Hide setPropagated() and setClassOrigin() methods (only the resolve method should touch these). (B) Change make system to rename dll's before link so that they can be used by the server. (B) Finish other CIM/HTTP protocol operations. (B) Use the description that comes back with an error code in the XML protocol. Perhaps it should become an extra message field of XmlException. (B) Source documentation. (B) Put README in each directory. (B) Handle UCS2 characters in XML (parsing and writing). (B) Check for overflow on the number of attributes in XML. (B) Handle PARAMETER.REFARRAY in XML. (B) Add validNamespace() method and use it. ------------------------------------------------------------------------ (C) Suppress error message printed by ACE caused by constructing an address from a non existent host. (C) Ignore extraneous XML elements (loosely valid). (C) Get rid of fullyQualified flag. (C) Handling of hexadecimal integer values. (C) VALUE.REFERENCE within INSTANCENAME and KEYBINDING. (C) Resolve whether MOF is a requirement. (C) Handle case sensitivity of CIM identifiers. (C) Figure out how to handle CIM null values. (C) Make iteration scheme more general. (C) Develop XML repository importation mechanism. (C) Move internal headers to ./internal directory (C) Split up XxxRep objects from Xxx objects. (C) Handle case insentive requirement on repository file names. (C) Devise a way to detect whether a class has instances. (C) Cleanup of execeptions. (C) Verify that fixed length arrays are properly handled. (C) Check for null string pointers in String class. (C) Verify that instances are property keyed (during validation). (C) Thread safety. (C) Use UTF8 for strings. (C) Shrink object sizes. (C) Use lighter I/O system (get rid of C++ streams). (C) Provide conversion between DateTime and time_t. (C) Purify source. (C) Improve the representation of fixed arrays (is that pesky fixed-array flag really necessary?) (C) Modify clear() methods on Array and String so that they don't release the old resource (more efficient for GetLine()). Add a resize() method.