
QuasarApp Heart - it is base backend for C++/Qt projects. This library support work with databases and work with lite network requests.
Futures
This library consists of two levels (AbstractNode level and DataBaseNode level).
- Support initialize database
Build and Include
For cmake projects
Usage
Create a own package class and override some basic methods.
{
public:
MyPackage();
bool isValid() const {
};
std::string _data = "";
protected:
QDataStream &fromStream(QDataStream &stream) {
stream >> _data;
return stream;
}
QDataStream &toStream(QDataStream &stream) const {
stream << _data;
return stream;
}
};
The AbstractData class is provide base functions for transport data by network For create you own pac...
bool isValid() const override
isValid This method check current object to valid.
Create your parser api class.
*
public:
registerPackageType<MyPackage>();
data = new BigPackage();
}
public:
ParserResult parsePackage(const Package &pkg,
const AbstractNodeInfo *sender) {
auto parentResult = AbstractNode::parsePackage(pkg, sender);
if (parentResult != ParserResult::NotProcessed) {
return parentResult;
}
auto result = commandHandler<MyPackage>(this, &MyClass::processMyPackage, pkg, sender, pkgHeader);
return result;
}
return ParserResult::NotProcessed;
}
bool processMyPackage(const QSharedPointer<MyPackage> &cardrequest,
const QH::AbstractNodeInfo *sender, const QH::Header &hdr) {
BaseId requesterId = getSender(sender, &cardrequest);
if (!cardrequest.isValid()) {
return ParserResult::Error;
}
cardrequest._data = "responce for client "
return ParserResult::Processed;
}
int version() const override {return 0;};
QString parserId() const override {return "MyParser";};
};
HostAddress networkAddress() const
networkAddress This method return network address of current node or client.
The AbstractNode class - Abstract implementation of node. this implementation have a methods for send...
@ Server
This is node can works only as a public server.
The iParser class This class provide functions for parsing income packages. For yousing just override...
The QH namespace - QuasarApp Heart namespace. This namespace contains all classes of the Heart librar...
@ NotProcessed
the parser does not know what to do with the package or has not finished processing it.
Create a server class and add supported parsers to work with packages.
Q_OBJECT
public:
TestingServer() {
addApiParser<MyParser>();
}
}
};
NodeType
The NodeType enum contains types of the node. By default node contains only 3 types.
Create a client class and add supported parsers to work with packages.
public:
TestingClient() {
addApiParser<MyParser>();
}
}
};
@ Client
Node with this type is general clints nodes.
For more information, see our QuasarApp Heart documentation and the API reference.