> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Niels Provos
> Sent: Wednesday, November 01, 2006 5:34 AM
> To: Matt Pearson
> Cc: [email protected]
> Subject: Re: [Libevent-users] questions about bufferevent
>
> Hi Matt,
>
> that's about right. You get the write callback when the
> write buffer is below the watermark (which is usually 0
> bytes). You either supply more data then or disable the
> write callback. It get's automatically reneabled when you
> call bufferevent_write.
>
> Niels.
thank you Niels and Matt .
i write an example code according you . Please check that.
====my code====
...
void connection_accept()
{
...
//accept a new nonblock connfd
cs->bev=bufferevent_new(connfd,code_readcb, code_writecb, code_errorcb, cs);
...
bufferevent_enable(cs->bev, EV_READ | EV_WRITE);
...
}
void code_readcb()
{
struct evbuffer* buffer=EVBUFFER_INPUT(bev);
char* buf=(char*)EVBUFFER_DATA(buffer);
size_t len = EVBUFFER_LENGTH(buffer);
...
//transfer data to my_own_biz_functions.
}
void code_writecb()
{
bufferevent_disable(bev,EV_WRITE);
}
void code_errorcb()
{
...
}
void my_functions()
{
...
//produce data , and then want to transfer them
bufferevent_write(bev,(void*)PubBuf,len);
...
}
====my code====
>
> On 10/31/06, Matt Pearson <[EMAIL PROTECTED]> wrote:
> > On 10/30/06, cwinl <[EMAIL PROTECTED]> wrote:
> > > i also suspect my usage of bufferevent_write.
> > > can you illustrate an example ?
> >
> > (Sorry if I mess this up; my first real mailing list post...)
> >
> > When I wrote a simple chat proxy using bufferevents, I added a
> > bufferevent_enable(EV_WRITE) in my read callback after
> writing data,
> > and then my write callback consisted of just a
> > bufferevent_disable(EV_WRITE), because otherwise the write callback
> > will keep firing because the buffer is empty, and it thinks
> you want
> > to write more. This was my thinking, anyway; I never actually
> > profiled it or anything because I wrote it in an afternoon and then
> > didn't touch it after that.
> > _______________________________________________
> > Libevent-users mailing list
> > [email protected]
> > http://monkey.org/mailman/listinfo/libevent-users
> >
> >
> _______________________________________________
> Libevent-users mailing list
> [email protected]
> http://monkey.org/mailman/listinfo/libevent-users
_______________________________________________
Libevent-users mailing list
[email protected]
http://monkey.org/mailman/listinfo/libevent-users