Replica.h
Go to the documentation of this file.
1 // **********************************************************************
2 //
3 // Copyright (c) 2003-2017 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 REPLICA_H
11 #define REPLICA_H
12 
13 #include <set>
14 
15 #include <Ice/Ice.h>
16 #include <IceStorm/Election.h>
17 
18 namespace IceStormElection
19 {
20 
22  {
23  GroupNodeInfo(int i);
24  GroupNodeInfo(int i, LogUpdate l, const Ice::ObjectPrx& o = Ice::ObjectPrx());
25  bool operator<(const GroupNodeInfo& rhs) const;
26  bool operator==(const GroupNodeInfo& rhs) const;
27  //
28  // COMPILER FIX: Clang using libc++ requires to define operator=
29  //
30 #if defined(__clang__) && defined(_LIBCPP_VERSION)
31  GroupNodeInfo& operator=(const GroupNodeInfo&);
32 #endif
33  const int id;
34  const LogUpdate llu;
35  const Ice::ObjectPrx observer;
36  };
37 
38  class Replica : public virtual IceUtil::Shared
39  {
40  public:
41  virtual LogUpdate getLastLogUpdate() const = 0;
42  virtual void sync(const Ice::ObjectPrx&) = 0;
43  virtual void initMaster(const std::set<IceStormElection::GroupNodeInfo>&,
44  const LogUpdate&) = 0;
45  virtual Ice::ObjectPrx getObserver() const = 0;
46  virtual Ice::ObjectPrx getSync() const = 0;
47  };
48 
50 
51 } // namespace IceStormElection
52 
53 #endif // RELICA_H
IceStormElection::Replica
Definition: Replica.h:38
IceStormElection::GroupNodeInfo
Definition: Replica.h:21
IceStormElection::Replica::getSync
virtual Ice::ObjectPrx getSync() const =0
IceStormElection::GroupNodeInfo::operator<
bool operator<(const GroupNodeInfo &rhs) const
Definition: NodeI.cpp:106
IceStormElection::LogUpdate
A struct used for marking the last log update.
Definition: LLURecord.h:102
IceStormElection::GroupNodeInfo::operator==
bool operator==(const GroupNodeInfo &rhs) const
Definition: NodeI.cpp:112
IceStormElection::Replica::getObserver
virtual Ice::ObjectPrx getObserver() const =0
IceStormElection
Definition: DBTypes.ice:17
IceStormElection::GroupNodeInfo::id
const int id
Definition: Replica.h:33
IceStormElection::Replica::sync
virtual void sync(const Ice::ObjectPrx &)=0
IceStormElection::Replica::initMaster
virtual void initMaster(const std::set< IceStormElection::GroupNodeInfo > &, const LogUpdate &)=0
IceStormElection::GroupNodeInfo::observer
const Ice::ObjectPrx observer
Definition: Replica.h:35
IceStormElection::Replica::getLastLogUpdate
virtual LogUpdate getLastLogUpdate() const =0
IceStormElection::GroupNodeInfo::llu
const LogUpdate llu
Definition: Replica.h:34
Election.h
IceUtil::Handle
Definition: forward_declarations.h:30
IceStormElection::GroupNodeInfo::GroupNodeInfo
GroupNodeInfo(int i)
Definition: NodeI.cpp:96
IceStormElection::ReplicaPtr
IceUtil::Handle< Replica > ReplicaPtr
Definition: Replica.h:49