我有以下(简化的)体系结构:添加过滤功能上即时在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++有什么建议?