<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<META content="MSHTML 5.00.2314.1000" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV><FONT face=Verdana size=2>Hello Duncan,</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Verdana size=2>Thanks for the reply. </FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Verdana size=2>In the "serverReceiveRequest" Interceptor, I need 
to do the following.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><EM><FONT face=Verdana size=2>a) Get the target Corba::Object [ 
Corba::Object *obj ] (Obtained from Corba::Request::target())</FONT></EM></DIV>
<DIV><EM><FONT face=Verdana size=2>b) Get the file descriptor associated with 
the Corba::Request (In Orbix, each request has a file descriptor associated with 
it. How to get it in omniORB?)</FONT></EM></DIV>
<DIV><EM><FONT face=Verdana size=2>c) Transaction_var txn;</FONT></EM></DIV>
<DIV><EM><FONT face=Verdana size=2>&nbsp;&nbsp;&nbsp; txn = 
Transaction::_narrow(obj);</FONT></EM></DIV>
<DIV><EM><FONT face=Verdana size=2>&nbsp;&nbsp;&nbsp; if 
(CORBA::is_nil(txn))</FONT></EM></DIV>
<DIV><EM><FONT face=Verdana size=2>&nbsp;&nbsp;&nbsp; {</FONT></EM></DIV>
<DIV><EM><FONT face=Verdana size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
evict();// evict() is described below</FONT></EM></DIV>
<DIV><EM><FONT face=Verdana size=2>&nbsp;&nbsp;&nbsp; }</FONT></EM></DIV>
<DIV><EM><FONT face=Verdana size=2>&nbsp;&nbsp;&nbsp; else</FONT></EM></DIV>
<DIV><EM><FONT face=Verdana size=2>&nbsp;&nbsp;&nbsp; {</FONT></EM></DIV>
<DIV><EM><FONT face=Verdana size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if 
(!strcmp(info.giop_s.operation_name(), "startTransaction"))</FONT></EM></DIV>
<DIV><EM><FONT face=Verdana size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; registerObject(obj);</FONT></EM></DIV>
<DIV><EM><FONT face=Verdana size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
else</FONT></EM></DIV>
<DIV><EM><FONT face=Verdana size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; unRegisterObject(obj);</FONT></EM></DIV>
<DIV>&nbsp;</DIV>
<DIV><EM><FONT face=Verdana size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
touch(txn, fd); // described below</FONT></EM></DIV>
<DIV><EM><FONT face=Verdana size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
evict();</FONT></EM></DIV>
<DIV><FONT face=Verdana size=2><EM>&nbsp;&nbsp;&nbsp; }</EM></FONT></DIV>
<DIV><FONT face=Verdana size=2><EM>d) evict()&nbsp; </EM></FONT></DIV>
<DIV><EM><FONT face=Verdana size=2>&nbsp;&nbsp; // 
std::vector&lt;ObjectDescription*&gt; mTxnTbl;</FONT></EM></DIV>
<DIV><EM><FONT face=Verdana size=2>&nbsp;&nbsp;&nbsp; if ((currentTime - 
mTxnTbl.front()-&gt;lastAccess) &gt; MaxTimeDuration) </FONT></EM></DIV>
<DIV><FONT face=Verdana size=2><EM>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
TerminateProcess( GetCurrentProcess(), -1 );</EM></FONT><FONT face=Verdana 
size=2></FONT></DIV>
<DIV><FONT face=Verdana size=2>
<DIV><EM><FONT face=Verdana size=2>e) touch(CORBA::Object_ptr p, int 
o)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int j = 0; j&lt;mTxnTbl.size(); 
j++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if( mTxnTbl[j]-&gt; 
reference -&gt; _is_equivalent( p ) 
)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
mTxnTbl[j]-&gt;lastAccess 
=&nbsp;currentTime;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
mTxnTbl[j]-&gt;_owner = 
o;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>f) 
registerObject(obj) </FONT></EM></DIV><EM>
<DIV>&nbsp;&nbsp;&nbsp; Creates a ObjectDescription ptr from obj and is pushed 
into mTxnTbl vector</FONT></EM></DIV></DIV>
<DIV><FONT face=Verdana size=2><EM>g) unRegisterObject(obj);</EM>
<DIV><EM>&nbsp;&nbsp;&nbsp; Popped from mTxnTbl vector</EM></DIV></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Verdana size=2>Therefore as you can see, I need to know the 
target Object (Corba::Object *obj) and file descriptor (int fd) associated with 
a request. I am unable to get these using omniORB. Please advice on this 
matter.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Verdana size=2>I am using omniORB4 on WinNT4 and am using 
VC++6</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Verdana size=2>Regards,</FONT></DIV>
<DIV><FONT face=Verdana size=2>Ameya.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Verdana size=2>----- Original Message ----- </FONT>
<DIV><FONT face=Verdana size=2>From: Duncan Grisby &lt;<A 
href="mailto:duncan@grisby.org">duncan@grisby.org</A>&gt;</FONT></DIV>
<DIV><FONT face=Verdana size=2>To: Ameya Virkar &lt;<A 
href="mailto:virkar@stee.com.sg">virkar@stee.com.sg</A>&gt;</FONT></DIV>
<DIV><FONT face=Verdana size=2>Cc: &lt;<A 
href="mailto:omniorb-list@omniorb-support.com">omniorb-list@omniorb-support.com</A>&gt;</FONT></DIV>
<DIV><FONT face=Verdana size=2>Sent: Monday, August 18, 2003 6:11 
PM</FONT></DIV>
<DIV><FONT face=Verdana size=2>Subject: Re: [omniORB] Interceptor/CORBA::Request 
</FONT></DIV></DIV>
<DIV><BR></DIV><FONT face=Verdana size=2>&gt; On Monday 18 August, "Ameya 
Virkar" wrote:<BR>&gt; <BR>&gt; &gt; Sorry for re-posting this question. But I 
urgently need to know how to<BR>&gt; &gt; map "info_T" object to a 
CORBA::Request object.<BR>&gt; &gt; <BR>&gt; &gt; As mentioned in the earlier 
posting, I need to use the "Corba::Request"<BR>&gt; &gt; object in the 
"serverReceiveRequest" Interceptor as follows.<BR>&gt; <BR>&gt; It can't be 
done, since the serverReceiveRequest interceptor is run<BR>&gt; before the 
operation arguments are unmarshalled. The only information<BR>&gt; available 
when the interceptor runs is that contained in the info<BR>&gt; structure. Note 
that omniORB doesn't use Request objects internally at<BR>&gt; all, so there is 
no possibility of getting one later in the call<BR>&gt; chain, either.<BR>&gt; 
<BR>&gt; What are you actually trying to achieve?<BR>&gt; <BR>&gt; 
Cheers,<BR>&gt; <BR>&gt; Duncan.<BR>&gt; <BR>&gt; -- <BR>&gt; &nbsp;-- Duncan 
Grisby&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --<BR>&gt; &nbsp; -- <A 
href="mailto:duncan@grisby.org">duncan@grisby.org</A>&nbsp;&nbsp;&nbsp;&nbsp; 
--<BR>&gt; &nbsp;&nbsp; -- <A 
href="http://www.grisby.org">http://www.grisby.org</A> --<BR>&gt; <BR>&gt; 
_______________________________________________<BR>&gt; omniORB-list mailing 
list<BR>&gt; <A 
href="mailto:omniORB-list@omniorb-support.com">omniORB-list@omniorb-support.com</A><BR>&gt; 
<A 
href="http://www.omniorb-support.com/mailman/listinfo/omniorb-list">http://www.omniorb-support.com/mailman/listinfo/omniorb-list</A><BR>&gt; 
<BR>&gt; </FONT></BODY></HTML>