我有以下(簡化的)體系結構:添加過濾功能上即時在C++
客戶端(一個或多個) - >搖椅 - >服務器
客戶端將命令發送到服務器。 '保鏢'對客戶端發出的命令執行完整性檢查和其他檢查,並防止錯誤命令到達服務器。例如,所述搖椅可以具有以下的代碼:
bool Bouncer::someCommand(const someCommandArg& arg) {
if (arg.x < 100) {
return false;
}
if (arg.y > 10) {
return false;
}
// more checks ...
return server->someCommand(arg);
}
這種方法的問題是,搖椅條件必須是硬編碼的一個接一個,並且是不夠靈活。我正在尋找一種在某些配置文件中定義這些條件的方法,在創建時將加載保鏢,並在調用someCommand
時循環訪問所有條件。而且,測試循環本身必須快速。
如果是C#,我想我已經使用了它的編譯功能,並且在配置文件中以簡單的代碼編寫了我的if
子句。你對C++有什麼建議?