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

File: [Pegasus] / pegasus / doc / Attic / todo.txt (download)
Revision: 1.16, Tue Jun 12 08:02:26 2001 UTC (22 years, 11 months ago) by mike
Branch: MAIN
Changes since 1.15: +14 -0 lines
Removed debug I/O

Urgent
======

    -   Fix problem with cimserver not running properly when run without
	options.

    -   Put cimserver back in the makefile.

    -   Resolve whether the backslash should be permitted int namespaces.

    -   Work on developer's guidlines document.

	    No STL (or other third party software).
	    Indent by three.
	    Braces on the next line.
	    Always run regression tests before committing and do cvs -q update.

    -   Add CIMOM handle to provider interface.

    -	Fix case sensitivity problems in repository (just add an _Open method
	that ignores the case of the file).

    -	Add newly implemented repository operations to protocol and to
	dispatcher.

    -	Change INVALID_CLASS exceptions to NOT_FOUND (they're wrong in
	Repository).

    -	Add tracing of output HTTP messages.

    -   Need CIMInstance::removeMethod() and CIMInstance::removeProperty().
    -   Add a exists namespace operation under the repository stuff.  Maybe we
    need more than this.

Topical To-Do List
==================

    - 	Sun uses string message-ids. Pegasus uses integer.
	Sun uses 2000.5.12.... format. Changed Pegasus to
	use string message-ids. DONE.

    -   Some clients send '\n\n' to terminate HTTP headers.
	We were only accepted '\r\n\r\n'. DONE.

    -	Provide way of printing out command line options help from cimserver.

    - 	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.

    -   Template bloat reduction.

    -	Use YACC on Linux.

    - 	Need a tool to say which features are supported by a compiler.

    -   Support unloading of dynamic libraries (presently only load() is
	supported).

-   Instances:

    -	Implement CIMRepository::getProperty()

    -	Implement CIMRepository::setProperty()

    -	Implement CIMRepository::deleteInstance()

    -	Implement CIMRepository::modifyInstance()

    -	Implement CIMRepository::enumerateInstances()

    -	Implement CIMRepository::enumerateInstanceNames()

    -	Handle inheritance in all instance operations.

    -	Double check that all these operations work across protocol.

    -	Check that they have keys during validation.

-   Associations:

    -	Implement CIMRepository::referencesOf()

    -	Implement CIMRepository::associatorsOf()

    -	Implement protocol stubs for these operations.

-   Exceptions:

    -	Force __FILE__ and __LINE__ argument on every usage of CIMException.

    -	Clean up and consolidate exception classes.

    -	Propagate underlying error messages across the CIM protocol.

-   References:

    -	Validate arguments to CIMReference compound constructor and modifiers.
	(namespaces, hosts, classnames, and keybindings)

    -	Be sure that escape sequences are handled inside of object names. For
	example:

	    X.key1="Hello \"You\""

-   Protocol:

    -	Improve protocol tracing to show messages in both directions.

    -	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.

    -	Provide ACE Channel implementation (for porting purposes)?

    -	Handle PARAMETER.REFARRAY in Procotol?

    -	Ignore extraneous XML elements (loosely valid).

-   Porting:

    -	Replace "std::something" with "STD(something)"

    -	Replace "using namespace std" with "USING_NAMESPACE_PEGASUS"

-   Aesthetics/Consistency/Usability:

    -	Change getLength() and getSize() to just size(): "Brevity is the soul
	of genius and of Lingerie".

    -	Add methods to get objects by their names, in addition to index. For
	example:

	    CIMProperty CIMClass::getProperty(const String& name);

    -	Perform walkthrough to expose consistency problems.

    -	Distinguish between private and public classes (otherwise, users may
	come to depend on classes with unstable interfaces).

-   Documentation:

    -	Suggest newlines after methods.

    -	Suggest use of "/** ... */" instead of "///"

    -	Refine header file documentation.

    -	Write Pegasus Architecture Paper.

    -	Integrate DOC++ with make system (put all docs in doc tree):

-   Namespaces:

    -	Implement create and destroy namespace (according to the standard).

-   Providers

    -	Add CIM-Server handles to provider interface.

    -	Implement MOF provider registration scheme (according to the
    standard).

-   WBEM Query Language

    -	Find someone to work on standard.

    -	Implement leve-1 parser.

-   MOF compiler:

    -	Work with Bob to identify work items.

-   Threading

    -	Write thread queuing document (input and output thread queue per
	provider).

    -	Implement queuing.

    -	Make reference counted objects thread safe (Mutexing and atomic
	increments).

-   Connectors

    -	Work out basic concepts (write paper).

    -	Package up pegasus in Install Shield application.


-   Install

    -	Need install mechanism for Unix and Windows.

-   Interoperability

    -	Fix reported bugs.

-   Internationalization

    -	Handle UCS2 characters in XML (parsing and writing).

-   Repository:

    -	Export to MOF.

-   Miscellaneous

    -   Change CompareNoCase() to String::compareNoCase().

    -	Place configuration startup parameters in Repository (e.g., port).

    -	Integrate logging

    -	Figure out how to handle CIM null values.

    -	Generalize iteration.

    -	Figure out how inheritance of keys works.

    -	Investiage weak assocations.

    -	Provide conversions between DateTime and time_t.

-   Constraint hanlding

    -	Enforce constraint qualifiers.

    -	Disallow resetting size of fixed length arrays.

-   Optimization/Tuning

    -	Shrink object sizes.

    -	Use lighter I/O system (than C++ streams).

    -	Run Purify on all sources (port to Sun first).

    -	Optimize clear method on arrays (to not release memory).

-   Porting

    -	Port to Solaris

    -	Port to HPUX

    -	Port to AIX

-   Testing

    -	Test case insensitivity of class names and qualifier names.

    -	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).


No CVS admin address has been configured
Powered by
ViewCVS 0.9.2