bstr_object_set_attributes(3) — Subroutines
Name
bstr_object_set_attributes − Modifies the value of one or more attributes of the specified object.
Syntax
bstr_t_status bstr_object_set_attributes (
bstr_t_reference ∗object,
bstr_t_sequence ∗attributes,
bstr_t_rcb ∗control);
Description
The bstr_object_set_attributes procedure updates the value of one or more attributes of the object indicated by object. Each element of the attributes sequence specifies the name of an attribute and its new value. In a VODB configuration, you can only modify a subset of the attributes of the object classes listed in the table below. In addition, you must ensure that the new values are consistent with the current attribute values of the object in question.
| Class Identifier | Modifiable Attributes |
| ACTIVITY | nodes, domains, vmds, recovery_policy, startup_priority, shutdown_priority, startup_timeout, shutdown_timeout, start_enabled |
| ACTOR | startup_priority, shutdown_priority, recovery_policy, start_enabled |
| DATA_POINT | producer, update_policy, access_policy, default_value |
| DEVICE_DATA_POINT | producer, update_policy, access_policy |
| NODE | physical_name |
| PROGRAM | image, parameters |
| TIMER | time_state, interval, condition, distribution |
In a PODB configuration, you can modify any attribute of any object definition. However, if the object definition affected by the bstr_object_set_attributes procedure is referred to by another object, BASEstar Open restricts the attribute values that you can modify.
The table below specifies (for each class) the attributes that you cannot modify if the object is referenced by another object.
| Class Identifier | NON-modifiable Attributes |
| DOMAIN | None |
| TIMER | None |
| STRUCTURE_DATATYPE | members, datatype |
| ARRAY_DATATYPE | base_data_type, variable_length, size |
| DATA_POINT | datatype |
| DEVICE_DATA_POINT | datatype, external_behaviour |
| MAPPED_DATA_POINT | mapped_data_point, datatype, mapping_path |
| DATA_POINT_SET | None |
| TRIGGER | None |
| FILTER | expression |
| ENBOX | None |
| EVENT | parameter_types |
| EVENT_SET | None |
| PORT | None |
| PACKET | input_parameter_types and output_parameter_types |
| NODE | None |
| ACTOR | None |
| PROGRAM | program_kind |
| ACTIVITY | None |
| VMD | model, vendor, revision, extension_parameters |
| UNNAMED_VARIABLE | datatype |
| NAMED_VARIABLE | datatype |
| PROTOCOL_PROFILE | None |
| VMD_EXTENSION_PARAMETER | application_profile_id |
| MESSAGE | None |
| POLLING_SET | None |
Arguments
object
access: read
The reference to an object whose attributes are to be updated. You cannot specify the reference to a datatype object.
attributes
access: read
The address of a sequence. Each element in the sequence contains the name of an attribute and the value to be assigned to it. The BASEstar Open Reference Guide lists the public attributes for each BASEstar Open class; that is, the attributes whose values can be updated using the bstr_object_set_attributes procedure.
Each specified element of the sequence carries the value to be assigned to an attribute of the object that you are creating. The attribute value can be an immediate value, a reference to another object or an address to a nested sequence. As a result, the relevant fields to be set in each bstr_t_sequence_element are as follows:
•type. Specifies the sequence element type, according to the type of attribute value being specified, as follows:
•BSTR_C_VALUE, for an immediate value
•BSTR_C_REFERENCE, for a reference to another object
•BSTR_C_SEQUENCE, for a nested sequence.
•attribute_name. A constant that identifies an attribute of the object that you are creating.
•size. Specifies the size of the value buffer (that is, the size of the attribute value).
•value. Specifies the address of the buffer containing the value of an attribute. Depending on the value specified in the type field, enter one of the following addresses:
•BSTR_C_VALUE. Address of a buffer containing the attribute value. The allocated buffer must be consistent with the attribute value type.
•BSTR_C_REFERENCE. Address of a bstr_t_reference variable which contains a reference to another object.
•BSTR_C_SEQUENCE. Address of a bstr_t_sequence variable which specifies the address of a nested sequence.
control
access: read
Address of an optional request control block.
Return Values
| BSTR_S_ABORTED | Operation aborted |
| BSTR_S_ATTR_NOT_MODIFIABLE | An attempt to update an attribute not modifiable |
| BSTR_S_BAD_DATA_ELEMENTS | Bad data elements |
| BSTR_S_BAD_PARAMETER | Bad parameter value |
| BSTR_S_BAD_REFERENCE | Bad reference |
| BSTR_S_BAD_SEQUENCE | Bad sequence |
| BSTR_S_COMMUNICATION_ERROR | Communication error |
| BSTR_S_COM_PC_SIZE_MISMATCH | Number of bytes requested does not match the number of bytes returned |
| BSTR_S_FINISH | Request aborted by bstr_finish |
| BSTR_S_INTERNAL_ERROR | Internal error |
| BSTR_S_INTR | Operation interrupted |
| BSTR_S_INVALID_OPERATION | Invalid operation |
| BSTR_S_INVALID_RCB | Invalid Request Control Block |
| BSTR_S_NORMAL | Normal successful completion |
| BSTR_S_NOT_IMPLEMENTED | Not yet implemented |
| BSTR_S_NOT_INITIALIZED | BASEstar Open not initialized |
| BSTR_S_NO_MEMORY | Insufficient virtual memory |
| BSTR_S_OBJECT_NOT_FOUND | Object not found |
| BSTR_S_REFERENCE_IN_USE | Reference already in use |
| BSTR_S_TIMEOUT | Timeout expired |
| BSTR_S_TOO_MANY_REQUESTS | Too many pending requests |