ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/Spectre2/Daemon.hpp
Revision: 428
Committed: 2005-03-24T17:38:00-08:00 (20 years, 2 months ago) by douglas
File size: 647 byte(s)
Log Message:
Finally, I can commit!

File Contents

# User Rev Content
1 douglas 402 // Spectre 2
2     //
3     // Douglas Thrift
4     //
5     // $Id$
6    
7     #ifndef _Daemon_hpp_
8     #define _Daemon_hpp_
9    
10     #include "Spectre2.hpp"
11    
12     #ifndef MENES_PRAGMA_ONCE
13     #pragma once
14     #endif
15    
16     #include <menes-api/threads.hpp>
17     #include <menes-etl/fnbind.hpp>
18 douglas 428 #include <menes-ext/threadset.hpp>
19 douglas 402
20     class Daemon
21     {
22     private:
23     _H<api::Thread> thread;
24 douglas 403 int loop();
25 douglas 406 protected:
26     bool running, loaded;
27     virtual void load() = 0;
28     virtual void run() = 0;
29     Daemon() : running(false), loaded(false) {}
30 douglas 402 public:
31 douglas 406 virtual ~Daemon() { if (!thread.IsEmpty()) thread->Join(); }
32     void start();
33 douglas 407 void wait();
34 douglas 402 void reload() { loaded = false; }
35     void stop() { running = false; }
36     };
37    
38 douglas 428 #endif//_Daemon_hpp_

Properties

Name Value
svn:eol-style native
svn:keywords Id