我正在做一些c ++工作,设计一个在测试框架中使用的模拟器。 无论如何,被测系统正在暴露我正在使用的RCF API。问题是我只允许(模拟真实系统)拥有一个" RCF客户端"每个连接。这意味着我将不得不使用客户端线程安全。
通常我会通过名字来调用RCF方法:
client->methodA(param);
现在我必须(我认为)在包含互斥锁调用的方法中包装每个方法:
virtual class RCFClientWrapper
{
protected:
boost::mutex mtx;
public:
virtual RCFClientWrapper();
}
class FunctionAClient:RCFClientWrapper
{
private:
boost::shared_ptr<RcfClient<IRCFFunctionA_IDL> > client;
public:
/*....Stuff....*/
void methodA(param)
{
boost::lock_guard<boost::mutex> lock(mtx);
client->methodA(param);
}
}
首先,有更好的方法吗? 第二,有没有办法做所有这些小方法&#34;自动&#34;?而不是每个方法都必须这样做?好像很多不必要的副本/意大利面。