1 mike 1.3 Urgent
2 ======
3
|
4 mike 1.11 - Add CIMOM handle to provider interface.
5
|
6 mike 1.3 - Fix case sensitivity problems in repository (just add an _Open method
7 that ignores the case of the file).
|
8 mike 1.1
|
9 mike 1.5 - Add newly implemented repository operations to protocol and to
10 dispatcher.
11
|
12 karl 1.14 - Change INVALID_CLASS exceptions to NOT_FOUND (they're wrong in
|
13 mike 1.5 Repository).
|
14 mike 1.4
|
15 mike 1.7 - Add tracing of output HTTP messages.
16
|
17 mike 1.8 - Need CIMInstance::removeMethod() and CIMInstance::removeProperty().
|
18 karl 1.14 - Add a exists namespace operation under the repository stuff. Maybe we
19 need more than this.
|
20 mike 1.8
|
21 mike 1.1 Topical To-Do List
22 ==================
23
|
24 mike 1.15 - Sun uses string message-ids. Pegasus uses integer.
25 Sun uses 2000.5.12.... format. Changed Pegasus to
26 use string message-ids. DONE.
27
28 - Some clients send '\n\n' to terminate HTTP headers.
29 We were only accepted '\r\n\r\n'. DONE.
30
|
31 mike 1.13 - Provide way of printing out command line options help from cimserver.
32
|
33 karl 1.14 - GetInstances() and GetClasses() need to use iterators on
|
34 mike 1.12 provider and repository end. Otherwise, all classes or instance
35 to be enumerated, must be sucked into memory.
|
36 karl 1.14
|
37 mike 1.10 - Template bloat reduction.
38
39 - Use YACC on Linux.
40
41 - Need a tool to say which features are supported by a compiler.
42
|
43 mike 1.9 - Support unloading of dynamic libraries (presently only load() is
44 supported).
45
|
46 mike 1.1 - Instances:
47
|
48 mike 1.5 - Implement CIMRepository::getProperty()
|
49 mike 1.1
|
50 mike 1.5 - Implement CIMRepository::setProperty()
|
51 mike 1.1
|
52 mike 1.5 - Implement CIMRepository::deleteInstance()
|
53 mike 1.1
|
54 mike 1.5 - Implement CIMRepository::modifyInstance()
|
55 mike 1.1
|
56 mike 1.5 - Implement CIMRepository::enumerateInstances()
|
57 mike 1.1
|
58 mike 1.5 - Implement CIMRepository::enumerateInstanceNames()
|
59 mike 1.1
|
60 mike 1.5 - Handle inheritance in all instance operations.
|
61 mike 1.1
62 - Double check that all these operations work across protocol.
63
|
64 mike 1.5 - Check that they have keys during validation.
|
65 mike 1.1
66 - Associations:
67
|
68 mike 1.5 - Implement CIMRepository::referencesOf()
|
69 mike 1.1
|
70 mike 1.5 - Implement CIMRepository::associatorsOf()
|
71 mike 1.1
72 - Implement protocol stubs for these operations.
73
74 - Exceptions:
75
|
76 mike 1.5 - Force __FILE__ and __LINE__ argument on every usage of CIMException.
|
77 mike 1.2
|
78 mike 1.1 - Clean up and consolidate exception classes.
79
|
80 mike 1.5 - Propagate underlying error messages across the CIM protocol.
|
81 mike 1.1
82 - References:
83
84 - Validate arguments to CIMReference compound constructor and modifiers.
85 (namespaces, hosts, classnames, and keybindings)
86
|
87 mike 1.5 - Be sure that escape sequences are handled inside of object names. For
|
88 mike 1.1 example:
89
90 X.key1="Hello \"You\""
91
92 - Protocol:
93
|
94 mike 1.5 - Improve protocol tracing to show messages in both directions.
|
95 mike 1.1
|
96 mike 1.5 - The TCPChannel::writeN() method blocks when the client and server
|
97 mike 1.1 are in the same process. That is because the client cannot read
98 anything as long as writeN() is blocked on a synchronous write.
99
|
100 mike 1.5 - Figure out how to handle getProperty() return type.
|
101 mike 1.1
|
102 mike 1.5 - Provide ACE Channel implementation (for porting purposes)?
|
103 mike 1.1
|
104 mike 1.5 - Handle PARAMETER.REFARRAY in Procotol?
|
105 mike 1.1
|
106 mike 1.5 - Ignore extraneous XML elements (loosely valid).
|
107 mike 1.1
108 - Porting:
109
110 - Replace "std::something" with "STD(something)"
111
|
112 mike 1.5 - Replace "using namespace std" with "USING_NAMESPACE_PEGASUS"
|
113 mike 1.1
114 - Aesthetics/Consistency/Usability:
115
|
116 mike 1.5 - Change getLength() and getSize() to just size(): "Brevity is the soul
|
117 karl 1.14 of genius and of Lingerie".
|
118 mike 1.1
|
119 mike 1.5 - Add methods to get objects by their names, in addition to index. For
|
120 mike 1.1 example:
121
122 CIMProperty CIMClass::getProperty(const String& name);
123
|
124 mike 1.5 - Perform walkthrough to expose consistency problems.
|
125 mike 1.1
|
126 mike 1.5 - Distinguish between private and public classes (otherwise, users may
|
127 mike 1.1 come to depend on classes with unstable interfaces).
128
129 - Documentation:
130
|
131 mike 1.5 - Suggest newlines after methods.
|
132 mike 1.1
|
133 mike 1.5 - Suggest use of "/** ... */" instead of "///"
|
134 mike 1.1
135 - Refine header file documentation.
136
137 - Write Pegasus Architecture Paper.
138
|
139 mike 1.5 - Integrate DOC++ with make system (put all docs in doc tree):
|
140 mike 1.1
141 - Namespaces:
142
|
143 mike 1.5 - Implement create and destroy namespace (according to the standard).
|
144 mike 1.1
145 - Providers
146
|
147 mike 1.5 - Add CIM-Server handles to provider interface.
|
148 mike 1.1
|
149 karl 1.14 - Implement MOF provider registration scheme (according to the
150 standard).
|
151 mike 1.1
152 - WBEM Query Language
153
154 - Find someone to work on standard.
155
|
156 mike 1.5 - Implement leve-1 parser.
|
157 mike 1.1
158 - MOF compiler:
159
|
160 mike 1.5 - Work with Bob to identify work items.
|
161 mike 1.1
162 - Threading
163
|
164 mike 1.5 - Write thread queuing document (input and output thread queue per
|
165 mike 1.1 provider).
166
|
167 mike 1.5 - Implement queuing.
|
168 mike 1.1
|
169 mike 1.5 - Make reference counted objects thread safe (Mutexing and atomic
|
170 mike 1.1 increments).
171
172 - Connectors
173
|
174 mike 1.5 - Work out basic concepts (write paper).
|
175 mike 1.1
176 - Package up pegasus in Install Shield application.
177
178
179 - Install
180
|
181 mike 1.5 - Need install mechanism for Unix and Windows.
|
182 mike 1.1
183 - Interoperability
184
|
185 mike 1.5 - Fix reported bugs.
|
186 mike 1.1
187 - Internationalization
188
|
189 mike 1.5 - Handle UCS2 characters in XML (parsing and writing).
|
190 mike 1.1
191 - Repository:
192
|
193 mike 1.5 - Export to MOF.
|
194 mike 1.1
195 - Miscellaneous
196
|
197 mike 1.6 - Change CompareNoCase() to String::compareNoCase().
198
|
199 mike 1.5 - Place configuration startup parameters in Repository (e.g., port).
200
|
201 karl 1.14 - Integrate logging
|
202 mike 1.1
|
203 mike 1.5 - Figure out how to handle CIM null values.
|
204 mike 1.1
|
205 mike 1.5 - Generalize iteration.
|
206 mike 1.1
|
207 mike 1.5 - Figure out how inheritance of keys works.
|
208 mike 1.1
|
209 mike 1.5 - Investiage weak assocations.
|
210 mike 1.1
|
211 mike 1.5 - Provide conversions between DateTime and time_t.
|
212 karl 1.14
|
213 mike 1.1 - Constraint hanlding
214
|
215 mike 1.5 - Enforce constraint qualifiers.
|
216 mike 1.1
|
217 mike 1.5 - Disallow resetting size of fixed length arrays.
|
218 mike 1.1
219 - Optimization/Tuning
220
|
221 mike 1.5 - Shrink object sizes.
|
222 mike 1.1
|
223 mike 1.5 - Use lighter I/O system (than C++ streams).
|
224 mike 1.1
|
225 mike 1.5 - Run Purify on all sources (port to Sun first).
|
226 mike 1.1
|
227 mike 1.5 - Optimize clear method on arrays (to not release memory).
|
228 mike 1.1
229 - Porting
230
|
231 mike 1.5 - Port to Solaris
|
232 mike 1.1
|
233 mike 1.5 - Port to HPUX
|
234 mike 1.1
|
235 mike 1.5 - Port to AIX
|
236 mike 1.1
237 - Testing
238
|
239 mike 1.5 - Test case insensitivity of class names and qualifier names.
240
241 - Run Purify on all sources (port to Sun first).
|
242 mike 1.1
|
243 mike 1.5 - Run CIM/XML test suite.
|
244 mike 1.1
245 - Server
246
|
247 mike 1.5 - Use Service class in cimserver
|
248 mike 1.1
|
249 mike 1.5 - Implement Service class on Unix (daemonization from Comer book).
|
250 karl 1.14
|