// ********************************************************************** // // Copyright (c) 2003-2012 ZeroC, Inc. All rights reserved. // // This copy of Ice is licensed to you under the terms described in the // ICE_LICENSE file included in this distribution. // // ********************************************************************** #pragma once #include #include #include namespace IceGrid { class ApplicationsWrapper : public virtual IceDB::Wrapper { }; typedef IceUtil::Handle ApplicationsWrapperPtr; class AdaptersWrapper : public virtual IceDB::Wrapper { public: virtual std::vector findByReplicaGroupId(const std::string&) = 0; }; typedef IceUtil::Handle AdaptersWrapperPtr; class ObjectsWrapper : public virtual IceDB::Wrapper { public: virtual std::vector findByType(const std::string&) = 0; }; typedef IceUtil::Handle ObjectsWrapperPtr; class DatabaseCache : virtual public IceDB::DatabaseCache { public: virtual ApplicationsWrapperPtr getApplications(const IceDB::DatabaseConnectionPtr&) = 0; virtual AdaptersWrapperPtr getAdapters(const IceDB::DatabaseConnectionPtr&) = 0; virtual ObjectsWrapperPtr getObjects(const IceDB::DatabaseConnectionPtr&) = 0; virtual ObjectsWrapperPtr getInternalObjects(const IceDB::DatabaseConnectionPtr&) = 0; }; typedef IceUtil::Handle DatabaseCachePtr; class DatabasePlugin : virtual public Ice::Plugin { public: virtual DatabaseCachePtr getDatabaseCache() = 0; }; typedef IceUtil::Handle DatabasePluginPtr; }