如何在我的Poco::ObjectPool程序中使用c++类?谁能用一个例子来描述这一点,因为我是第一次使用Poco库。在期待中感谢。
发布于 2016-03-04 13:47:15
这方面的文档非常清楚。实际上,下面我从医生那里扣除的,我自己从来没有用过Poco .但现在开始了。
假设您有一个class Foo。由于某些原因,您不希望每次需要时都创建一个新的。也许这是昂贵的创造。也许它会收集一些重要的资源。你想把它集中起来,从池中拿出一个物体,当你用完它的时候,把它放回池里。
您为Poco::ObjectPool对象创建了一个Foo,给出了它的起始容量(最初创建的对象数量)和峰值容量。
Poco::ObjectPool< Foo > pool( 10, 20 );您现在可以从池中“借用”对象。注意,如果达到峰值容量,该函数可以返回nullptr。
Foo * f = pool.borrowObject();完成后,...and将返回到池中。
pool.returnObject( f );您可以向ObjectPool提供策略类以自定义其行为,接口由PoolableObjectFactory定义。这个类处理如何创建、激活、验证对象(以检查它们是否可以被重用或需要被销毁)、禁用和销毁(如果它们不能被重用,或者池被销毁)。
struct FooFactory
{
Foo * createObject() { return new Foo( 42 ); }
void activateObject( Foo * p ) { p.init(); }
bool validateObject( Foo * p ) { return true; }
void deactivateObject( Foo * p ) { p.deinit(); }
void destroyObject( Foo * p ) { delete p; }
};
Poco::ObjectPool< Foo, Foo *, FooFactory > pool;https://stackoverflow.com/questions/35795928
复制相似问题