~ubuntu-branches/ubuntu/quantal/zeroc-ice/quantal

« back to all changes in this revision

Viewing changes to cpp/src/IceStorm/SqlDB/SqlSubscriberMap.h

  • Committer: Bazaar Package Importer
  • Author(s): Cleto Martin Angelina
  • Date: 2011-04-25 18:44:24 UTC
  • mfrom: (6.1.14 sid)
  • Revision ID: james.westby@ubuntu.com-20110425184424-sep9i9euu434vq4c
Tags: 3.4.1-7
* Bug fix: "libdb5.1-java.jar was renamed to db.jar", thanks to Ondřej
  Surý (Closes: #623555).
* Bug fix: "causes noise in php5", thanks to Jayen Ashar (Closes:
  #623533).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// **********************************************************************
 
2
//
 
3
// Copyright (c) 2003-2010 ZeroC, Inc. All rights reserved.
 
4
//
 
5
// This copy of Ice is licensed to you under the terms described in the
 
6
// ICE_LICENSE file included in this distribution.
 
7
//
 
8
// **********************************************************************
 
9
 
 
10
#ifndef SQL_SUBSCRIBER_MAP_H
 
11
#define SQL_SUBSCRIBER_MAP_H
 
12
 
 
13
#include <Ice/CommunicatorF.h>
 
14
#include <IceStorm/SubscriberRecord.h>
 
15
#include <IceDB/SqlTypes.h>
 
16
 
 
17
namespace IceStorm
 
18
{
 
19
 
 
20
typedef std::map<SubscriberRecordKey, SubscriberRecord> SubscriberMap;
 
21
 
 
22
class SqlSubscriberMap : public IceUtil::Shared
 
23
{
 
24
public:
 
25
 
 
26
    SqlSubscriberMap(const SqlDB::DatabaseConnectionPtr&, const std::string&, const Ice::CommunicatorPtr&);
 
27
 
 
28
    void put(const SqlDB::DatabaseConnectionPtr&, const SubscriberRecordKey&, const SubscriberRecord&);
 
29
 
 
30
    SubscriberRecord find(const SqlDB::DatabaseConnectionPtr&, const SubscriberRecordKey&);
 
31
    void getMap(const SqlDB::DatabaseConnectionPtr&, SubscriberMap&);
 
32
 
 
33
    void erase(const SqlDB::DatabaseConnectionPtr&, const SubscriberRecordKey&);
 
34
    void eraseTopic(const SqlDB::DatabaseConnectionPtr&, const Ice::Identity&);
 
35
    void clear(const SqlDB::DatabaseConnectionPtr&);
 
36
 
 
37
private:
 
38
 
 
39
    class QoSMap
 
40
    {
 
41
    public:
 
42
 
 
43
        QoSMap(const SqlDB::DatabaseConnectionPtr&, const std::string&, const Ice::CommunicatorPtr&);
 
44
 
 
45
        void put(const SqlDB::DatabaseConnectionPtr&, const SubscriberRecordKey&, const QoS&);
 
46
        QoS find(const SqlDB::DatabaseConnectionPtr&, const SubscriberRecordKey&);
 
47
 
 
48
        void erase(const SqlDB::DatabaseConnectionPtr&, const SubscriberRecordKey&);
 
49
        void eraseTopic(const SqlDB::DatabaseConnectionPtr&, const Ice::Identity&);
 
50
 
 
51
        void clear(const SqlDB::DatabaseConnectionPtr&);
 
52
 
 
53
    private:
 
54
 
 
55
        const std::string _table;
 
56
        const Ice::CommunicatorPtr _communicator;
 
57
    };
 
58
 
 
59
    const std::string _table;
 
60
    const Ice::CommunicatorPtr _communicator;
 
61
    QoSMap _qosMap;
 
62
};
 
63
 
 
64
typedef IceUtil::Handle<SqlSubscriberMap> SqlSubscriberMapPtr;
 
65
 
 
66
}
 
67
 
 
68
#endif