⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 evictorbase.h

📁 ICE-3.2 一个开源的中间件
💻 H
字号:
#ifndef EVICTORBASE_H#define EVICTORBASE_H#include <Ice/ServantLocator.h>#include <IceUtil/Handle.h>#include <IceUtil/Mutex.h>#include <map>#include <list>class EvictorBase : virtual public Ice::ServantLocator{public:    EvictorBase(int size = 1000);    virtual Ice::ObjectPtr locate(const Ice::Current&, Ice::LocalObjectPtr&);    virtual void finished(const Ice::Current&, const Ice::ObjectPtr&, const Ice::LocalObjectPtr&);    virtual void deactivate(const std::string&);    virtual Ice::ObjectPtr add(const Ice::Current&, Ice::LocalObjectPtr&) = 0;    virtual void evict(const Ice::ObjectPtr&, const Ice::LocalObjectPtr&) = 0;private:    struct EvictorEntry;    typedef IceUtil::Handle<EvictorEntry> EvictorEntryPtr;    typedef std::map<Ice::Identity, EvictorEntryPtr> EvictorMap;    typedef std::list<EvictorMap::iterator> EvictorQueue;    struct EvictorEntry : public Ice::LocalObject    {        Ice::ObjectPtr servant;        Ice::LocalObjectPtr userCookie;        EvictorQueue::iterator pos;        int useCount;    };    struct EvictorCookie : public Ice::LocalObject    {        EvictorEntryPtr entry;    };    typedef IceUtil::Handle<EvictorCookie> EvictorCookiePtr;    EvictorMap _map;    EvictorQueue _queue;    Ice::Int _size;    IceUtil::Mutex _mutex;    void evictServants();};typedef IceUtil::Handle<EvictorBase> EvictorBasePtr;#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -