Type_id::get

uvm_test has following code :

uvm_config_db#(uvm_object_wrapper)::set(this, "env.axi_env.sequencer.main_phase", "sequence", axi_master_virtual_sequence::type_id::get());

Does

axi_master_virtual_sequence::type_id::get

means creating a object of axi_master_virtual_sequence ?
And sequencer will use axi_master_virtual_sequence::type_id::get method to get the object of virtual sequence ?

What is usage of

type_id::get

In reply to xfinity:

get() returns a derivation of uvm_object_wrapper, which is a lightweight proxy for creating axi_master_virtual_sequence:. See: Using parameterized classes and factories: The yin and yang of object-oriented verification

In reply to dave_59:

Can you please explain with an example “get() returns a derivation of uvm_object_wrapper, which is a lightweight proxy for creating axi_master_virtual_sequence” does this mean it will create axi_master_virtual_sequence and calls the build method of sequence ?

In reply to xfinity:

I guess you didn’t read the article. Here’s a shorter version: Parameterized Classes, Static Members and the Factory Macros - Verification Horizons