git repos / oastat

commit d08f365e

sago007 · 2011-01-15 19:27
d08f365e262d6a36cf3762405b0f0dfa8b86289c patch · browse files
parent a28b6041b4abc52ae4f25c061e4637408be97b19

added canProcess method that can replace getCommand at some point


git-svn-id: http://oastat.googlecode.com/svn/trunk@13 a36be8df-c75f-1e49-46ad-4f0ee64bdc62

Changed files

M src/oss2db/Award2Db.cpp before
M src/oss2db/Award2Db.h before
M src/oss2db/Ctf1f2Db.cpp before
M src/oss2db/Ctf1f2Db.hpp before
M src/oss2db/Ctf2Db.cpp before
M src/oss2db/Ctf2Db.hpp before
M src/oss2db/Disconnect2Db.cpp before
M src/oss2db/Disconnect2Db.h before
M src/oss2db/Elimination2Db.cpp before
M src/oss2db/Elimination2Db.hpp before
M src/oss2db/Point2Db.cpp before
M src/oss2db/Point2Db.hpp before
M src/oss2db/init2db.cpp before
M src/oss2db/init2db.h before
M src/oss2db/kill2db.cpp before
M src/oss2db/kill2db.h before
M src/oss2db/shutdown2db.cpp before
M src/oss2db/shutdown2db.h before
M src/oss2db/struct2db.h before
M src/oss2db/userinfo2db.cpp before
M src/oss2db/userinfo2db.h before
diff --git a/src/oss2db/Award2Db.cpp b/src/oss2db/Award2Db.cpp index e16130f..314639e 100644 --- a/src/oss2db/Award2Db.cpp +++ b/src/oss2db/Award2Db.cpp
@@ -22,6 +22,12 @@ string Award2Db::getCommand() {
return "Award";
}
+bool Award2Db::canProcess(OaStatStruct oss) {
+ if(oss.command != getCommand() || oss.parameters.size()<1)
+ return false;
+ return true;
+}
+
void Award2Db::process(OaStatStruct oss) {
if(oss.command != getCommand() || oss.parameters.size()<2 || oss.parameters.at(0)<0)
return; //Invalid oss
diff --git a/src/oss2db/Award2Db.h b/src/oss2db/Award2Db.h index 7d9fe9a..53e2aae 100644 --- a/src/oss2db/Award2Db.h +++ b/src/oss2db/Award2Db.h
@@ -18,6 +18,7 @@ public:
virtual ~Award2Db();
string getCommand();
+ bool canProcess(OaStatStruct oss);
void process(OaStatStruct oss);
private:
diff --git a/src/oss2db/Ctf1f2Db.cpp b/src/oss2db/Ctf1f2Db.cpp index d640993..a28f591 100644 --- a/src/oss2db/Ctf1f2Db.cpp +++ b/src/oss2db/Ctf1f2Db.cpp
@@ -20,6 +20,12 @@ string Ctf1f2Db::getCommand() {
return "1FCTF";
}
+bool Ctf1f2Db::canProcess(OaStatStruct oss) {
+ if(oss.command != getCommand() || oss.parameters.size()<1)
+ return false;
+ return true;
+}
+
void Ctf1f2Db::process(OaStatStruct oss) {
if(oss.command != getCommand() || oss.parameters.size()<3 || oss.parameters.at(0)<0)
return; //Invalid oss
diff --git a/src/oss2db/Ctf1f2Db.hpp b/src/oss2db/Ctf1f2Db.hpp index 670775c..74aa1fb 100644 --- a/src/oss2db/Ctf1f2Db.hpp +++ b/src/oss2db/Ctf1f2Db.hpp
@@ -18,6 +18,7 @@ public:
virtual ~Ctf1f2Db();
string getCommand();
+ bool canProcess(OaStatStruct oss);
void process(OaStatStruct oss);
private:
diff --git a/src/oss2db/Ctf2Db.cpp b/src/oss2db/Ctf2Db.cpp index 78ec84f..12f2311 100644 --- a/src/oss2db/Ctf2Db.cpp +++ b/src/oss2db/Ctf2Db.cpp
@@ -21,6 +21,12 @@ string Ctf2Db::getCommand() {
return "CTF";
}
+bool Ctf2Db::canProcess(OaStatStruct oss) {
+ if(oss.command != getCommand() || oss.parameters.size()<1)
+ return false;
+ return true;
+}
+
void Ctf2Db::process(OaStatStruct oss) {
if(oss.command != getCommand() || oss.parameters.size()<3 || oss.parameters.at(0)<0)
return; //Invalid oss
diff --git a/src/oss2db/Ctf2Db.hpp b/src/oss2db/Ctf2Db.hpp index 6d9bfdd..62cf73e 100644 --- a/src/oss2db/Ctf2Db.hpp +++ b/src/oss2db/Ctf2Db.hpp
@@ -18,6 +18,7 @@ public:
virtual ~Ctf2Db();
string getCommand();
+ bool canProcess(OaStatStruct oss);
void process(OaStatStruct oss);
private:
diff --git a/src/oss2db/Disconnect2Db.cpp b/src/oss2db/Disconnect2Db.cpp index dc17eba..c5c8b92 100644 --- a/src/oss2db/Disconnect2Db.cpp +++ b/src/oss2db/Disconnect2Db.cpp
@@ -34,6 +34,12 @@ string Disconnect2Db::getCommand() {
return "ClientDisconnect";
}
+bool Disconnect2Db::canProcess(OaStatStruct oss) {
+ if(oss.command != getCommand() || oss.parameters.size()<1)
+ return false;
+ return true;
+}
+
void Disconnect2Db::process(OaStatStruct oss) {
if(oss.command != getCommand() || oss.parameters.size()<1)
return; //Invalid oss
diff --git a/src/oss2db/Disconnect2Db.h b/src/oss2db/Disconnect2Db.h index 928b4b7..4ddded0 100644 --- a/src/oss2db/Disconnect2Db.h +++ b/src/oss2db/Disconnect2Db.h
@@ -32,6 +32,7 @@ public:
virtual ~Disconnect2Db();
string getCommand();
+ bool canProcess(OaStatStruct oss);
void process(OaStatStruct oss);
private:
diff --git a/src/oss2db/Elimination2Db.cpp b/src/oss2db/Elimination2Db.cpp index aed7988..461a44b 100644 --- a/src/oss2db/Elimination2Db.cpp +++ b/src/oss2db/Elimination2Db.cpp
@@ -20,6 +20,12 @@ string Elimination2Db::getCommand() {
return "ELIMINATION";
}
+bool Elimination2Db::canProcess(OaStatStruct oss) {
+ if(oss.command != getCommand() || oss.parameters.size()<1)
+ return false;
+ return true;
+}
+
void Elimination2Db::process(OaStatStruct oss) {
if(oss.command != getCommand() || oss.parameters.size()<3 || oss.parameters.at(0)<0)
return; //Invalid oss
diff --git a/src/oss2db/Elimination2Db.hpp b/src/oss2db/Elimination2Db.hpp index 6d440ab..795ecaa 100644 --- a/src/oss2db/Elimination2Db.hpp +++ b/src/oss2db/Elimination2Db.hpp
@@ -18,6 +18,7 @@ public:
virtual ~Elimination2Db();
string getCommand();
+ bool canProcess(OaStatStruct oss);
void process(OaStatStruct oss);
private:
diff --git a/src/oss2db/Point2Db.cpp b/src/oss2db/Point2Db.cpp index 3eebb14..358fb28 100644 --- a/src/oss2db/Point2Db.cpp +++ b/src/oss2db/Point2Db.cpp
@@ -20,6 +20,12 @@ string Point2Db::getCommand() {
return "PlayerScore";
}
+bool Point2Db::canProcess(OaStatStruct oss) {
+ if(oss.command != getCommand() || oss.parameters.size()<1)
+ return false;
+ return true;
+}
+
void Point2Db::process(OaStatStruct oss) {
if(oss.command != getCommand() || oss.parameters.size()<2 || oss.parameters.at(0)<0)
return; //Invalid oss
diff --git a/src/oss2db/Point2Db.hpp b/src/oss2db/Point2Db.hpp index ef1a7c0..05f30e3 100644 --- a/src/oss2db/Point2Db.hpp +++ b/src/oss2db/Point2Db.hpp
@@ -18,6 +18,7 @@ public:
virtual ~Point2Db();
string getCommand();
+ bool canProcess(OaStatStruct oss);
void process(OaStatStruct oss);
private:
diff --git a/src/oss2db/init2db.cpp b/src/oss2db/init2db.cpp index 15a08de..198cbf9 100644 --- a/src/oss2db/init2db.cpp +++ b/src/oss2db/init2db.cpp
@@ -35,6 +35,12 @@ string Init2Db::getCommand() {
return "InitGame";
}
+bool Init2Db::canProcess(OaStatStruct oss) {
+ if(oss.command != getCommand() || oss.parameters.size()<1)
+ return false;
+ return true;
+}
+
void Init2Db::process(OaStatStruct oss) {
if(oss.command != getCommand())
return; //Invalid oss
diff --git a/src/oss2db/init2db.h b/src/oss2db/init2db.h index 27b78d7..921e21a 100644 --- a/src/oss2db/init2db.h +++ b/src/oss2db/init2db.h
@@ -32,6 +32,7 @@ public:
virtual ~Init2Db();
string getCommand();
+ bool canProcess(OaStatStruct oss);
void process(OaStatStruct oss);
private:
diff --git a/src/oss2db/kill2db.cpp b/src/oss2db/kill2db.cpp index 406f5d1..6ab2362 100644 --- a/src/oss2db/kill2db.cpp +++ b/src/oss2db/kill2db.cpp
@@ -26,6 +26,12 @@ string Kill2Db::getCommand() {
return "Kill";
}
+bool Kill2Db::canProcess(OaStatStruct oss) {
+ if(oss.command != getCommand() || oss.parameters.size()<1)
+ return false;
+ return true;
+}
+
void Kill2Db::process(OaStatStruct oss) {
if(oss.command != "Kill" || oss.parameters.size()<=3)
return; //Invalid oss
diff --git a/src/oss2db/kill2db.h b/src/oss2db/kill2db.h index f36b0c1..abb3a71 100644 --- a/src/oss2db/kill2db.h +++ b/src/oss2db/kill2db.h
@@ -28,6 +28,7 @@ Copyright (C) 2010 Poul Sander (oastat@poulsander.com)
class Kill2Db : public Struct2Db {
string getCommand();
+ bool canProcess(OaStatStruct oss);
void process(OaStatStruct oss);
diff --git a/src/oss2db/shutdown2db.cpp b/src/oss2db/shutdown2db.cpp index e6abe60..98cec78 100644 --- a/src/oss2db/shutdown2db.cpp +++ b/src/oss2db/shutdown2db.cpp
@@ -35,6 +35,12 @@ string Shutdown2Db::getCommand() {
return "ShutdownGame";
}
+bool Shutdown2Db::canProcess(OaStatStruct oss) {
+ if(oss.command != getCommand() || oss.parameters.size()<1)
+ return false;
+ return true;
+}
+
void Shutdown2Db::process(OaStatStruct oss) {
if(oss.command != getCommand())
return;
diff --git a/src/oss2db/shutdown2db.h b/src/oss2db/shutdown2db.h index be36ce2..5b03e2d 100644 --- a/src/oss2db/shutdown2db.h +++ b/src/oss2db/shutdown2db.h
@@ -32,6 +32,7 @@ public:
virtual ~Shutdown2Db();
string getCommand();
+ bool canProcess(OaStatStruct oss);
void process(OaStatStruct oss);
diff --git a/src/oss2db/struct2db.h b/src/oss2db/struct2db.h index 6308905..701d73d 100644 --- a/src/oss2db/struct2db.h +++ b/src/oss2db/struct2db.h
@@ -48,6 +48,14 @@ class Struct2Db {
virtual string getCommand() = 0;
/*
+ * The object needs a way to tell if it can process a command.
+ *
+ * This is better than the last getCommand, because it can check for multiple commands at once, and can
+ * discard subevents for supported commands.
+ */
+ virtual bool canProcess(OaStatStruct oss) = 0;
+
+ /*
* Parses s OaStatStruct to the object to process
*/
virtual void process(OaStatStruct oss) = 0;
diff --git a/src/oss2db/userinfo2db.cpp b/src/oss2db/userinfo2db.cpp index b5856f2..1bdd0b5 100644 --- a/src/oss2db/userinfo2db.cpp +++ b/src/oss2db/userinfo2db.cpp
@@ -35,6 +35,12 @@ string Userinfo2Db::getCommand() {
return "ClientUserinfoChanged";
}
+bool Userinfo2Db::canProcess(OaStatStruct oss) {
+ if(oss.command != getCommand() || oss.parameters.size()<1)
+ return false;
+ return true;
+}
+
void Userinfo2Db::process(OaStatStruct oss) {
if(oss.command != getCommand() || oss.parameters.size()<1)
return; //Invalid oss
diff --git a/src/oss2db/userinfo2db.h b/src/oss2db/userinfo2db.h index fe25d63..91f1d97 100644 --- a/src/oss2db/userinfo2db.h +++ b/src/oss2db/userinfo2db.h
@@ -33,6 +33,8 @@ public:
string getCommand();
+ bool canProcess(OaStatStruct oss);
+
void process(OaStatStruct oss);
private: