About the command handling of MSN protocol

2009-06-22 Thread Peng Jing
Greetings   These days I'm trying to make my own simple MSN. But I got stuck in the command processing. I hope that someone can help me :-)   Some of commands in MSNP are asynchronous such as MSG and CHL. Your buddies may always change their online status and presence information. So the applicat

Re: About the command handling of MSN protocol

2009-06-22 Thread Ka-Hing Cheung
On Mon, Jun 22, 2009 at 09:17:40PM +0800, Peng Jing wrote: > Here are my questions: > 1). > I have read part of Pidgin's source code, but I'm still no so clear about the > implementation of the command processing mechanism. Could anyone tell me how > command processing is implemented in Pidgin?

Re: About the command handling of MSN protocol

2009-06-22 Thread Ka-Hing Cheung
On Tue, Jun 23, 2009 at 12:57:03AM +0800, Peng Jing wrote: > Thanks. > I was reading the source code of 'notification.c' and 'cmdproc.c' just now. > I saw the hash table there :-) > > But how about handling the incoming commands? > I saw a queue there, how to keep listenning to the server, enqueue

Re: About the command handling of MSN protocol

2009-06-23 Thread Mark Doliner
On Mon, Jun 22, 2009 at 6:17 AM, Peng Jing wrote: > 2). > I plan to employ some multi-threading: one thread keeps listenning to the > incoming commands from the server, put them in a cache, and the other thread > scans the cache and pick out those complete commands and enqueue them. But > this may

Re: About the command handling of MSN protocol

2009-06-23 Thread Peng Jing
23日,周二, Mark Doliner 写道: 发件人: Mark Doliner 主题: Re: About the command handling of MSN protocol 收件人: "Peng Jing" 抄送: support@pidgin.im 日期: 2009年6月23日,周二,下午3:04 On Mon, Jun 22, 2009 at 6:17 AM, Peng Jing wrote: > 2). > I plan to employ some multi-threading: one thread keeps l

Re: About the command handling of MSN protocol

2009-06-23 Thread Ka-Hing Cheung
On Tue, Jun 23, 2009 at 09:53:48PM +0800, Peng Jing wrote: > Thanks for your reply. > Did you mean this: >   we do all the things in a single thread: >   1. Invoke select() or use some similar methods to read the data coming > from the socket when there is any. >   2. If we read data s