Object management
[Runtime module API]


Detailed Description

Object management macros are create to allow modules to create, test, control ranks, and reveal members of objects and registered classes.


Defines

#define gl_create_array   (*callback->create_array)
 Creates an array of objects on core heap.
#define gl_create_object   (*callback->create_single)
 Creates an object by allocating on from core heap.
#define gl_object_isa   (*callback->object_isa)
 Object type test.
#define gl_publish_function   (*callback->define_function)
 Publishes an object function.
#define gl_publish_variable   (*callback->define_map)
 Declare an object property as publicly accessible.
#define gl_set_dependent   (*callback->set_dependent)
 Changes the dependency rank of an object.
#define gl_set_parent   (*callback->set_parent)
 Establishes the rank of an object relative to another object (it's parent).
#define gl_set_rank   (*callback->set_rank)
 Adjusts the rank of an object relative to another object (it's parent).


Define Documentation

#define gl_create_array   (*callback->create_array)

Creates an array of objects on core heap.

See also:
object_create_array()

Definition at line 340 of file gridlabd.h.

#define gl_create_object   (*callback->create_single)

Creates an object by allocating on from core heap.

See also:
object_create_single()

Definition at line 335 of file gridlabd.h.

Referenced by residential_test::clotheswasher_create(), create_capacitor(), create_capbank(), create_climate(), create_clotheswasher(), create_collector(), create_comm(), create_diesel_dg(), create_dishwasher(), create_fuse(), create_generator(), create_house(), create_lights(), create_line(), create_line_configuration(), create_line_spacing(), create_link(), create_load(), create_meter(), create_microwave(), create_multizone(), create_node(), test_helper::create_object(), create_occupantload(), create_office(), create_overhead_line(), create_overhead_line_conductor(), create_player(), create_plc(), create_plugload(), create_powerflow_object(), create_range(), create_recorder(), create_refrigerator(), create_regulator(), create_regulator_configuration(), create_relay(), create_shaper(), create_transformer(), create_transformer_configuration(), create_triplex_line(), create_triplex_line_conductor(), create_triplex_line_configuration(), create_triplex_node(), create_underground_line(), create_underground_line_conductor(), create_waterheater(), residential_test::house_create(), import_cdf(), residential_test::lights_create(), plc_module_test::test_create(), climate_module_test::test_create(), meter_tests::test_meter_polyphase(), meter_tests::test_meter_singlephase(), overhead_line_tests::test_node_create(), overhead_line_tests::test_overhead_line_a(), overhead_line_tests::test_overhead_line_ab(), overhead_line_tests::test_overhead_line_abc_delta(), overhead_line_tests::test_overhead_line_abcn(), overhead_line_tests::test_overhead_line_ac(), overhead_line_tests::test_overhead_line_b(), overhead_line_tests::test_overhead_line_bc(), overhead_line_tests::test_overhead_line_c(), climate_module_test::test_tmy2(), triplex_line_tests::test_triplex_line(), undergroundline_tests::test_underground_line_a_cn(), undergroundline_tests::test_underground_line_ab_cn(), undergroundline_tests::test_underground_line_abc_cn(), undergroundline_tests::test_underground_line_b_cn(), undergroundline_tests::test_underground_line_bc_cn(), undergroundline_tests::test_underground_line_c_cn(), undergroundline_tests::test_underground_line_ca_cn(), and residential_test::waterheater_test().

#define gl_object_isa   (*callback->object_isa)

Object type test.

Checks the type (and supertypes) of an object.

See also:
object_isa()

Definition at line 348 of file gridlabd.h.

Referenced by underground_line::init(), transformer::init(), regulator::init(), overhead_line::init(), link::init(), multizone::init(), init_generator(), and kmldump().

#define gl_publish_function   (*callback->define_function)

Publishes an object function.

This is currently unused.

See also:
object_define_function()

Definition at line 358 of file gridlabd.h.

#define gl_publish_variable   (*callback->define_map)

Declare an object property as publicly accessible.

See also:
object_define_map()

Definition at line 353 of file gridlabd.h.

Referenced by capacitor::capacitor(), capbank::capbank(), climate::climate(), clotheswasher::clotheswasher(), comm::comm(), diesel_dg::diesel_dg(), dishwasher::dishwasher(), fuse::fuse(), generator::generator(), house::house(), lights::lights(), line_configuration::line_configuration(), line_spacing::line_spacing(), load::load(), meter::meter(), microwave::microwave(), multizone::multizone(), node::node(), occupantload::occupantload(), office::office(), overhead_line::overhead_line(), overhead_line_conductor::overhead_line_conductor(), plc::plc(), plugload::plugload(), range::range(), refrigerator::refrigerator(), regulator::regulator(), regulator_configuration::regulator_configuration(), relay::relay(), transformer::transformer(), transformer_configuration::transformer_configuration(), triplex_line::triplex_line(), triplex_line_conductor::triplex_line_conductor(), triplex_line_configuration::triplex_line_configuration(), triplex_node::triplex_node(), underground_line::underground_line(), underground_line_conductor::underground_line_conductor(), and waterheater::waterheater().

#define gl_set_dependent   (*callback->set_dependent)

Changes the dependency rank of an object.

Normally dependency rank is determined by the object parent, but an object's rank may be increased using this call. An object's rank may not be decreased.

See also:
object_set_rank(), object_set_parent()

Definition at line 366 of file gridlabd.h.

Referenced by office::init(), and house::init_climate().

#define gl_set_parent   (*callback->set_parent)

Establishes the rank of an object relative to another object (it's parent).

When an object is parent to another object, it's rank is always greater. Object of higher rank are processed first on top-down passes, and later on bottom-up passes. Objects of the same rank may be processed in parallel, if system resources make it possible.

See also:
object_set_rank(), object_set_parent()

Definition at line 376 of file gridlabd.h.

Referenced by residential_test::clotheswasher_test(), create_capacitor(), create_capbank(), create_climate(), create_clotheswasher(), create_collector(), create_diesel_dg(), create_dishwasher(), create_fuse(), create_house(), create_lights(), create_line(), create_line_configuration(), create_line_spacing(), create_link(), create_load(), create_meter(), create_microwave(), create_multizone(), create_node(), create_occupantload(), create_office(), create_overhead_line(), create_overhead_line_conductor(), create_player(), create_plc(), create_plugload(), create_powerflow_object(), create_range(), create_recorder(), create_refrigerator(), create_regulator(), create_regulator_configuration(), create_relay(), create_shaper(), create_transformer(), create_transformer_configuration(), create_triplex_line(), create_triplex_line_conductor(), create_triplex_line_configuration(), create_triplex_node(), create_underground_line(), create_underground_line_conductor(), create_waterheater(), import_cdf(), link::init(), residential_test::lights_test(), and residential_test::waterheater_test().

#define gl_set_rank   (*callback->set_rank)

Adjusts the rank of an object relative to another object (it's parent).

When an object is parent to another object, it's rank is always greater. Object of higher rank are processed first on top-down passes, and later on bottom-up passes. Objects of the same rank may be processed in parallel, if system resources make it possible.

See also:
object_set_rank(), object_set_parent()

Definition at line 386 of file gridlabd.h.

Referenced by link::init(), and multizone::init().


GridLAB-DTM Version 1.0
An open-source project initiated by the US Department of Energy