How to send data from Monitor to Sequence

In reply to srikanth.verification:

whenever there will be change in interrupt, monitor needs to send the data to sequence and then i can perform register operations from the monitor status
Please look this code and share your valuable feedback
//////////////transaction class
class interrupt_transaction extends uvm_sequence_item;

`uvm_object_utils(interrupt_transaction)
rand bit [3:0] interrupt;

extern function new (string name = “interrupt_transaction”);

endclass

function interrupt_transaction::new(string name = “interrupt_transaction”);
super.new(name);
endfunction

class interrupt_mon extends uvm_monitor;
//////////////////////factory registration/////////////////////
`uvm_component_utils(interrupt_mon)

//////////////////////virtual interface //////////////////////

virtual mcu_status_if intr_vif;
interrupt_transaction intr_txn;
function new(string name=“interrupt_mon”, uvm_component parent);
super.new(name, parent);
endfunction : new

function void build_phase(uvm_phase phase);
super.build_phase(phase);
intr_txn = interrupt_transaction::type_id::create(“intr_txn”);

endfunction : build_phase

function void connect_phase(uvm_phase phase);
super.connect_phase(phase);
endfunction : connect_phase

task run_phase(uvm_phase phase);
forever
@(posedge intr_vif.McuClk);
begin
intr_txn.interrupt = intr_vif.Interrupt;
uvm_info("DATA FROM MON", $sformatf("DATA received from Interrupt MONITOR is : [%p] \n", intr_txn.interrupt),UVM_LOW) end endtask : run_phase function void report_phase(uvm_phase phase); uvm_info(get_type_name(), “Interrupt Entering into Monitor”, UVM_LOW)
endfunction
endclass

//////////////////////////Sequence////////////////////////////////////////
class interrupt_sequence extends base_seq;

`uvm_object_utils (interrupt_sequence)

interrupt_transaction intr_item;

function new(string name = “interrupt_sequence”);
super.new(name);
endfunction

task body();
intr_item = interrupt_transaction::type_id::create(“intr_item”);
start_item(intr_item);
assert(intr_item.randomize());
finish_item(intr_item);

`uvm_info(“DATA FROM MON”, $sformatf(“DATA received from Interrupt MONITOR is : [%p] \n”, intr_item.interrupt),UVM_LOW)
if i get the status from monior then i can perform the register operations, please help me to achieve this
/////////////////////////read interrupt controller status
///////////////////////// check intialization is completed or not MCUINITDONE in MCUCL_Reg spec/////
//////////////////////// if it is set mask the init_mask_parm by setting it to 1

endtask
endclass