OSDN Git Service

alpha1 development (Qt).
[dennco/dennco.git] / Source / DNEngine.h
1 //  Copyright (c) 2012 Dennco Project
2 //
3 // This program is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, either version 3 of the License, or
6 // (at your option) any later version.
7 //
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
16 //
17 //  Created by tkawata on 1/28/2012.
18 //
19
20 #ifndef dennco_DNEngine_h
21 #define dennco_DNEngine_h
22
23 class TKContainer;
24 class DNTimeKeeper;
25 class DNHTTPServer;
26
27 #include "TKLock.h"
28 #include "DNThread.h"
29
30 #include <string>
31
32 class DNEngine
33 {
34 public:
35     DNEngine(const char *contentPath);
36     virtual ~DNEngine();
37
38     bool        startEngine();
39     bool        stopEngine();
40     
41     bool        startHTTPServer(int portNumber);
42     void        stopServer();
43     
44     void        setTickIntervalSec(float interval);
45     
46     static void doTickThread(void *self);
47     float       doClientGetRequest(const char* path);
48     bool        doClientSetRequest(const char* path, const char* value);
49     bool        doClientSetRequest(const char* path, float value);
50
51     std::string getContentPath();
52     std::string getUIPath();
53     
54     bool        isValid() { return mValid; }
55     
56     
57 private:
58     bool            parseSettingFile(const char *settingXML);
59     bool            parseContainerFile(const char *containerRoot);
60     
61     TKContainer     *mContainer;
62     int             mPortNumber;
63     DNHTTPServer    *mHTTPServer;
64     DNTimeKeeper    *mTimeKeeper;
65     bool            mValid;
66
67     DNThread        *mDoTickThread;
68     
69 };
70
71 #endif