symbolicky odkaz na balik
Pavel Kolesnikov
k na les.cz
Pondělí Červenec 27 15:09:13 MEST 1998
Honza Pazdziora <adelton na informatics.muni.cz> wrote:
: Jestli to dobre chapu, tak to $self zde je instance nejake dalsi,
: treti tridy, a z te vy dedite v nejake ctvrte tride. A vy chcete,
: aby pouzivaly jiny objekt pro ten socket.
Presne tak.
: Nema tady byt $self->{'socket'}?
Mate pravdu, prepsal jsem se pri prepisovani.
: No, vypada to rozumne, ale: nakolik jsou IO::Socket::INET
: a HTTP::Daemon kompatibilni?
HTTP::Daemon je potomek IO::Socket::INET.
: Nevim, co je ta trida, ze ktere dedite,
Net::Daemon (ma slouzit jako abstrakce multithreadoveho serveru,
ale vzhledem k zminenemu problemu mi moc abstraktni neprijde).
: Druha moznost pak je udelat v tom Vasem Bindu dalsi bless uz na ten
: vytvoreny socket -- data tim neznicite a budete to mit v nove tride,
: takze to pojede s novymi metodami. Jakoze
: bless $self->{'socket'}, HTTP::Daemon;
To bohuzel nejde - puvodni Bind opsahuje i kod pro smycku obsahujici
$client = $self->{'socket'}->accept() a spousteni novych Threadu
s metodou Run, takze bych ho musel uplne prepsat vcetne te smycky,
coz by se dost pricilo spravne programatorske lenosti :)
K $clientovi se sice muzu dostat i v metode Run, jenze tam uz
bless nepomaha - mozna proto, ze accept() v HTTP::Daemon vraci
instanci tridy HTTP::Daemon::Client a ta se asi nejak odkazuje
na puvodni socket, o nemz ale predpoklada, ze je tridy
HTTP::Daemon... ale tak hluboko jsem se v tom nehrabal, zatim
jsem pouze zjistil, ze to nejde :)
Ocividne mam dojem, ze bud Net::Daemon abtrahovat servery nejakym
ve svete perlovych modulu nekombatibilnim zpusobem a nebo naopak
je neprilis prozirave psana implementace HTTP protokolu
v HTTP::Daemon - nepoznamena nekdo zkusenejsi, ktera moznost
je pravdiva?
Pavel
Další informace o konferenci Perl