On Fri, 2 Jul 2010 06:49:59 -0700 (PDT), Demetrius Cassidy <[email protected]> wrote: > Sorry Phil - corrected inheritance tree: > > PUDPSocket <- PIPDataGramSocket <- PIPSocket <- PSocket (ABC) > PTCPSocket <- PIPSocket <- PSocket (ABC) > > PUDPSocket does not have a 'Listen' function in it, instead it just > inherits > it from PIPSocket, who overrides PSocket.
No it doesn't. PIPSocket::Listen() has a different signature to PSocket::Listen() because they refer to different enums (both called Reusability). > PTCPSocket DOES include a 'Listen' function in it, and overrides it from > PIPSocket and PSocket. > > I've attached the corresponding sip files and the generated .cpp files from > sip. > > Below I've also included a snippet of the generated code for both classes. > The weird thing is that SIP wraps the PIPSocket Listen function, along with > the one from PSocket. http://old.nabble.com/file/p29056623/ptlib.rar > ptlib.rar > > > class sipPUDPSocket : public PUDPSocket > { > public: > .... > > /* > * There is a protected method for every virtual method visible from > * this class. > */ > protected: > ... > PBoolean Listen(unsigned,WORD,PIPSocket::Reusability); > PBoolean Listen(const > PIPSocket::Address&,unsigned,WORD,PIPSocket::Reusability); > ... > PBoolean Listen(unsigned,WORD,PSocket::Reusability); > } > > class sipPTCPSocket : public PTCPSocket > { > public: > ... > /* > * There is a protected method for every virtual method visible from > * this class. > */ > protected: > PBoolean Listen(unsigned,WORD,PIPSocket::Reusability); > PBoolean Listen(const > PIPSocket::Address&,unsigned,WORD,PIPSocket::Reusability); > ... > PBoolean Listen(unsigned,WORD,PSocket::Reusability); > }; > > Both classes share the same exact inheritance bug when wrapped: Given your .sip files, the above generated code is correct. It looks like you have a bug in your C++ code - I'd remove the PIPSocket::Reusability enum. Phil _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
