(file) Return to todo.txt CVS log (file) (dir) Up to [Pegasus] / pegasus / doc / Attic

Diff for /pegasus/doc/Attic/todo.txt between version 1.4 and 1.26

version 1.4, 2001/04/30 15:58:06 version 1.26, 2001/07/06 20:39:28
Line 1 
Line 1 
 Urgent  
 ======  
  
     -   Fix case sensitivity problems in repository (just add an _Open method      -   Need way of signaling the cimserver so that it will reload the
         that ignores the case of the file).          class inheritance table (after a MOF compile).
  
     -   Change INVALID_CLASS exceptions to NOT_FOUND (they're wrong in Rep).      -   Revisit use of namespace v.s. objectName in all CIM operations.
  
 Topical To-Do List      -   What do we do when getInstance() is called and the nameSpace is
 ==================          provided both as an argument and as part of the instance name?
  
 -   Instances:      -   ReferenceNames should return classes not just instances?
  
     -   Implement CIMRepository::getProperty()      -   Remove final const from const methods in non-const CIM element classes.
  
     -   Implement CIMRepository::setProperty()      -   Null vs. empty CIM/HTTP parameters.
  
     -   Implement CIMRepository::deleteInstance()      -   Resolve constness problems. (get rid or Const classes?)
  
     -   Implement CIMRepository::modifyInstance()      -   Change CIMReference to CIMObjectPath?
  
     -   Implement CIMRepository::enumerateInstances()      -   Finish associations.
  
     -   Implement CIMRepository::enumerateInstanceNames()      -   Provide CIMOM Context.
  
     -   Handle inheritance in all instance operations.      -   Complete conventions document.
  
     -   Double check that all these operations work across protocol.      -   The CIMServer.exe program should probably create the logs directory
           under PEGASUS_HOME.
  
     -   Check that they have keys during validation.      -   Clean up exceptions.
  
 -   Associations:      -   Resolve redundancy in which the namespace is passed to certain methods
           (getClass) and the CIMReference itself may contain a namespace arguent.
  
     -   Implement CIMRepository::referencesOf()      -   Implement consistency and constraint checking on classes and instances.
  
     -   Implement CIMRepository::associatorsOf()      -   Implement filtering (using includeQualifiers, localOnly, etc.)
  
     -   Implement protocol stubs for these operations.      -   Consider eliminating const CIM element classes.
  
 -   Exceptions:      -   Support for NULL property lists (in interface and protocol).
  
     -   Force __FILE__ and __LINE__ argument on every usage of CIMException.      -   Rename tests (prepend "Test" to each test).
  
     -   Clean up and consolidate exception classes.      -   Fix bug with cimserver.exe causing it to fail to start without te
           "-l" option.
  
     -   Propagate underlying error messages across the CIM protocol.      -   Resolve whether the backslash should be permitted in namespaces.
  
 -   References:      -   Create CIMOMContext (interface to CIMOM used b the provider).
  
     -   Validate arguments to CIMReference compound constructor and modifiers.      -   Define Encoding module interface.
         (namespaces, hosts, classnames, and keybindings)  
  
     -   Be sure that escape sequences are handled inside of object names. For      -   Develop XMLEncodings module.
         example:  
  
             X.key1="Hello \"You\""      -   Develop BinaryEncodings module.
  
 -   Protocol:      -   Develop MOFEncodings module.
  
     -   Improve protocol tracing to show messages in both directions.      -   Employ BinaryEncodings module in repository (reduce disk usage).
  
     -   The TCPChannel::writeN() method blocks when the client and server      -   Combine repository instances, classes, and qualifiers  into their
         are in the same process. That is because the client cannot read          respective files (to reduce the number of files).
         anything as long as writeN() is blocked on a synchronous write.  
  
     -   Figure out how to handle getProperty() return type.      -   Employ an efficient indexing scheme in repository (B-trees or hashing).
  
     -   Provide ACE Channel implementation (for porting purposes)?      -   Develop module manager: interface, lookup scheme, and loading scheme.
  
     -   Handle PARAMETER.REFARRAY in Procotol?      -   Package Encodings classes as a module.
  
     -   Ignore extraneous XML elements (loosely valid).      -   Finalize repository assocations.
  
 -   Porting:      -   Add association CIM/HTTP operations.
  
     -   Replace "std::something" with "STD(something)"      -   Design association provider infrastructure.
  
     -   Replace "using namespace std" with "USING_NAMESPACE_PEGASUS"      -   Implement missing CIM protocol operations.
  
 -   Aesthetics/Consistency/Usability:      -   Implement good observer module interface which allows different levels:
  
     -   Change getLength() and getSize() to just size(): "Brevity is the soul          -   Observation of client/CIMMOM connections/disconnection.
         of genius and of Lingerie".  
  
     -   Add methods to get objects by their names, in addition to index. For          -   Observation of client/CIMOM communication.
         example:  
  
             CIMProperty CIMClass::getProperty(const String& name);          -   Observation of CIMOM/repository communication.
  
     -   Perform walkthrough to expose consistency problems.          -   Observation of CIMOM/provider communication.
  
     -   Distinguish between private and public classes (otherwise, users may          -   Observation of CIMOM state transitions.
         come to depend on classes with unstable interfaces).  
  
 -   Documentation:      -   Pegasus providers for Sun WBEM Services.
  
     -   Suggest newlines after methods.      -   Pegasus providers for WMI.
  
     -   Suggest use of "/** ... */" instead of "///"      -   Sun WBEM Services providers for Pegasus.
  
     -   Refine header file documentation.      -   CIM/HTTP Proxy for WMI.
   
     -   Write Pegasus Architecture Paper.  
  
     -   Integrate DOC++ with make system (put all docs in doc tree):      -   Web Server/Pegasus Integration (use HTTP protocol capabilities of
           web server rather than Pegasus).
  
 -   Namespaces:      -   Add CIMRepository::namespaceExists() method.
  
     -   Implement create and destroy namespace (according to the standard).      -   Change HTTP message id's to this format: "YYYY.MM.DD.HH.MM.SS.NNNNN".
  
 -   Providers      -   GetInstances() and GetClasses() need to use iterators on
           provider and repository end. Otherwise, all classes or instance
           to be enumerated, must be sucked into memory.
  
     -   Add CIM-Server handles to provider interface.      -   Template bloat reduction.
  
     -   Implement MOF provider registration scheme (according to the standard).      -   Need a tool to say which features are supported by a compiler.
  
 -   WBEM Query Language      -   Support unloading of dynamic libraries (presently only load() is
           supported).
  
     -   Find someone to work on standard.      -   Clean up and consolidate exception classes.
   
     -   Implement leve-1 parser.  
   
 -   MOF compiler:  
   
     -   Work with Bob to identify work items.  
  
 -   Threading      -   Asynchronous socket writes in the CIMOM (need write enabled flags).
  
     -   Write thread queuing document (input and output thread queue per      -   Handle PARAMETER.REFARRAY in Procotol?
         provider).  
  
     -   Implement queuing.      -   Implemented stream oriented XML parsing.
  
     -   Make reference counted objects thread safe (Mutexing and atomic      -   Ignore extraneous XML elements (implement "loose validation" concept).
         increments).  
  
 -   Connectors      -   Add methods to get objects by their names, in addition to index. For
           example:
  
     -   Work out basic concepts (write paper).              CIMProperty CIMClass::getProperty(const String& name);
  
     -   Package up pegasus in Install Shield application.      -   Distinguish between private and public classes (otherwise, users may
           come to depend on classes with unstable interfaces).
  
       -   Walk through all code to expose consistency/aesthetic issues.
  
 -   Install      -   Provide ACE Channel implementation (for porting purposes)?
  
     -   Need install mechanism for Unix and Windows.      -   Expand datatime (setCurrentTime() and comparison and increment
           functions).
  
 -   Interoperability      -   Write Pegasus Architecture Paper.
  
     -   Fix reported bugs.      -   Implement MOF provider registration scheme (according to the
           standard).
  
 -   Internationalization      -   WBEM Query Language and integration.
  
     - Handle UCS2 characters in XML (parsing and writing).      -   Threading
  
 -   Repository:      -   Package up pegasus in Install Shield application.
  
     - Export to MOF.      -   Internationalization: Handle UCS2 characters in XML
           (parsing and writing).
  
 -   Miscellaneous      -   Export of repository to MOF.
  
     - Figure out how to handle CIM null values.      -   Change CompareNoCase() to String::compareNoCase().
  
     - Generalize iteration.      -   Figure out how to handle CIM NULL values.
  
     - Figure out how inheritance of keys works.     - Figure out how inheritance of keys works.
  
     - Investiage weak assocations.     - Investiage weak assocations.
  
     - Provide conversions between DateTime and time_t.  
   
 -   Constraint hanlding  
   
     - Enforce constraint qualifiers.     - Enforce constraint qualifiers.
  
     - Disallow resetting size of fixed length arrays.     - Disallow resetting size of fixed length arrays.
  
 -   Optimization/Tuning  
   
     -   Shrink object sizes.     -   Shrink object sizes.
  
     -   Use lighter I/O system (than C++ streams).     -   Use lighter I/O system (than C++ streams).
Line 185 
Line 174 
  
     -   Optimize clear method on arrays (to not release memory).     -   Optimize clear method on arrays (to not release memory).
  
 -   Porting      -   Provide conversions between DateTime and time_t.
  
     -   Port to Solaris     -   Port to Solaris
  
     -   Port to HPUX      -   Support multiple providers of the extact same class.
           DiskController example and LanController.
     -   Port to AIX  
   
 -   Testing  
   
     -   Run Purify on all sources (port to Sun first).  
   
     -   Run CIM/XML test suite.  
   
 -   Server  
   
     -   Use Service class in cimserver  
   
     -   Implement Service class on Unix (daemonization from Comer book).  
   
 Short-term Items  
 ================  
   
 -   Make HashTable take Equal template function argument.  
  
 -   Make InheritanceTree case-insensitive.      -   SLP
               - Eliminate lib directory.


Legend:
Removed from v.1.4  
changed lines
  Added in v.1.26

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2