ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/Spectre2/Daemon.hpp
(Generate patch)

Comparing Spectre2/Daemon.hpp (file contents):
Revision 403 by douglas, 2004-12-29T22:57:50-08:00 vs.
Revision 432 by douglas, 2005-03-27T01:56:29-08:00

# Line 15 | Line 15
15  
16   #include <menes-api/threads.hpp>
17   #include <menes-etl/fnbind.hpp>
18 + #include <menes-ext/threadset.hpp>
19 +
20 + class Share;
21  
22   class Daemon
23   {
21 protected:
22        bool running, loaded;
23        virtual void load()/*=0*/;
24        virtual void run()/*=0*/;
25        Daemon();
24   private:
25 +        const api::Path& config;
26 +        bool running, loaded;
27 +        unsigned interval/*, count*/;
28          _H<api::Thread> thread;
29          int loop();
30 +        void load();
31 +        template <typename Worker>
32 +                int work();
33 +        template <typename Worker>
34 +                int work_(const Share& share);
35 +        void sleep();
36   public:
37 <        virtual ~Daemon() { thread->Join(); }
37 >        Daemon(const api::Path& config) : config(config), running(true), loaded(false), interval(60), /*count(0),*/ thread(new api::Thread(etl::BindAll(&Daemon::loop, this))) {}
38 >        ~Daemon();
39 >        static ext::RedBlackSet<Share> shares;
40 > //      static api::ThreadMutex smbcLock;
41 > #ifdef __FreeBSD__
42 >        static ext::String secret;
43 >        static api::ThreadMutex secretLock;
44 > #else
45 >        static ext::RedBlackMap<ext::String, ext::String> secrets;
46 >        static api::ThreadMutex secretsLock;
47 > #endif
48          void reload() { loaded = false; }
49          void stop() { running = false; }
50   };
51  
52 < #endif // _Daemon_hpp_
52 > #endif//_Daemon_hpp_

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines