Exacct::Object.3perl revision c10c16dec587a0662068f6e2991c29ed3a9db943
te
Copyright (c) 2002, Sun Microsystems, Inc. All Rights Reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
Exacct::Object 3PERL "1 Dec 2002" "SunOS 5.11" "Perl Library Functions"
NAME
Exacct::Object - exacct object manipulation
SYNOPSIS

use Sun::Solaris::Exacct::Object qw(:ALL);
print($ea_obj->value(), "\en");
DESCRIPTION

This module is used as a parent of the two possible types of Perl exacct objects: Items and Groups. An Item is either a single data value such as the number of seconds of user CPU time consumed by a process, an embedded Perl exacct object, or a block of raw data. A Group is an ordered collection of Perl exacct Items such as all of the resource usage values for a particular process or task. If Groups need to be nested within each other, the inner Groups can be stored as embedded Perl exacct objects inside the enclosing Group.

This module contains methods that are common to both Perl exacct Items and Groups. The attributes of Sun::Solaris::Exacct::Object and all classes derived from it are read-only after initial creation with new(). This behavior prevents the inadvertent modification of the attributes that could produce inconsistent catalog tags and data values. The only exception is the array used to store the Items inside a Group object, which can be modified using the normal Perl array operators. See the value() method below.

"Constants"

EO_ERROR, EO_NONE, EO_ITEM, and EO_GROUP.

"Functions"

None.

"Class methods"

dump($object, $filehandle)

This method dumps formatted text representation of a Perl exacct object to the supplied file handle. If no file handle is specified, the text representation is dumped to STDOUT. See EXAMPLES below for sample output.

"Object methods"

type()

This method returns the type field of the Perl exacct object. The value of the type field is returned as a dual-typed scalar and is either EO_ITEM, EO_GROUP, or EO_NONE.

catalog()

This method returns the catalog field of the Perl exacct object. The value is returned as a Sun::Solaris::Exacct::Catalog object.

match_catalog($catalog)

This method matches the passed catalog tag against the object. True is returned of a match occurs. Otherwise false is returned. This method has the same behavior as the underlying ea_match_object_catalog(3EXACCT) function.

value()

This method returns the value of the Perl exacct object. In the case of an Item, this object will normally be a Perl scalar, either a number or string. For raw Items, the buffer contained inside the object is returned as a Perl string that can be manipulated with the Perl unpack() function. If the Item contains either a nested Item or a nested Group, the enclosed Item is returned as a reference to an object of the appropriate subtype of the Sun::Solaris::Exacct::Object class. For Group objects, if value() is called in a scalar context, the return value is a reference to the underlying array used to store the component Items of the Group. Since this array can be manipulated with the normal Perl array indexing syntax and array operators, the objects inside the Group can be manipulated. All objects in the array must be derived from the Sun::Solaris::Exacct::Object class. Any attempt to insert something else into the array will generate a fatal runtime error that can be caught with an eval { } block. If value() is called in a list context for a Group object, it returns a list of all the objects in the Group. Unlike the array reference returned in a scalar context, this list cannot be manipulated to add or delete Items from a Group. This mechanism is considerably faster than the array mechanism described above and is the preferred mechanism if a Group is being examined in a read-only manner.

"Exports"

By default nothing is exported from this module. The following tags can be used to selectively import constants and functions defined in this module:

:CONSTANTS

EO_ERROR, EO_NONE, EO_ITEM, and EO_GROUP

:ALL

:CONSTANTS

EXAMPLES

Example 1 Output of the dump() method for a Perl exacct Group object.

The following is an example of output of the dump() method for a Perl exacct Group object.

GROUP
 Catalog = EXT_GROUP|EXC_DEFAULT|EXD_GROUP_PROC_PARTIAL
 ITEM
 Catalog = EXT_UINT32|EXC_DEFAULT|EXD_PROC_PID
 Value = 3
 ITEM
 Catalog = EXT_UINT32|EXC_DEFAULT|EXD_PROC_UID
 Value = 0
 ITEM
 Catalog = EXT_UINT32|EXC_DEFAULT|EXD_PROC_GID
 Value = 0
 ITEM
 Catalog = EXT_UINT32|EXC_DEFAULT|EXD_PROC_PROJID
 Value = 0
 ITEM
 Catalog = EXT_UINT32|EXC_DEFAULT|EXD_PROC_TASKID
 Value = 0
 ITEM
 Catalog = EXT_STRING|EXC_DEFAULT|EXD_PROC_COMMAND
 Value = fsflush
ENDGROUP
ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPEATTRIBUTE VALUE
Interface StabilityEvolving
SEE ALSO

ea_match_object_catalog(3EXACCT), Exacct(3PERL), Exacct::Catalog(3PERL), Exacct::File(3PERL), Exacct::Object::Group(3PERL), Exacct::Object::Item(3PERL), libexacct(3LIB), attributes(5)