WARNING: USE THIS SOFTWARE AT YOUR OWN RISK! THIS IS EXPERIMENTAL SOFTWARE NOT INTENDED FOR PRODUCTION USE! Zuble is currently an early stage prototype. As such Zuble is minimally tested and inherently unstable. It is provided for experimental, development, and demonstration purposes only. Zuble QML Types   |  Zuble C++ Classes   |  Zuble Overview
Zuble  0.1
Zuble Framework C++/QML extension API
ZblSprocket.h
Go to the documentation of this file.
1 /*
2  * Zuble - A run-time system for QML/Javascript applications
3  * Copyright (C) 2014 Bob Dinitto
4  *
5  * Filename: ZblSprocket.h
6  * Created on: 12/10/2014
7  * Author: Bob Dinitto
8  *
9  * Zuble is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Lesser General Public
11  * License as published by the Free Software Foundation; either
12  * version 2.1 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22  *
23  */
24 
25 #ifndef ZBLSPROCKET_H
26 #define ZBLSPROCKET_H
27 
28 #include <QString>
29 #include "ZblPlugin.h"
30 
31 namespace Zbl
32 {
33 
39 {
40  friend class ZblCog;
41 
42 private:
43  explicit ZblSprocket(){}
44 public:
45 
53  QString uri,
54 
55  int versionMajor,
56 
57  int versionMinor
58  )
59  {
60 
61  m_uri = uri;
62 
64 
66  }
67 
72  const QString& uri() const {return m_uri;}
73 
78  int versionMajor() const {return m_versionMajor;}
79 
84  int versionMinor() const {return m_versionMinor;}
85 
90  const QString sprocketTag() const {return sprocketTag(this);}
91 
95  static const QString sprocketTag(
96  const char* uri,
97  int versionMajor,
98  int versionMinor
99  );
100 
105  static const QString sprocketTag(const ZblSprocket* sprocket);
106 
127  const char* uri,
128  int versionMajor,
129  int versionMinor,
130  const char* qmlName,
131  sprocketObjectConstructor createFunc);
132 
133 
134 protected:
135 
146  int versionKey(int versionMajor, int versionMinor)
147  {return (versionMajor * 10) + versionMinor;}
148 
162  int versionMajor,
163  int versionMinor,
164  const char* qmlName);
165 
174  bool insertSprock(ZblSprockOb* sprock);
175 
179  QString m_uri;
180 
185 
190 
198 
199 };
200 
201 
202 } // Zbl
203 
204 
205 #endif // ZBLSPROCKET_H
This class holds the state for managing a Zuble sprocket.
Definition: ZblSprocket.h:38
const QString & uri() const
returns the Sprocket plugin&#39;s uri
Definition: ZblSprocket.h:72
int m_versionMinor
Sprocket plugin minor version number.
Definition: ZblSprocket.h:189
int versionMinor() const
returns the Sprocket plugin&#39;s minor version number
Definition: ZblSprocket.h:84
sprocketFoundryMap m_objects
Maps object QML names to maps of sprocket object foundaries. Each foundary contains a separate object...
Definition: ZblSprocket.h:197
ZblSprockOb * findSprock(int versionMajor, int versionMinor, const char *qmlName)
Locates a version-specific Sprocket object constructor in the Sprocket&#39;s object foundry based on the ...
Definition: ZblSprocket.cpp:80
QMap< QString, sprocketVersionMap * > sprocketFoundryMap
Maps Sprocket object QML type names to object construction wrappers mapped by version.
Definition: ZblPlugin.h:72
bool registerSprocketObject(const char *uri, int versionMajor, int versionMinor, const char *qmlName, sprocketObjectConstructor createFunc)
Creates a new ZblSprockOb Sprocket object constructor and adds it to the Sprocket&#39;s object foundary...
Definition: ZblSprocket.cpp:45
int versionMajor() const
returns the Sprocket plugin&#39;s major version number
Definition: ZblSprocket.h:78
Definition: ZAndGate.cpp:6
int versionKey(int versionMajor, int versionMinor)
Computes a version key for the specified version number.
Definition: ZblSprocket.h:146
const QString sprocketTag() const
returns a string in the form of "<uri>:<majorVersion>:<minorVersion>"
Definition: ZblSprocket.h:90
ZblSprocket(QString uri, int versionMajor, int versionMinor)
Object constructor.
Definition: ZblSprocket.h:52
int m_versionMajor
Sprocket plugin major version number.
Definition: ZblSprocket.h:184
Maintains a map of Zuble Sprockets and creates Sprocket object factories for javascript background th...
Definition: ZblCog.h:110
QObject *(* sprocketObjectConstructor)(QObject *parent)
A pointer to a function that creates a Zuble Sprocket object. Sprocket object constructor functions s...
Definition: ZblPlugin.h:45
This class acts as an object construction wrapper for objects defined in Zuble Sprocket plugins...
Definition: ZblSprockOb.h:42
QString m_uri
Sprocket plugin uri.
Definition: ZblSprocket.h:179
bool insertSprock(ZblSprockOb *sprock)
Adds a Sprocket constructor object to the Sprocket&#39;s object foundry.