|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Hello,
I'm trying to find some existing (and simple if possible) timer queue implementation. Does anybody know a simple skeleton to use as example? I just need to send simple (relative) timeouts. Thought about some possibilities but would prefer to use something already tested. Thanksç |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
sip.address@gmail.com wrote:
> I'm trying to find some existing (and simple if possible) timer queue > implementation. Does anybody know a simple skeleton to use as example? > I just need to send simple (relative) timeouts. Thought about some > possibilities but would prefer to use something already tested. C++ language does not define "timers". There are no standard C++ means to achieve what you need, I'm afraid. Did you perhaps mean to post to the newsgroup dedicated to your OS? V -- Please remove capital 'A's when replying by e-mail I do not respond to top-posted replies, please don't ask |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
On Dec 10, 12:03 am, "Victor Bazarov" <v.Abaza...@comAcast.net> wrote:
> sip.addr...@gmail.com wrote: > > I'm trying to find some existing (and simple if possible) timer queue > > implementation. Does anybody know a simple skeleton to use as example? > > I just need to send simple (relative) timeouts. Thought about some > > possibilities but would prefer to use something already tested. > > C++ language does not define "timers". There are no standard C++ means > to achieve what you need, I'm afraid. Did you perhaps mean to post to > the newsgroup dedicated to your OS? Hi, Thanks for your reply. I know I'm asking something that is not completely standard, but I was looking for a portable implementation of a timer queue. Ideally implemented using the stdlib. Of course, there will be some os dependent parts but the algorithm itself should be rather portable. regards |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
sip.address@gmail.com wrote:
> On Dec 10, 12:03 am, "Victor Bazarov" <v.Abaza...@comAcast.net> wrote: >> sip.addr...@gmail.com wrote: >>> I'm trying to find some existing (and simple if possible) timer >>> queue implementation. Does anybody know a simple skeleton to use as >>> example? I just need to send simple (relative) timeouts. Thought >>> about some possibilities but would prefer to use something already >>> tested. >> >> C++ language does not define "timers". There are no standard C++ >> means to achieve what you need, I'm afraid. Did you perhaps mean to >> post to the newsgroup dedicated to your OS? > > Hi, > > Thanks for your reply. I know I'm asking something that is not > completely standard, but I was looking for a portable implementation > of a timer queue. Ideally implemented using the stdlib. Of course, > there will be some os dependent parts but the algorithm itself should > be rather portable. If you're looking for the algorithm, this is not the right place either. If the algorithm is the same whether it's written in C++ or, say, in Java or Python, then .lang. newsgroups are not appropriate. Try asking in 'comp.programming'. If you _have_ the algorithm but don't know how to implement it in C++, then it *is* a language problem and you need to start explaining what difficulty you have. You also have to explicitly state that you have looked in other available sources, like Google, and couldn't find anything. This is not "give me your implementation of <blah> in C++" newsgroup. This is "I have this specific problem with C++ language construct" or "Is this code looks OK from the Standard point of view" or "What is partial template specialisation" newsgroup. Read the FAQ, read the newsgroup archives, if this explanation is not enough. V -- Please remove capital 'A's when replying by e-mail I do not respond to top-posted replies, please don't ask |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Victor Bazarov wrote:
> sip.address@gmail.com wrote: >> On Dec 10, 12:03 am, "Victor Bazarov" <v.Abaza...@comAcast.net> wrote: >>> sip.addr...@gmail.com wrote: >>>> I'm trying to find some existing (and simple if possible) timer >>>> queue implementation. Does anybody know a simple skeleton to use as >>>> example? I just need to send simple (relative) timeouts. Thought >>>> about some possibilities but would prefer to use something already >>>> tested. >>> C++ language does not define "timers". There are no standard C++ >>> means to achieve what you need, I'm afraid. Did you perhaps mean to >>> post to the newsgroup dedicated to your OS? >> Hi, >> >> Thanks for your reply. I know I'm asking something that is not >> completely standard, but I was looking for a portable implementation >> of a timer queue. Ideally implemented using the stdlib. Of course, >> there will be some os dependent parts but the algorithm itself should >> be rather portable. > > If you're looking for the algorithm, this is not the right place either. > > If the algorithm is the same whether it's written in C++ or, say, in > Java or Python, then .lang. newsgroups are not appropriate. Try asking > in 'comp.programming'. If you _have_ the algorithm but don't know how > to implement it in C++, then it *is* a language problem and you need to > start explaining what difficulty you have. You also have to explicitly > state that you have looked in other available sources, like Google, and > couldn't find anything. > > This is not "give me your implementation of <blah> in C++" newsgroup. > This is "I have this specific problem with C++ language construct" or > "Is this code looks OK from the Standard point of view" or "What is > partial template specialisation" newsgroup. Read the FAQ, read the > newsgroup archives, if this explanation is not enough. I'm as much of an on-topic freak as the next guy, Victor, but I think in this case, we're OK. He's admitted that the timer stuff is OS specific, but looking for a C++ mechanism for maintaining the queue of OS specific stuff. Anyways, sip_address, I'd define a class of timer objects, and then use a std::priority_queue() to maintain them. Note that if you need to delete an element mid-queue (kill a timer before it's time), then you should derive from std::priority_queue -- PRIVATELY -- to gain access to the underlying (protected) container. |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
On 12/10/2007 9:18 PM, red floyd wrote:
> [...] > Anyways, sip_address, I'd define a class of timer objects, and then use > a std::priority_queue() to maintain them. Note that if you need to > delete an element mid-queue (kill a timer before it's time), then you > should derive from std::priority_queue -- PRIVATELY -- to gain access to > the underlying (protected) container. Isn't std::priority_queue just a wrapper around a std::vector and the heap functions (make_heap, push_heap, pop_heap) ? Doesn't deleting an element 'mid-queue' invalidate the heap ? Any comments ? S. -- Stefan Naewe stefan dot naewe at atlas-elektronik dot com Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html Plain text mails only, please http://www.expita.com/nomime.html |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
Stefan Naewe wrote:
> On 12/10/2007 9:18 PM, red floyd wrote: >> [...] >> Anyways, sip_address, I'd define a class of timer objects, and then use >> a std::priority_queue() to maintain them. Note that if you need to >> delete an element mid-queue (kill a timer before it's time), then you >> should derive from std::priority_queue -- PRIVATELY -- to gain access to >> the underlying (protected) container. > > Isn't std::priority_queue just a wrapper around a std::vector and > the heap functions (make_heap, push_heap, pop_heap) ? > Doesn't deleting an element 'mid-queue' invalidate the heap ? > That's why you derive, so that if you delete from the middle, you can call make_heap on the embedded container. Note that the container is a protected member of the priority_queue. E.g. (pseudocode follows): class timer_queue : private std::priority_queue() { public: using std::priority_queue::{methods}; void delete_timer(timer_id); }; void timer_queue::delete_timer(timer_id id) { // find id in container // remove from container // call make_heap on container } |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
On Dec 10, 3:18 pm, red floyd <no.s...@here.dude> wrote:
> Victor Bazarov wrote: > > sip.addr...@gmail.com wrote: > >> On Dec 10, 12:03 am, "Victor Bazarov" <v.Abaza...@comAcast.net> wrote: > >>> sip.addr...@gmail.com wrote: > >>>> I'm trying to find some existing (and simple if possible) timer > >>>> queue implementation. Does anybody know a simple skeleton to use as > >>>> example? I just need to send simple (relative) timeouts. Thought > >>>> about some possibilities but would prefer to use something already > >>>> tested. > >>> C++ language does not define "timers". There are no standard C++ > >>> means to achieve what you need, I'm afraid. Did you perhaps mean to > >>> post to the newsgroup dedicated to your OS? > >> Hi, > > >> Thanks for your reply. I know I'm asking something that is not > >> completely standard, but I was looking for a portable implementation > >> of a timer queue. Ideally implemented using the stdlib. Of course, > >> there will be some os dependent parts but the algorithm itself should > >> be rather portable. > > > If you're looking for the algorithm, this is not the right place either. > > > If the algorithm is the same whether it's written in C++ or, say, in > > Java or Python, then .lang. newsgroups are not appropriate. Try asking > > in 'comp.programming'. If you _have_ the algorithm but don't know how > > to implement it in C++, then it *is* a language problem and you need to > > start explaining what difficulty you have. You also have to explicitly > > state that you have looked in other available sources, like Google, and > > couldn't find anything. > > > This is not "give me your implementation of <blah> in C++" newsgroup. > > This is "I have this specific problem with C++ language construct" or > > "Is this code looks OK from the Standard point of view" or "What is > > partial template specialisation" newsgroup. Read the FAQ, read the > > newsgroup archives, if this explanation is not enough. > > I'm as much of an on-topic freak as the next guy, Victor, but I think in > this case, we're OK. He's admitted that the timer stuff is OS specific, > but looking for a C++ mechanism for maintaining the queue of OS specific > stuff. > > Anyways, sip_address, I'd define a class of timer objects, and then use > a std::priority_queue() to maintain them. Note that if you need to > delete an element mid-queue (kill a timer before it's time), then you > should derive from std::priority_queue -- PRIVATELY -- to gain access to > the underlying (protected) container.- Hide quoted text - > > - Show quoted text - For the underlying implementation of the timer object check out asio. It's a C++ cross-platform socket wrapper that includes timers. I'm not sure if it's made it's way into boost yet. |
|
![]() |
| Outils de la discussion | |
|
|