summaryrefslogtreecommitdiff
path: root/cpp/include/IceGrid/ReplicaGroupFilter.h
blob: 6b78c81fe02dfab705c6667da090b71d95583cee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//
// Copyright (c) ZeroC, Inc. All rights reserved.
//

#ifndef ICEGRID_H
#define ICEGRID_H

namespace IceGrid
{

/**
 * Abstract base class for a replica group filter.
 * \headerfile IceGrid/IceGrid.h
 */
class ReplicaGroupFilter : public IceUtil::Shared
{
public:

    /**
     * Called by the registry to filter a collection of adapters. The implementation must not block.
     * @param replicaGroupId The replica group identifier involved in this request.
     * @param adapterIds A sequence of object adapter identifiers denoting the object
     * adapters participating in the replica group whose nodes are active at the time of the request.
     * @param connection The incoming connection from the client to the registry.
     * @param context The incoming connection from the client to the registry.
     * @return The filtered list of adapter identifiers.
     */
    virtual Ice::StringSeq filter(const string& replicaGroupId, const Ice::StringSeq& adapterIds,
                                  const Ice::ConnectionPtr& connection, const Ice::Context& context) = 0;
};

};

#endif