GehaFearless commented on code in PR #1658:
URL: 
https://github.com/apache/incubator-pegasus/pull/1658#discussion_r1474128551


##########
src/common/replication_other_types.h:
##########
@@ -49,43 +51,55 @@ typedef int64_t decree;
 #define invalid_offset (-1LL)
 #define invalid_signature 0
 
-inline bool is_primary(const partition_configuration &pc, const rpc_address 
&node)
+inline bool is_primary(const partition_configuration &pc, const host_port 
&node)
 {
-    return !node.is_invalid() && pc.primary == node;
+    return !node.is_invalid() && pc.hp_primary == node;
 }
-inline bool is_secondary(const partition_configuration &pc, const rpc_address 
&node)
+inline bool is_secondary(const partition_configuration &pc, const host_port 
&node)
 {
     return !node.is_invalid() &&
-           std::find(pc.secondaries.begin(), pc.secondaries.end(), node) != 
pc.secondaries.end();
+           std::find(pc.hp_secondaries.begin(), pc.hp_secondaries.end(), node) 
!=
+               pc.hp_secondaries.end();
 }
-inline bool is_member(const partition_configuration &pc, const rpc_address 
&node)
+inline bool is_member(const partition_configuration &pc, const host_port &node)
 {
     return is_primary(pc, node) || is_secondary(pc, node);
 }
 inline bool is_partition_config_equal(const partition_configuration &pc1,
                                       const partition_configuration &pc2)
 {
     // secondaries no need to be same order
-    for (const rpc_address &addr : pc1.secondaries)
+    for (const host_port &addr : pc1.hp_secondaries)
         if (!is_secondary(pc2, addr))
             return false;
     // last_drops is not considered into equality check
     return pc1.ballot == pc2.ballot && pc1.pid == pc2.pid &&
            pc1.max_replica_count == pc2.max_replica_count && pc1.primary == 
pc2.primary &&
-           pc1.secondaries.size() == pc2.secondaries.size() &&
+           pc1.hp_primary == pc2.hp_primary && pc1.secondaries.size() == 
pc2.secondaries.size() &&
+           pc1.hp_secondaries.size() == pc2.hp_secondaries.size() &&
            pc1.last_committed_decree == pc2.last_committed_decree;
 }
 
 class replica_helper
 {
 public:
-    static bool remove_node(::dsn::rpc_address node,
-                            /*inout*/ std::vector<::dsn::rpc_address> 
&nodeList);
+    template <typename T>
+    static bool remove_node(const T node,
+                            /*inout*/ std::vector<T> &nodes)
+    {
+        auto it = std::find(nodes.begin(), nodes.end(), node);
+        if (it != nodes.end()) {
+            nodes.erase(it);
+            return true;
+        } else {

Review Comment:
   del else



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to