projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Prepare some changes in the file layout.
[quassel.git]
/
network
/
messages.cpp
diff --git
a/network/messages.cpp
b/network/messages.cpp
index
e0fc29b
..
912c362
100644
(file)
--- a/
network/messages.cpp
+++ b/
network/messages.cpp
@@
-23,6
+23,8
@@
extern BuiltinCmd builtins[];
extern BuiltinCmd builtins[];
+recvHandlerType Message::defaultRecvHandler;
+sendHandlerType Message::defaultSendHandler;
QHash<QString, CmdType> Message::cmdTypes;
Message::Message(QString _cmd, QStringList args) {
QHash<QString, CmdType> Message::cmdTypes;
Message::Message(QString _cmd, QStringList args) {
@@
-30,25
+32,36
@@
Message::Message(QString _cmd, QStringList args) {
params = args;
}
params = args;
}
-void Message::init() {
+void Message::init(recvHandlerType _r, sendHandlerType _s) {
+ defaultRecvHandler = _r;
+ defaultSendHandler = _s;
+
// Register builtin commands
for(int i = 0; ; i++) {
// Register builtin commands
for(int i = 0; ; i++) {
- if(
!builtins[i].handler
) break;
+ if(
builtins[i].cmd.isEmpty()
) break;
CmdType c;
c.cmd = builtins[i].cmd.toLower();
c.cmdDescr = builtins[i].cmdDescr;
c.args = builtins[i].args;
c.argsDescr = builtins[i].argsDescr;
CmdType c;
c.cmd = builtins[i].cmd.toLower();
c.cmdDescr = builtins[i].cmdDescr;
c.args = builtins[i].args;
c.argsDescr = builtins[i].argsDescr;
- c.handler = builtins[i].handler;
+ c.recvHandler = ( builtins[i].recvHandler ? builtins[i].recvHandler : defaultRecvHandler);
+ c.sendHandler = ( builtins[i].sendHandler ? builtins[i].sendHandler : defaultSendHandler);
cmdTypes.insert(c.cmd, c);
}
}
cmdTypes.insert(c.cmd, c);
}
}
-cmdhandler Message::getCmdHandler() {
+recvHandlerType Message::getRecvHandler() {
+ CmdType c = cmdTypes[cmd];
+ if(c.recvHandler) return c.recvHandler;
+ qDebug() << "No recvHandler defined for " << cmd << "!";
+ return 0;
+}
+
+sendHandlerType Message::getSendHandler() {
CmdType c = cmdTypes[cmd];
CmdType c = cmdTypes[cmd];
- if(c.
handler) return c.h
andler;
- qDebug() << "No
h
andler defined for " << cmd << "!";
+ if(c.
sendHandler) return c.sendH
andler;
+ qDebug() << "No
sendH
andler defined for " << cmd << "!";
return 0;
}
return 0;
}
@@
-66,6
+79,3
@@
void Message::parseParams(QString str) {
}
*/
}
*/
-void Message::test1(QStringList foo) { qDebug() << "Test 1! " << cmd; };
-
-void Message::test2(QStringList bar) { qDebug() << "Test 2!"; };