1
// **********************************************************************
3
// Copyright (c) 2003-2010 ZeroC, Inc. All rights reserved.
5
// This copy of Ice is licensed to you under the terms described in the
6
// ICE_LICENSE file included in this distribution.
8
// **********************************************************************
10
#ifndef SQL_SUBSCRIBER_MAP_H
11
#define SQL_SUBSCRIBER_MAP_H
13
#include <Ice/CommunicatorF.h>
14
#include <IceStorm/SubscriberRecord.h>
15
#include <IceDB/SqlTypes.h>
20
typedef std::map<SubscriberRecordKey, SubscriberRecord> SubscriberMap;
22
class SqlSubscriberMap : public IceUtil::Shared
26
SqlSubscriberMap(const SqlDB::DatabaseConnectionPtr&, const std::string&, const Ice::CommunicatorPtr&);
28
void put(const SqlDB::DatabaseConnectionPtr&, const SubscriberRecordKey&, const SubscriberRecord&);
30
SubscriberRecord find(const SqlDB::DatabaseConnectionPtr&, const SubscriberRecordKey&);
31
void getMap(const SqlDB::DatabaseConnectionPtr&, SubscriberMap&);
33
void erase(const SqlDB::DatabaseConnectionPtr&, const SubscriberRecordKey&);
34
void eraseTopic(const SqlDB::DatabaseConnectionPtr&, const Ice::Identity&);
35
void clear(const SqlDB::DatabaseConnectionPtr&);
43
QoSMap(const SqlDB::DatabaseConnectionPtr&, const std::string&, const Ice::CommunicatorPtr&);
45
void put(const SqlDB::DatabaseConnectionPtr&, const SubscriberRecordKey&, const QoS&);
46
QoS find(const SqlDB::DatabaseConnectionPtr&, const SubscriberRecordKey&);
48
void erase(const SqlDB::DatabaseConnectionPtr&, const SubscriberRecordKey&);
49
void eraseTopic(const SqlDB::DatabaseConnectionPtr&, const Ice::Identity&);
51
void clear(const SqlDB::DatabaseConnectionPtr&);
55
const std::string _table;
56
const Ice::CommunicatorPtr _communicator;
59
const std::string _table;
60
const Ice::CommunicatorPtr _communicator;
64
typedef IceUtil::Handle<SqlSubscriberMap> SqlSubscriberMapPtr;