gephex--main--0.4--patch-1875
[email protected] Tue, 5 Apr 2005 18:58:52 +0200 (CEST)
| Newsgroups | gmane.comp.video.gephex.devel |
|---|---|
| Message-ID | <[email protected]> |
Archive: [email protected] New revision: gephex--main--0.4--patch-1875 -- Revision: gephex--main--0.4--patch-1875 Archive: [email protected] Creator: The Gephex Source Archive <[email protected]> Date: Tue Apr 5 18:56:24 CEST 2005 Standard-date: 2005-04-05 16:56:24 GMT New-files: engine/src/engine/.arch-ids/synced_tasks.h.id engine/src/engine/synced_tasks.h Modified-files: engine/src/engine/Makefile.am engine/src/engine/controller.cpp engine/src/engine/controller.h New-patches: [email protected]/gephex--main--0.4--patch-1875 [email protected]/gephex--martin--0.4--patch-69 Summary: [MERGE-REQUEST] bugfix for #105 Keywords: Patches applied: * [email protected]/gephex--martin--0.4--patch-69 fixes timebase for ttl option * added files engine/src/engine/.arch-ids/synced_tasks.h.id engine/src/engine/synced_tasks.h {arch}/gephex/gephex--main/gephex--main--0.4/[email protected]/patch-log/patch-1875 {arch}/gephex/gephex--martin/gephex--martin--0.4/[email protected]/patch-log/patch-69 * modified files --- orig/engine/src/engine/Makefile.am +++ mod/engine/src/engine/Makefile.am @@ -37,7 +37,8 @@ controller.h \ controller.cpp \ bufferedsender.h \ - bufferedsender.cpp + bufferedsender.cpp \ + synced_task.h gephex_engine_real_LDADD = \ -ldllloader \ --- orig/engine/src/engine/controller.cpp +++ mod/engine/src/engine/controller.cpp @@ -22,7 +22,6 @@ #include "controller.h" #include <iostream> - #if defined (HAVE_CONFIG_H) #include "config.h" #endif @@ -94,6 +93,24 @@ }; + auto_stop_task::auto_stop_task(Controller* ctrl, unsigned int ttl) + : m_ctrl(ctrl), m_ttl(ttl), m_time(0) + { + } + + bool auto_stop_task::run() + { + ++m_time; + + if (m_ttl != 0) + std::cout << m_time << std::endl; + + if (m_time == m_ttl) + m_ctrl->shutDown(); + return true; + } + + /** * Returns a vector of all files in a list of paths, that have a certain @@ -234,7 +251,7 @@ pDllLoader(logger), first_time(true), ttl(config.get_int_param("ttl")), - time(0) + auto_stop(this,ttl) { net::IServerSocket* serverSocket; @@ -338,7 +355,15 @@ scheduler.addTask(*acceptor, 500); scheduler.addTask(*this,250); scheduler.addTask(netPoller,netInterval); - scheduler.addTask(pRenderer,rendererInterval); + + std::list<ITask*> t_list; + t_list.push_back(&auto_stop); + t_list.push_back(&pRenderer); + + augmented_render_task = + utils::AutoPtr<synced_tasks>(new synced_tasks(t_list)); + + scheduler.addTask(*augmented_render_task,rendererInterval); // load stuff @@ -459,11 +484,6 @@ bool Controller::run() { - ++time; - - if ( ttl != 0 && time == ttl ) - shutDown(); - try { // here comes what happens after the connection to the gui is --- orig/engine/src/engine/controller.h +++ mod/engine/src/engine/controller.h @@ -59,6 +59,7 @@ #include "renderer.h" #include "dllloader.h" #include "scheduler.h" +#include "synced_tasks.h" #include "configmanager.h" @@ -78,7 +79,19 @@ class AutoTypeLoader; class AutoModuleLoader; class Acceptor; + class Controller; + class auto_stop_task: public ITask + { + public: + auto_stop_task(Controller* ctrl, unsigned int ttl); + bool run(); + private: + Controller* m_ctrl; + unsigned int m_time; + unsigned int m_ttl; + }; + class NetPoller : public ITask { public: @@ -179,11 +192,12 @@ utils::AutoPtr<AutoTypeLoader> sf; utils::AutoPtr<AutoModuleLoader> aml; + utils::AutoPtr<synced_tasks> augmented_render_task; engine::Scheduler scheduler; bool first_time; - unsigned int time; unsigned int ttl; + auto_stop_task auto_stop; }; }