About mutiple monitor analysis port connect to one adapter mutiple import connection

Hi,
In my Env i have multiple monitor analysis port are connected to one adapter multiple tlm imports. i am connecting as below:
ENV:

agent[a].ap.connect(adapter.m_ap_1);
agent[b].ap.connect(adapter.m_ap_2);
agent[c].ap.connect(adapter.m_ap_3);

in adapter i have created multiple import tlm port as below
In adapter:

uvm_analysis_imp_UVMC_AP_1 #(parameter type) m_ap_1;
uvm_analysis_imp_UVMC_AP_2 #(parameter type) m_ap_2;
uvm_analysis_imp_UVMC_AP_3 #(parameter type) m_ap_3;

but i am not getting how to fetch the data from each import socket ?
here i need fetch data from specific port and do some process, so how i can get this ?

In reply to RavindraShiradone:
I assume you used macros to define these port classes.

`uvm_analysis_imp_decl(_UVMC_AP_1)
`uvm_analysis_imp_decl(_UVMC_AP_2)
`uvm_analysis_imp_decl(_UVMC_AP_3)

They really should be called exports as you are exporting implementation(imp)s to the analysis ports of each agent. When you instantiate the classes, they need to be parameterized with the class type they are instantiated in. The write methods in the adapter class become the implementations you export to the agents analysis ports.

class adapter extends uvm_component;
uvm_analysis_imp_UVMC_AP_1 #(txn_t, adapter) m_export_1;
uvm_analysis_imp_UVMC_AP_2 #(txn_t, adapter) m_export_2;
uvm_analysis_imp_UVMC_AP_3 #(txn_t, adapter) m_export_3;
function void build_phase( uvm_phase phase );
   m_export_1 = new("m_export_1", this);
   m_export_2 = new("m_export_2", this);
   m_export_3 = new("m_export_3", this);
 endfunction
These functions get called each time there is an ap.write() in you monitor.
function write_UVMC_AP_1(txn_t txn);
endfunction
function write_UVMC_AP_2(txn_t txn);
endfunction
function write_UVMC_AP_3(txn_t txn);
endfunction
endclass

See AnalysisConnections | Verification Academy

In reply to dave_59:

Thank you dave. your ans clarifies my query.