OSDN Git Service

[dennco] integrated engine related changes from denncoCreator
[dennco/dennco.git] / Source / QtScript / dnqscontainer.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 2/22/2012.
18 //
19 #ifndef DNQSCONTAINER_H
20 #define DNQSCONTAINER_H
21
22 #include "TKContainer.h"
23
24 #include <QtScript/QScriptEngine>
25 #include <QtScript/QScriptValue>
26
27 class DNQSContainer : public TKContainer
28 {
29 public:
30     DNQSContainer();
31     virtual ~DNQSContainer();
32
33     virtual void    setValue(std::string key, float value);
34     virtual float   getValue(std::string key) const;
35
36     inline QScriptEngine*   getScriptEngine() { return mQSEngine; }
37     inline QScriptValue     getScriptGlobalObject() { return mQSGlobalObject; }
38     inline QScriptValue     getQSCellContainer() { return mQSCellContainer; }
39
40     virtual TKCell*         cellFactory(std::string location, std::string name, std::string type, bool canInterface = true);
41     virtual TKAxon*         axonFactory(TKCell *theOwner);
42     virtual TKReceptor*     receptorFactory(TKCell *theOwner);
43     virtual TKAxonTerminal* axonTerminalFactory(TKAxon *theOwner);
44     virtual TKCellCode*     cellCodeFactory(std::string name, std::string cellapi, std::string code);
45
46  private:
47     QScriptEngine   *mQSEngine;
48     QScriptValue    mQSGlobalObject;
49     QScriptValue    mQSCellContainer;
50 };
51
52 #endif // DNQSCONTAINER_H