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