Hi Ales,

The IOHandle conversion comes from this method on Socket:

virtual operator const IOHandle&() const = 0;

I've been having problems with this type of thing trying to get Qpid building 
XL C++ 11 too, so I'm not sure you'd be in much better shape with an updated 
compiler :-(

Try putting a cast to const IOHandle& - let us know how that goes.

-Steve

> -----Original Message-----
> From: Aleš Trček [mailto:[email protected]]
> Sent: Monday, May 27, 2013 8:09 PM
> To: [email protected]
> Subject: Building qpid C++ broker on AIX
> 
> Hi all,
> 
> Since I obviously won't succeed with this so easily, I'm opening a thread on
> the subject. Many thanks to all who can help me.
> 
> System with AIX 5.3 / xlC 9.0 (yeah old as sh*t, but I can't do anything about
> that soon) and Boost 1.34, building qpidc-0.20.
> Anyway, I managed to go over some obstacles so far, but currently I'm stuck
> with the following error(s):
> [ 20%] Building CXX object
> src/CMakeFiles/qpidcommon.dir/qpid/sys/posix/AsynchIO.o
> "/achinst/atk/qpid_build/qpidc-0.20/src/qpid/sys/posix/AsynchIO.cpp", line
> 96.5: 1540-0218 (S) The call does not match any parameter list for
> "DispatchHandle::DispatchHandle".
> "/achinst/atk/qpid_build/qpidc-0.20/src/qpid/sys/DispatchHandle.h", line
> 88.24: 1540-1283 (I) "qpid::sys::DispatchHandle::DispatchHandle(const
> qpid::sys::IOHandle &, Callback, Callback, Callback)" is not a viable 
> candidate.
> "/achinst/atk/qpid_build/qpidc-0.20/src/qpid/sys/posix/AsynchIO.cpp", line
> 96.12: 1540-0256 (I) A parameter of type "const qpid::sys::IOHandle &"
> cannot be initialized with an expression of type "const qpid::sys::Socket".
> "/achinst/atk/qpid_build/qpidc-0.20/src/qpid/sys/posix/AsynchIO.cpp", line
> 168.5: 1540-0218 (S) The call does not match any parameter list for
> "DispatchHandle::DispatchHandle".
> "/achinst/atk/qpid_build/qpidc-0.20/src/qpid/sys/DispatchHandle.h", line
> 88.24: 1540-1283 (I) "qpid::sys::DispatchHandle::DispatchHandle(const
> qpid::sys::IOHandle &, Callback, Callback, Callback)" is not a viable 
> candidate.
> "/achinst/atk/qpid_build/qpidc-0.20/src/qpid/sys/posix/AsynchIO.cpp", line
> 168.20: 1540-0256 (I) A parameter of type "const qpid::sys::IOHandle &"
> cannot be initialized with an expression of type "const qpid::sys::Socket".
> "/achinst/atk/qpid_build/qpidc-0.20/src/qpid/sys/posix/AsynchIO.cpp", line
> 306.5: 1540-0218 (S) The call does not match any parameter list for
> "DispatchHandle::DispatchHandle".
> "/achinst/atk/qpid_build/qpidc-0.20/src/qpid/sys/DispatchHandle.h", line
> 88.24: 1540-1283 (I) "qpid::sys::DispatchHandle::DispatchHandle(const
> qpid::sys::IOHandle &, Callback, Callback, Callback)" is not a viable 
> candidate.
> "/achinst/atk/qpid_build/qpidc-0.20/src/qpid/sys/posix/AsynchIO.cpp", line
> 306.20: 1540-0256 (I) A parameter of type "const qpid::sys::IOHandle &"
> cannot be initialized with an expression of type "const qpid::sys::Socket".
> 
> So, DispatchHandle has a constructor:
> QPID_COMMON_EXTERN DispatchHandle(const IOHandle& h, Callback rCb,
> Callback wCb, Callback dCb);
> 
> which takes IOHandle& as the first parameter, however in AsynchIO, the
> constructor is called with the qpid::sys::Socket e.g:
> AsynchAcceptor::AsynchAcceptor(const Socket& s, AsynchAcceptor::Callback
> callback) :
>     acceptedCallback(callback),
>     handle(s, boost::bind(&AsynchAcceptor::readable, this, _1), 0, 0),
>     socket(s)
> 
> (Member "handle" is of type DispatchHandle.)
> 
> The thing is, IOHandle and Socket are totally unrelated. For this to ever 
> work,
> Socket would need to extend IOHandle (or one of its derived classes). So the
> question is, how does this compile anywhere? :)
> 
> Regards,
> Ales

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to