1 tony 1.1 // ===================================================================
2 // Title: System Logs 2.8
3 // Filename: System28_Logs.mof
4 // Version: 2.8
5 // Status: Final
6 // Date: Jan 26, 2004
7 // ===================================================================
8 // Copyright 2000-2003 Distributed Management Task Force, Inc. (DMTF).
9 // All rights reserved.
10 // DMTF is a not-for-profit association of industry members dedicated
11 // to promoting enterprise and systems management and interoperability.
12 // DMTF specifications and documents may be reproduced for uses
13 // consistent with this purpose by members and non-members,
14 // provided that correct attribution is given.
15 // As DMTF specifications may be revised from time to time,
16 // the particular version and release date should always be noted.
17 //
18 // Implementation of certain elements of this standard or proposed
19 // standard may be subject to third party patent rights, including
20 // provisional patent rights (herein "patent rights"). DMTF makes
21 // no representations to users of the standard as to the existence
22 tony 1.1 // of such rights, and is not responsible to recognize, disclose, or
23 // identify any or all such third party patent right, owners or
24 // claimants, nor for any incomplete or inaccurate identification or
25 // disclosure of such rights, owners or claimants. DMTF shall have no
26 // liability to any party, in any manner or circumstance, under any
27 // legal theory whatsoever, for failure to recognize, disclose, or
28 // identify any such third party patent rights, or for such party's
29 // reliance on the standard or incorporation thereof in its product,
30 // protocols or testing procedures. DMTF shall have no liability to
31 // any party implementing such standard, whether such implementation
32 // is foreseeable or not, nor to any patent owner or claimant, and shall
33 // have no liability or responsibility for costs or losses incurred if
34 // a standard is withdrawn or modified after publication, and shall be
35 // indemnified and held harmless by any party implementing the
36 // standard from any and all claims of infringement by a patent owner
37 // for such implementations.
38 //
39 // For information about patents held by third-parties which have
40 // notified the DMTF that, in their opinion, such patent may relate to
41 // or impact implementations of DMTF standards, visit
42 // http://www.dmtf.org/about/policies/disclosures.php.
43 tony 1.1 // ===================================================================
44 // Description: The System Model defines system related management
45 // concepts. This file defines the specific concepts to
46 // manage message logs and log records.
47 //
48 // The object classes below are listed in an order that
49 // avoids forward references. Required objects, defined
50 // by other working groups, are omitted.
51 // ==================================================================
52 // Change Log for v2.8 Final
53 // CR1204 - Removal of Experimental qualifier for Preliminary to Final
54 // CR1223 - SysDev Omnibus MOF corrections.
55 //
56 // Change Log for v2.8 Preliminary
57 // CR1056 - Addition of OperationLog
58 // CR938 - Add parseable string for LogRecord data
59 //
60 // Change Log for v2.7
61 // CR757 - Change the subclassing of MessageLog from LogicalElement
62 // to EnabledLogicalElement
63 // CR771 - Add the Composition qualifer to RecordInLog
64 tony 1.1 // ===================================================================
65
66 #pragma locale ("en_US")
67
68
69 // ===================================================================
70 // MessageLog
71 // ===================================================================
72 [Version ( "2.7.0" ), Description (
73 "MessageLog represents any type of event, error or "
74 "informational register or chronicle. The object describes the "
75 "existence of the log and its characteristics. Several methods "
76 "are defined for retrieving, writing and deleting log entries, "
77 "and maintaining the log.")]
78 class CIM_MessageLog : CIM_EnabledLogicalElement {
79
80 [Key, Description (
81 "CreationClassName indicates the name of the class or the "
82 "subclass used in the creation of an instance. When used "
83 "with the other key properties of this class, this property "
84 "allows all instances of this class and its subclasses to be "
85 tony 1.1 "uniquely identified."),
86 MaxLen ( 256 )]
87 string CreationClassName;
88
89 [Key, Override ( "Name" ), Description (
90 "The inherited Name serves as part of the key (a unique "
91 "identifier) for the MessageLog instance."),
92 MaxLen ( 256 )]
93 string Name;
94
95 [Description (
96 "An array of integers indicating the Log capabilities. "
97 "Information such as \"Write Record Supported\" (value= 2) "
98 "or \"Variable Length Records Supported\" (8) is specified "
99 "in this property."),
100 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
101 "10" },
102 Values { "Unknown", "Other", "Write Record Supported",
103 "Delete Record Supported", "Can Move Backward in Log",
104 "Freeze Log Supported", "Clear Log Supported",
105 "Supports Addressing by Ordinal Record Number",
106 tony 1.1 "Variable Length Records Supported",
107 "Variable Formats for Records",
108 "Can Flag Records for Overwrite" }, ArrayType ( "Indexed" ),
109 ModelCorrespondence { "CIM_MessageLog.CapabilitiesDescriptions"
110 }]
111 uint16 Capabilities[];
112
113 [Description (
114 "An array of free-form strings providing more detailed "
115 "explanations for any of the Log features indicated in the "
116 "Capabilities array. Note, each entry of this array is "
117 "related to the entry in the Capabilities array that is "
118 "located at the same index."),
119 ArrayType ( "Indexed" ),
120 ModelCorrespondence { "CIM_MessageLog.Capabilities" }]
121 string CapabilitiesDescriptions[];
122
123 [Description (
124 "The maximum size, in bytes, to which the Log can grow. If "
125 "there is no maximum, then MaxLogSize should be set to 0."),
126 Units ( "Bytes" )]
127 tony 1.1 uint64 MaxLogSize;
128
129 [Description (
130 "The size of the Log header, in bytes, if one is present. If "
131 "there is no Log header, then this property should be set to "
132 "0. Headers may include general information about the Log "
133 "such as the current number of records, time of last update, "
134 "or a pointer to the location of the first Log entry. Note "
135 "that this property is NOT the size of the header for an "
136 "individual Log entry. The latter is described by the "
137 "property, SizeOfRecordHeader."),
138 Units ( "Bytes" )]
139 uint64 SizeOfHeader;
140
141 [Description (
142 "If the SizeOfHeader property is non-zero, this property "
143 "describes the structure and format of the Log header. It is "
144 "a free-form string. If the SizeOfHeader property is 0, then "
145 "the information in this property is undefined.")]
146 string HeaderFormat;
147
148 tony 1.1 [Description (
149 "Maximum size, in bytes, to which an individual Log entry "
150 "(record) can grow - if the Capabilities array includes a "
151 "value of 7 (\"Variable Length Records Supported\"). If the "
152 "Capabilities array does not include a 7, then the Log only "
153 "supports fixed length entries. The size of these entries is "
154 "described by this property."),
155 Units ( "Bytes" )]
156 uint64 MaxRecordSize;
157
158 [Description (
159 "The size of the header for the Log's individual entries, in "
160 "bytes, if record headers are defined. If there are no "
161 "record headers, then this property should be set to 0. "
162 "Record headers may include information such as the type of "
163 "the Log entry, the date/time that the entry was last "
164 "updated, or a pointer to the start of optional data. Note "
165 "that this property defines the header size for individual "
166 "records in the Log, while the SizeOfHeader property "
167 "describes the Log's overall header, typically located at "
168 "the start of the MessageLog."),
169 tony 1.1 Units ( "Bytes" )]
170 uint64 SizeOfRecordHeader;
171
172 [Description (
173 "If the SizeOfRecordHeader property is non-zero, this "
174 "property describes the structure and format of the record "
175 "headers. It is a free-form string. If the "
176 "SizeOfRecordHeader property is 0, then the information in "
177 "this property is undefined.")]
178 string RecordHeaderFormat;
179
180 [Description (
181 "Maximum number of records that can be captured in the Log. "
182 "If undefined, a value of zero should be specified. Note "
183 "that when the Capabilities array indicates that variable "
184 "length records are supported (value=7), then it is possible "
185 "that this maximum may not be achieved.")]
186 uint64 MaxNumberOfRecords;
187
188 [Description (
189 "Current number of entries (records) in the Log."),
190 tony 1.1 Gauge]
191 uint64 CurrentNumberOfRecords;
192
193 [Description (
194 "An enumeration describing the behavior of the Log, when it "
195 "becomes full or near full. For example, the Log may wrap "
196 "(value=2) or may simply stop recording entries (value =7). "
197 "\n\n"
198 "Some of the property's possible values need further "
199 "explanation: \n"
200 "3=\"Clear When Near Full\" indicates that all of the Log's "
201 "entries will be deleted when a specified record capacity is "
202 "reached. The capacity is specified in percentage, using the "
203 "property, PercentageNearFull. 'Near Full' may be less than "
204 "100% if the Log takes time to clear, and a position should "
205 "always be available for new records. \n"
206 "4=\"Overwrite Outdated When Needed\" describes that Log "
207 "entries (timestamped later than the date/time specified in "
208 "the property, TimeWhenOutdated) can be overwritten. \n"
209 "5=\"Remove Outdated Records\" specifies that records "
210 "(timestamped later than the date/time specified in the "
211 tony 1.1 "property, TimeWhenOutdated) are logically and/or physically "
212 "removed from the Log. \n"
213 "6=\"Overwrite Specific Records\" indicates that specially "
214 "flagged records may be overwritten. This property only "
215 "makes sense when the Capabilities array includes a value of "
216 "10, \"Can Flag Records for Overwrite\"."),
217 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7" },
218 Values { "Unknown", "Other", "Wraps When Full",
219 "Clear When Near Full", "Overwrite Outdated When Needed",
220 "Remove Outdated Records", "Overwrite Specific Records",
221 "Never Overwrite" },
222 ModelCorrespondence { "CIM_MessageLog.OtherPolicyDescription",
223 "CIM_MessageLog.TimeWhenOutdated",
224 "CIM_MessageLog.PercentageNearFull" }]
225 uint16 OverwritePolicy;
226
227 [Description (
228 "When the OverwritePolicy specifies a value of 1 "
229 "(\"Other\"), the Log's behavior can be explained using this "
230 "property. If OverwritePolicy is not 1, then this property's "
231 "contents are undefined."),
232 tony 1.1 ModelCorrespondence { "CIM_MessageLog.OverwritePolicy" }]
233 string OtherPolicyDescription;
234
235 [Description (
236 "If the OverwritePolicy is based on 'outdated' records "
237 "(values 4 or 5), this property defines when a Log entry is "
238 "considered to be outdated - either by time interval or at a "
239 "specific date and time."),
240 ModelCorrespondence { "CIM_MessageLog.OverwritePolicy" }]
241 datetime TimeWhenOutdated;
242
243 [Description (
244 "If the OverwritePolicy is based on clearing records when "
245 "the Log is near full (value=3), this property defines the "
246 "record capacity (in percentage) that is considered to be "
247 "'near full'."),
248 Units ( "Percent" ),
249 ModelCorrespondence { "CIM_MessageLog.OverwritePolicy" }]
250 uint8 PercentageNearFull;
251
252 [Description (
253 tony 1.1 "An enumeration describing the last change to the "
254 "MessageLog."),
255 ValueMap { "0", "1", "2", "3", "4" },
256 Values { "Unknown", "Add", "Delete", "Modify", "Log Cleared" }]
257 uint16 LastChange;
258
259 [Description (
260 "When a change is made to the Log, the date/time of that "
261 "modification is captured. This property could be used to "
262 "event against any update to the MessageLog.")]
263 datetime TimeOfLastChange;
264
265 [Description (
266 "When a change is made to the Log, the record number that "
267 "was modified is captured.")]
268 uint64 RecordLastChanged;
269
270 [Description (
271 "Boolean indicating that the Log is currently frozen and "
272 "modifications are not allowed.")]
273 boolean IsFrozen;
274 tony 1.1
275 [Description (
276 "An enumeration describing the character set used to record "
277 "data in the individual Log entries. For example, the Log "
278 "records may contain ASCII data (value=2), or be raw octet "
279 "strings (value=10)."),
280 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
281 "10", "11" },
282 Values { "Unknown", "Other", "ASCII", "Unicode", "ISO2022",
283 "ISO8859", "Extended UNIX Code", "UTF-8", "UCS-2",
284 "Bitmapped Data", "OctetString",
285 "Defined by Individual Records" }]
286 uint16 CharacterSet;
287
288 [Description (
289 "Requests that the MessageLog be cleared of all entries. The "
290 "return value should be 0 if the request was successfully "
291 "executed, 1 if the request is not supported and some other "
292 "value if an error occurred. If the request is not "
293 "supported, check the Capabilities array that a value of 6 "
294 "(\"Clear Log Supported\") is specified. \n"
295 tony 1.1 "\n"
296 "Note: In a subclass, the set of possible return codes could "
297 "be described using a ValueMap qualifier on the method. The "
298 "strings to which the ValueMap contents are 'translated' may "
299 "also be specified in the subclass as a Values array "
300 "qualifier.")]
301 uint32 ClearLog();
302
303 [Description (
304 "Requests that an iteration of the MessageLog be established "
305 "and that the iterator be set to the first entry in the Log. "
306 "An identifier for the iterator is returned as an output "
307 "parameter of the method. \n"
308 "\n"
309 "Regarding iteration, you have 2 choices: 1) Embed iteration "
310 "data in the method call, and allow implementations to "
311 "track/ store this data manually; or, 2) Iterate using a "
312 "separate object (for example, class ActiveIterator) as an "
313 "iteration agent. The first approach is used here for "
314 "interoperability. The second requires an instance of the "
315 "Iterator object for EACH iteration in progress. 2's "
316 tony 1.1 "functionality could be implemented underneath 1. \n"
317 "\n"
318 "The return value from PositionToFirstRecord should be 0 if "
319 "the request was successfully executed, 1 if the request is "
320 "not supported and some other value if an error occurred. In "
321 "a subclass, the set of possible return codes could be "
322 "specified, using a ValueMap qualifier on the method. The "
323 "strings to which the ValueMap contents are 'translated' may "
324 "also be specified in the subclass as a Values array "
325 "qualifier.")]
326 uint32 PositionToFirstRecord (
327 [IN ( false ), OUT, Description (
328 "An identifier for the iterator.")]
329 string IterationIdentifier);
330
331 [Description (
332 "Requests that the Log's iteration identifier be advanced or "
333 "retreated a specific number of records, or set to the entry "
334 "at a specified numeric location. These two different "
335 "behaviors are accomplished using the input parameters of "
336 "the method. Advancing or retreating is achieved by setting "
337 tony 1.1 "the MoveAbsolute boolean to FALSE, and then specifying the "
338 "number of entries to advance or retreat as positive or "
339 "negative values in the RecordNumber parameter. Moving to a "
340 "specific record number is accomplished by setting the "
341 "MoveAbsolute input parameter to TRUE, and then placing the "
342 "record number into the RecordNumber parameter. This can "
343 "only be done if the Capabilities array includes a value of "
344 "7, \"Supports Addressing by Ordinal Record Number\". \n"
345 "\n"
346 "After the method completes and if ordinal record numbers "
347 "are supported (the Capabilities array includes a 7), the "
348 "current record number is returned in the RecordNumber "
349 "output parameter. Otherwise, the value of the parameter is "
350 "undefined. \n"
351 "\n"
352 "IterationIdentifier is defined as an Input/Output method "
353 "parameter to allow the Log to embed state information in "
354 "the Identifier and potentially let the identifier be "
355 "maintained by the using application. \n"
356 "\n"
357 "The return value from PositionAtRecord should be 0 if the "
358 tony 1.1 "request was successfully executed, 1 if the request is not "
359 "supported and some other value if an error occurred. If the "
360 "request is not supported, check the Capabilities array "
361 "regarding support for ordinal record number addressing and "
362 "backward movement in the Log (values 7 and 4, "
363 "respectively). \n"
364 "\n"
365 "Note: In a subclass, the set of possible return codes could "
366 "be described using a ValueMap qualifier on the method. The "
367 "strings to which the ValueMap contents are 'translated' may "
368 "also be specified in the subclass as a Values array "
369 "qualifier.")]
370 uint32 PositionAtRecord (
371 [IN, OUT, Description (
372 "An identifier for the iterator.")]
373 string IterationIdentifier,
374 [IN, Description (
375 "Advancing or retreating the IterationIdentifier is "
376 "achieved by setting the MoveAbsolute boolean to FALSE, "
377 "and specifying the number of entries to advance or "
378 "retreat as positive or negative values in the "
379 tony 1.1 "RecordNumber parameter. Moving to a specific record "
380 "number is accomplished by setting the MoveAbsolute "
381 "parameter to TRUE, and placing the record number into "
382 "the RecordNumber parameter.")]
383 boolean MoveAbsolute,
384 [IN, OUT, Description (
385 "The relative or absolute record number.")]
386 sint64 RecordNumber);
387
388 [Description (
389 "Requests that the record indicated by the "
390 "IterationIdentifier be retrieved from the MessageLog. After "
391 "retrieval, the IterationIdentifier may be advanced to the "
392 "next record by setting the PositionToNext input parameter "
393 "to TRUE. Two output parameters are defined for the method - "
394 "RecordData which holds the contents of the Log entry (as an "
395 "array of bytes that can be recast to an appropriate "
396 "format), and RecordNumber which returns the current record "
397 "number addressed via the Iteration Identifier. The "
398 "RecordNumber parameter is only defined/valid when the "
399 "Capabilities array indicates that ordinal record number "
400 tony 1.1 "addressing is supported (a value of 7). \n"
401 "\n"
402 "IterationIdentifier is defined as an Input/Output method "
403 "parameter to allow the Log to embed state information in "
404 "the Identifier and potentially let the identifier be "
405 "maintained by the using application. \n"
406 "\n"
407 "The return value from GetRecord should be 0 if the request "
408 "was successfully executed, 1 if the request is not "
409 "supported, and some other value if an error occurred. In a "
410 "subclass, the set of possible return codes could be "
411 "specified, using a ValueMap qualifier on the method. The "
412 "strings to which the ValueMap contents are 'translated' may "
413 "also be specified in the subclass as a Values array "
414 "qualifier.")]
415 uint32 GetRecord (
416 [IN, OUT, Description (
417 "An identifier for the iterator.")]
418 string IterationIdentifier,
419 [IN, Description (
420 "Boolean indicating that the Iteration Identifier should "
421 tony 1.1 "be advanced to the next record, after retrieving the "
422 "current Log entry.")]
423 boolean PositionToNext,
424 [IN ( false ), OUT, Description (
425 "The record number.")]
426 uint64 RecordNumber,
427 [IN ( false ), OUT, Description (
428 "The record data.")]
429 uint8 RecordData[]);
430
431 [Description (
432 "Requests that the record indicated by the "
433 "IterationIdentifier be deleted from the MessageLog. After "
434 "deletion, the Iteration Identifier may be advanced to the "
435 "next record by setting the PositionToNext input parameter "
436 "to TRUE. If set to FALSE, then the IterationIdentifier will "
437 "be positioned at the previous record. Two output parameters "
438 "are defined for the method - RecordData which holds the "
439 "contents of the deleted Log entry (as an array of bytes "
440 "that can be recast to an appropriate format or discarded), "
441 "and RecordNumber which returns the current record number "
442 tony 1.1 "addressed via the IterationIdentifier. The RecordNumber "
443 "parameter is only defined/valid when the Capabilities array "
444 "indicates that ordinal record number addressing is "
445 "supported (a value of 7). \n"
446 "\n"
447 "IterationIdentifier is defined as an Input/Output method "
448 "parameter to allow the Log to embed state information in "
449 "the Identifier and potentially let the identifier be "
450 "maintained by the using application. \n"
451 "\n"
452 "The return value from DeleteRecord should be 0 if the "
453 "request was successfully executed, 1 if the request is not "
454 "supported, and some other value if an error occurred. If "
455 "the request is not supported, check the Capabilities array "
456 "that a value of 3 (\"Delete Record Supported\") is "
457 "specified. \n"
458 "\n"
459 "Note: In a subclass, the set of possible return codes could "
460 "be described using a ValueMap qualifier on the method. The "
461 "strings to which the ValueMap contents are 'translated' may "
462 "also be specified in the subclass as a Values array "
463 tony 1.1 "qualifier.")]
464 uint32 DeleteRecord (
465 [IN, OUT, Description (
466 "An identifier for the iterator.")]
467 string IterationIdentifier,
468 [IN, Description (
469 "Boolean that when set to TRUE requests the "
470 "IterationIdentifier to be advanced to the next record, "
471 "after the current entry is deleted. If set to FALSE, "
472 "IterationIdentifier is set to the previous record.")]
473 boolean PositionToNext,
474 [IN ( false ), OUT, Description (
475 "The record number.")]
476 uint64 RecordNumber,
477 [IN ( false ), OUT, Description (
478 "The record data.")]
479 uint8 RecordData[]);
480
481 [Description (
482 "Requests that a record be inserted at the Log position "
483 "indicated by the IterationIdentifier. The entry's data is "
484 tony 1.1 "provided in the RecordData input parameter. After "
485 "insertion, the IterationIdentifier may be advanced to the "
486 "next record by setting the PositionToNext input parameter "
487 "to TRUE. The output parameter, RecordNumber, returns the "
488 "current record number addressed via the "
489 "IterationIdentifier. This parameter is only defined/valid "
490 "when the Capabilities array indicates that ordinal record "
491 "number addressing is supported (a value of 7). \n"
492 "\n"
493 "IterationIdentifier is defined as an Input/Output method "
494 "parameter to allow the Log to embed state information in "
495 "the Identifier and potentially let the identifier be "
496 "maintained by the using application. \n"
497 "\n"
498 "The return value from WriteRecord should be 0 if the "
499 "request was successfully executed, 1 if the request is not "
500 "supported, and some other value if an error occurred. If "
501 "the request is not supported, check the Capabilities array "
502 "that a value of 2 (\"Write Record Supported\") is "
503 "specified. \n"
504 "\n"
505 tony 1.1 "Note: In a subclass, the set of possible return codes could "
506 "be described using a ValueMap qualifier on the method. The "
507 "strings to which the ValueMap contents are 'translated' may "
508 "also be specified in the subclass as a Values array "
509 "qualifier.")]
510 uint32 WriteRecord (
511 [IN, OUT, Description (
512 "An identifier for the iterator.")]
513 string IterationIdentifier,
514 [IN, Description (
515 "Boolean indicating that the Iteration Identifier should "
516 "be advanced to the next record, after writing the Log "
517 "entry.")]
518 boolean PositionToNext,
519 [IN, Description (
520 "The record data.")]
521 uint8 RecordData[],
522 [IN ( false ), OUT, Description (
523 "The record number.")]
524 uint64 RecordNumber);
525
526 tony 1.1 [Description (
527 "Requests that an iteration of the Log, identified by the "
528 "IterationIdentifier input parameter, be stopped. The return "
529 "value from CancelIteration should be 0 if the request was "
530 "successfully executed, 1 if the request is not supported "
531 "and some other value if an error occurred. In a subclass, "
532 "the set of possible return codes could be specified, using "
533 "a ValueMap qualifier on the method. The strings to which "
534 "the ValueMap contents are 'translated' may also be "
535 "specified in the subclass as a Values array qualifier.")]
536 uint32 CancelIteration (
537 [IN, Description (
538 "An identifier for the iterator.")]
539 string IterationIdentifier);
540
541 [Description (
542 "Requests that the MessageLog be placed in a frozen state "
543 "(\"Freeze\" input parameter = TRUE) or 'unfrozen' (= "
544 "FALSE). If frozen, modifications to the Log will not be "
545 "allowed. If successful, the Log's IsFrozen boolean property "
546 "will be updated to reflect the desired state. \n"
547 tony 1.1 "\n"
548 "The method's return code should be 0 if the request was "
549 "successfully executed, 1 if the request is not supported "
550 "and some other value if an error occurred. If the request "
551 "is not supported, check the Capabilities array that a value "
552 "of 5 (\"Freeze Log Supported\") is specified. \n"
553 "\n"
554 "Note: In a subclass, the set of possible return codes could "
555 "be described using a ValueMap qualifier on the method. The "
556 "strings to which the ValueMap contents are 'translated' may "
557 "also be specified in the subclass as a Values array "
558 "qualifier.")]
559 uint32 FreezeLog(
560 [IN, Description (
561 "If TRUE then freeze the log, if FALSE 'unfreeze' the "
562 "log.")]
563 boolean Freeze);
564
565 [Description (
566 "Requests that the record indicated by the "
567 "IterationIdentifier be flagged as overwriteable. This "
568 tony 1.1 "method is only supported when the Capabilities array "
569 "includes a value of 10, \"Can Flag Records for Overwrite\". "
570 "After updating the entry, the IterationIdentifier may be "
571 "advanced to the next record by setting the PositionToNext "
572 "input parameter to TRUE. One output parameter is defined "
573 "for the method RecordNumber. It returns the current record "
574 "number addressed via the Iteration Identifier. This "
575 "parameter is only defined/valid when the Capabilities array "
576 "indicates that ordinal record number addressing is "
577 "supported (a value of 7). \n"
578 "\n"
579 "IterationIdentifier is defined as an Input/Output method "
580 "parameter to allow the Log to embed state information in "
581 "the Identifier and potentially let the identifier be "
582 "maintained by the using application. \n"
583 "\n"
584 "The return value from FlagRecordForOverwrite should be 0 if "
585 "the request was successfully executed, 1 if the request is "
586 "not supported, and some other value if an error occurred. "
587 "In a subclass, the set of possible return codes could be "
588 "specified, using a ValueMap qualifier on the method. The "
589 tony 1.1 "strings to which the ValueMap contents are 'translated' may "
590 "also be specified in the subclass as a Values array "
591 "qualifier.")]
592 uint32 FlagRecordForOverwrite (
593 [IN, OUT, Description (
594 "An identifier for the iterator.")]
595 string IterationIdentifier,
596 [IN, Description (
597 "Boolean indicating that the Iteration Identifier should "
598 "be advanced to the next record, after updating the "
599 "current Log entry.")]
600 boolean PositionToNext,
601 [IN ( false ), OUT, Description (
602 "The record number.")]
603 uint64 RecordNumber);
604 };
605
606
607 // ===================================================================
608 // LogRecord
609 // ===================================================================
610 tony 1.1 [Version ( "2.7.0" ), Description (
611 "The LogRecord object can describe the definitional format for "
612 "entries in a MessageLog, or can be used to instantiate the "
613 "actual records in the Log. The latter approach provides a "
614 "great deal more semantic definition and management control "
615 "over the individual entries in a MessageLog, than do the "
616 "record manipulation methods of the Log class. It is "
617 "recommended that the data in individual Log entries be modeled "
618 "using subclasses of LogRecord, to avoid the creation of "
619 "LogRecords with one property (such as RecordData) without "
620 "semantics. \n"
621 "Definitional formats for LogRecords could be specified by "
622 "establishing a naming convention for the RecordID and Message "
623 "Timestamp key properties.")]
624 class CIM_LogRecord : CIM_ManagedElement {
625
626 [Key, Propagated ( "CIM_MessageLog.CreationClassName" ),
627 Description (
628 "The scoping Log's CreationClassName."),
629 MaxLen ( 256 )]
630 string LogCreationClassName;
631 tony 1.1
632 [Key, Propagated ( "CIM_MessageLog.Name" ), Description (
633 "The scoping Log's Name."),
634 MaxLen ( 256 )]
635 string LogName;
636
637 [Key, Description (
638 "CreationClassName indicates the name of the class or the "
639 "subclass used in the creation of an instance. When used "
640 "with the other key properties of this class, this property "
641 "allows all instances of this class and its subclasses to be "
642 "uniquely identified."),
643 MaxLen ( 256 )]
644 string CreationClassName;
645
646 [Key, Description (
647 "RecordID, with the MessageTimestamp property, serve to "
648 "uniquely identify the LogRecord within a MessageLog. Note "
649 "that this property is different than the RecordNumber "
650 "parameters of the MessageLog methods. The latter are "
651 "ordinal values only, useful to track position when "
652 tony 1.1 "iterating through a Log. On the other hand, RecordID is "
653 "truly an identifier for an instance of LogRecord. It may be "
654 "set to the record's ordinal position, but this is not "
655 "required."),
656 MaxLen ( 256 )]
657 string RecordID;
658
659 [Key, Description (
660 "A LogRecord's key structure includes a timestamp for the "
661 "entry.")]
662 datetime MessageTimestamp;
663
664 [Description (
665 "A free-form string describing the LogRecord's data "
666 "structure.")]
667 string DataFormat;
668 };
669
670
671 // ===================================================================
672 // RecordInLog
673 tony 1.1 // ===================================================================
674 [Association, Aggregation, Composition, Version ( "2.7.0" ),
675 Description (
676 "RecordInLog describes the aggregation or location of Log "
677 "entries within a MessageLog.")]
678 class CIM_RecordInLog {
679
680 [Key, Aggregate, Min ( 1 ), Max ( 1 ), Description (
681 "The Message Log.")]
682 CIM_MessageLog REF MessageLog;
683
684 [Key, Weak, Description (
685 "The Log entry contained within the MessageLog.")]
686 CIM_LogRecord REF LogRecord;
687 };
688
689
690 // ===================================================================
691 // LogInDeviceFile
692 // ===================================================================
693 [Association, Version ( "2.6.0" ), Description (
694 tony 1.1 "MessageLogs can reside in data files, on specially allocated "
695 "storage areas such as disks or memory, or output as raw I/O "
696 "streams. In fact, a single Log may use each of these "
697 "mechanisms to output or capture its contents. The "
698 "LogInDeviceFile association describes a Log outputting to a "
699 "raw I/O stream DeviceFile - for example, a serial port on a "
700 "UNIX system.")]
701 class CIM_LogInDeviceFile : CIM_Dependency {
702
703 [Override ( "Antecedent" ), Description (
704 "The I/O stream DeviceFile.")]
705 CIM_DeviceFile REF Antecedent;
706
707 [Override ( "Dependent" ), Description (
708 "The MessageLog outputting to the DeviceFile.")]
709 CIM_MessageLog REF Dependent;
710 };
711
712
713 // ===================================================================
714 // LogInDataFile
715 tony 1.1 // ===================================================================
716 [Association, Version ( "2.6.0" ), Description (
717 "MessageLogs can reside in data files, on specially allocated "
718 "storage areas such as disks or memory, or output as raw I/O "
719 "streams. In fact, a single Log may use each of these "
720 "mechanisms to output or capture its contents. The "
721 "LogInDataFile association describes a Log stored as a "
722 "DataFile.")]
723 class CIM_LogInDataFile : CIM_Dependency {
724
725 [Override ( "Antecedent" ), Description (
726 "The DataFile.")]
727 CIM_DataFile REF Antecedent;
728
729 [Override ( "Dependent" ), Description (
730 "The MessageLog residing in the DataFile.")]
731 CIM_MessageLog REF Dependent;
732 };
733
734
735 // ===================================================================
736 tony 1.1 // LogInStorage
737 // ===================================================================
738 [Association, Version ( "2.6.0" ), Description (
739 "MessageLogs can reside in data files, on specially allocated "
740 "storage areas such as disks or memory, or output as raw I/O "
741 "streams. In fact, a single Log may use each of these "
742 "mechanisms to output or capture its contents. The LogInStorage "
743 "association describes a Log located in a specially allocated "
744 "portion of a StorageExtent. The offset of the Log, within the "
745 "Extent, is defined using a property of the association, "
746 "StartingOffset.")]
747 class CIM_LogInStorage : CIM_Dependency {
748
749 [Override ( "Antecedent" ), Description (
750 "The StorageExtent.")]
751 CIM_StorageExtent REF Antecedent;
752
753 [Override ( "Dependent" ), Description (
754 "The MessageLog located within the Extent.")]
755 CIM_MessageLog REF Dependent;
756
757 tony 1.1 [Description (
758 "StartingOffset indicates where in the Extent that the Log "
759 "begins.")]
760 uint64 StartingOffset;
761 };
762
763
764 // ===================================================================
765 // UseOfMessageLog
766 // ===================================================================
767 [Association, Version ( "2.6.0" ), Description (
768 "ManagedSystemElements may record their event, error or "
769 "informational data within MessageLogs. The use of a Log to "
770 "hold a ManagedSystemElement's data is described by this "
771 "association. The type of Element data captured by the Log can "
772 "be specified using the RecordedData string property.")]
773 class CIM_UseOfMessageLog : CIM_Dependency {
774
775 [Override ( "Antecedent" ), Description (
776 "The MessageLog.")]
777 CIM_MessageLog REF Antecedent;
778 tony 1.1
779 [Override ( "Dependent" ), Description (
780 "The ManagedSystemElement whose information is recorded in "
781 "the MessageLog.")]
782 CIM_ManagedSystemElement REF Dependent;
783
784 [Description (
785 "A free-form string describing the use of the Log by the "
786 "ManagedSystemElement.")]
787 string RecordedData;
788 };
789
790 // ===================================================================
791 // OperationLog
792 // ===================================================================
793 [Association, Version ( "2.8.0" ), Description (
794 "CIM_OperationLog is a specialization of the "
795 "CIM_UseOfMessageLog association that identifies a reproducible "
796 "record of operations for a LogicalElement.")]
797 class CIM_OperationLog : CIM_UseOfMessageLog {
798
799 tony 1.1 [Override ( "Antecedent" ), Description (
800 "The Log containing reproducible operations for the "
801 "associated LogicalElement.")]
802 CIM_MessageLog REF Antecedent;
803
804 [Override ( "Dependent" ), Min ( 1 ), Max ( 1 ), Description (
805 "The LogicalElement for the associated OperationLog.")]
806 CIM_LogicalElement REF Dependent;
807 };
808
809 // ===================================================================
810 // end of file
811 // ===================================================================
|