[omniORB] upgrade from omniORB280 to omniORB305
Smith, Wayne
wsmith2@titan.com
Thu Nov 14 20:04:00 2002
This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.
------_=_NextPart_001_01C28C18.D5673610
Content-Type: text/plain;
charset="iso-8859-1"
I'm attempting to upgrade from omniORB280 to omniORB305.
I get the following error:
Compiling: exeMsnMaintDlg.C
exeMsnMaintDlg.C: In function `void * writeTapeThread(void *)':
exeMsnMaintDlg.C:596: no matching function for call to
`MyModule::ArchiveClient::_duplicate (ArchiveClient_Impl *&)'
/export/home/finder/sf_jmod/src/sharedServices/idl/storyFinder_s.hh:412:
candidates are: static class MyModule::_objref_ArchiveClient *
MyModule::ArchiveClient::_duplicate(MyModule::_objref_ArchiveClient *)
exeMsnMaintDlg.C: In function `void * readTapeThread(void *)':
exeMsnMaintDlg.C:623: no matching function for call to
`MyModule::ArchiveClient::_duplicate (ArchiveClient_Impl *&)'
/export/home/finder/sf_jmod/src/sharedServices/idl/storyFinder_s.hh:412:
candidates are: static class MyModule::_objref_ArchiveClient *
MyModule::ArchiveClient::_duplicate(MyModule::_objref_ArchiveClient *)
make: *** [exeMsnMaintDlg.o] Error 1
to the following code, the macros are necessary because we compile with
different ORBs:
void publishObj(CORBA::Object_var o, const char *nam, const char *id);
#define PUBLISH(o, mod, cls, id) publishObj( \
mod ## :: ## cls::_duplicate(o), #mod "::" #cls, id)
#define SKEL_MODULE(n) n
#define SKEL_CLASS(n) _sk_ ## n
#define ACTIVATE_OBJECT(o) (boa->obj_is_ready(o), o->_this())
MyModule.idl:
module MyModule
{
[...]
typedef sequence <File> FileSeq;
typedef sequence <string> NameSeq;
interface ArchiveClient
{
void processMessage(in string msg);
oneway void thatsAll();
};
[...]
};
exeMsnMaintDlg.C:
[...]
class ArchiveClient_Impl
: public SKEL_MODULE(MyModule)::SKEL_CLASS(ArchiveClient)
{
void processMessage(const char *msg) {
message_queue.put(c=stralloc(msg));
}
void thatsAll() {}
};
[...]
static void *writeTapeThread(void*)
{
int i;
HERE"S WHERE THE ERROR OCCURS
=> ArchiveClient_Impl *clnt = new ArchiveClient_Impl;
MyModule::ArchiveClient_ptr corba_obj = ACTIVATE_OBJECT(clnt);
PUBLISH(corba_obj, MyModule, ArchiveClient, SF_USER_ID);
MyModule::NameSeq_var missions = new MyModule::NameSeq;
getSelection(listMissions);
missions->length(listMissions->nSelected);
for (i=0; i<listMissions->nSelected; i++) {
missions[i] = CORBA::string_dup(
NAME_STRING(listMissions, listMissions->selectList[i] - 1));
}
MyModule::NameSeq_var pulses = new MyModule::NameSeq;
getSelection(listPulses);
pulses->length(listPulses->nSelected);
for (i=0; i<listPulses->nSelected; i++) {
pulses[i] = CORBA::string_dup(
NAME_STRING(listPulses, listPulses->selectList[i] - 1));
}
if (!sf->writeArchive(
MyModule::ArchiveClient::_duplicate(clnt), missions, pulses)) {
message_queue.put(c=stralloc("tape write failed"));
}
delete clnt;
message_queue.put(c=stralloc("Operation complete"));
return 0;
}
I can't seem to solve this one.
------_=_NextPart_001_01C28C18.D5673610
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
5.5.2653.12">
<TITLE> upgrade from omniORB280 to omniORB305 </TITLE>
</HEAD>
<BODY>
<P><FONT SIZE=3D2>I'm attempting to upgrade from omniORB280 to =
omniORB305.</FONT>
<BR><FONT SIZE=3D2>I get the following error:</FONT>
</P>
<BR>
<P><FONT SIZE=3D2>Compiling: exeMsnMaintDlg.C</FONT>
<BR><FONT SIZE=3D2>exeMsnMaintDlg.C: In function `void * =
writeTapeThread(void *)':</FONT>
<BR><FONT SIZE=3D2>exeMsnMaintDlg.C:596: no matching function for call =
to `MyModule::ArchiveClient::_duplicate (ArchiveClient_Impl =
*&)'</FONT>
<BR><FONT =
SIZE=3D2>/export/home/finder/sf_jmod/src/sharedServices/idl/storyFinder_=
s.hh:412: candidates are: static class MyModule::_objref_ArchiveClient =
* MyModule::ArchiveClient::_duplicate(MyModule::_objref_ArchiveClient =
*)</FONT></P>
<P><FONT SIZE=3D2>exeMsnMaintDlg.C: In function `void * =
readTapeThread(void *)':</FONT>
<BR><FONT SIZE=3D2>exeMsnMaintDlg.C:623: no matching function for call =
to `MyModule::ArchiveClient::_duplicate (ArchiveClient_Impl =
*&)'</FONT>
<BR><FONT =
SIZE=3D2>/export/home/finder/sf_jmod/src/sharedServices/idl/storyFinder_=
s.hh:412: candidates are: static class MyModule::_objref_ArchiveClient =
* MyModule::ArchiveClient::_duplicate(MyModule::_objref_ArchiveClient =
*)</FONT></P>
<P><FONT SIZE=3D2>make: *** [exeMsnMaintDlg.o] Error 1</FONT>
</P>
<P><FONT SIZE=3D2>to the following code, the macros are necessary =
because we compile with different ORBs:</FONT>
</P>
<P><FONT SIZE=3D2>void publishObj(CORBA::Object_var o, const char *nam, =
const char *id);</FONT>
<BR><FONT SIZE=3D2>#define PUBLISH(o, mod, cls, id) publishObj( =
\</FONT>
<BR><FONT =
SIZE=3D2> &nb=
sp; mod ## :: ## cls::_duplicate(o), #mod =
"::" #cls, id)</FONT>
</P>
<P><FONT SIZE=3D2>#define SKEL_MODULE(n) n</FONT>
<BR><FONT SIZE=3D2>#define SKEL_CLASS(n) _sk_ ## n</FONT>
<BR><FONT SIZE=3D2>#define ACTIVATE_OBJECT(o) (boa->obj_is_ready(o), =
o->_this())</FONT>
</P>
<BR>
<P><FONT SIZE=3D2>MyModule.idl:</FONT>
</P>
<P><FONT SIZE=3D2>module MyModule</FONT>
<BR><FONT SIZE=3D2>{</FONT>
</P>
<P><FONT SIZE=3D2>[...]</FONT>
</P>
<P><FONT SIZE=3D2> typedef sequence <File> FileSeq;</FONT>
<BR><FONT SIZE=3D2> typedef sequence <string> =
NameSeq;</FONT>
</P>
<P><FONT SIZE=3D2> interface ArchiveClient</FONT>
<BR><FONT SIZE=3D2> {</FONT>
<BR><FONT SIZE=3D2> void processMessage(in string =
msg);</FONT>
<BR><FONT SIZE=3D2> oneway void thatsAll();</FONT>
<BR><FONT SIZE=3D2> };</FONT>
</P>
<P><FONT SIZE=3D2>[...]</FONT>
</P>
<P><FONT SIZE=3D2>};</FONT>
</P>
<BR>
<P><FONT SIZE=3D2>exeMsnMaintDlg.C:</FONT>
</P>
<P><FONT SIZE=3D2>[...]</FONT>
</P>
<P><FONT SIZE=3D2>class ArchiveClient_Impl</FONT>
<BR><FONT SIZE=3D2> : public =
SKEL_MODULE(MyModule)::SKEL_CLASS(ArchiveClient)</FONT>
<BR><FONT SIZE=3D2>{</FONT>
<BR><FONT SIZE=3D2> void processMessage(const char *msg) {</FONT>
<BR><FONT SIZE=3D2> =
message_queue.put(c=3Dstralloc(msg));</FONT>
<BR><FONT SIZE=3D2> }</FONT>
<BR><FONT SIZE=3D2> void thatsAll() {}</FONT>
<BR><FONT SIZE=3D2>};</FONT>
</P>
<P><FONT SIZE=3D2>[...]</FONT>
</P>
<P><FONT SIZE=3D2>static void *writeTapeThread(void*)</FONT>
<BR><FONT SIZE=3D2>{</FONT>
<BR><FONT SIZE=3D2> int i; =
</FONT>
</P>
<P><FONT SIZE=3D2> HERE"S WHERE THE ERROR OCCURS</FONT>
</P>
<P><FONT SIZE=3D2> =3D> ArchiveClient_Impl *clnt =3D new =
ArchiveClient_Impl; </FONT>
<BR><FONT SIZE=3D2> MyModule::ArchiveClient_ptr corba_obj =3D =
ACTIVATE_OBJECT(clnt);</FONT>
<BR><FONT SIZE=3D2> PUBLISH(corba_obj, MyModule, ArchiveClient, =
SF_USER_ID);</FONT>
</P>
<P><FONT SIZE=3D2> MyModule::NameSeq_var missions =3D new =
MyModule::NameSeq;</FONT>
<BR><FONT SIZE=3D2> getSelection(listMissions);</FONT>
<BR><FONT SIZE=3D2> =
missions->length(listMissions->nSelected);</FONT>
</P>
<BR>
<P><FONT SIZE=3D2> for (i=3D0; i<listMissions->nSelected; =
i++) {</FONT>
<BR><FONT SIZE=3D2> missions[i] =3D =
CORBA::string_dup(</FONT>
<BR><FONT =
SIZE=3D2> &nb=
sp; NAME_STRING(listMissions, =
listMissions->selectList[i] - 1));</FONT>
<BR><FONT SIZE=3D2> }</FONT>
</P>
<P><FONT SIZE=3D2> MyModule::NameSeq_var pulses =3D new =
MyModule::NameSeq;</FONT>
<BR><FONT SIZE=3D2> getSelection(listPulses);</FONT>
<BR><FONT SIZE=3D2> =
pulses->length(listPulses->nSelected);</FONT>
</P>
<P><FONT SIZE=3D2> for (i=3D0; i<listPulses->nSelected; =
i++) {</FONT>
<BR><FONT SIZE=3D2> pulses[i] =3D =
CORBA::string_dup(</FONT>
<BR><FONT =
SIZE=3D2> &nb=
sp; NAME_STRING(listPulses, =
listPulses->selectList[i] - 1));</FONT>
<BR><FONT SIZE=3D2> }</FONT>
</P>
<P><FONT SIZE=3D2> if (!sf->writeArchive(</FONT>
<BR><FONT SIZE=3D2> =
MyModule::ArchiveClient::_duplicate(clnt), missions, pulses)) {</FONT>
<BR><FONT SIZE=3D2> =
message_queue.put(c=3Dstralloc("tape write failed"));</FONT>
<BR><FONT SIZE=3D2> }</FONT>
</P>
<P><FONT SIZE=3D2> delete clnt;</FONT>
<BR><FONT SIZE=3D2> =
message_queue.put(c=3Dstralloc("Operation complete"));</FONT>
<BR><FONT SIZE=3D2> return 0;</FONT>
<BR><FONT SIZE=3D2>}</FONT>
</P>
<P><FONT SIZE=3D2>I can't seem to solve this one. </FONT>
</P>
</BODY>
</HTML>
------_=_NextPart_001_01C28C18.D5673610--