我有以下(简化的)架构:
客户端-->保镖-->服务器
客户端向服务器发送命令。'bouncer' 对客户端发出的命令执行完整性检查和其他检查,并防止错误命令到达服务器。例如,保镖可能有以下代码:
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#,我想我会使用它的 compile-on-the-fly 功能,并if
在配置文件中用纯代码编写我的子句。你对 C++ 有什么建议?