TEST_F(ClusterTest, testClusterListenersFromConfig) { util::CountDownLatch memberAdded(2); util::CountDownLatch memberAddedInit(3); util::CountDownLatch memberRemoved(1); util::CountDownLatch memberRemovedInit(1); util::CountDownLatch attributeLatch(7); util::CountDownLatch attributeLatchInit(7); SampleInitialListener sampleInitialListener(memberAddedInit, attributeLatchInit, memberRemovedInit); SampleListenerInClusterTest sampleListener(memberAdded, attributeLatch, memberRemoved); std::auto_ptr<ClientConfig> clientConfig(getConfig()); clientConfig->addListener(&sampleListener); clientConfig->addListener(&sampleInitialListener); HazelcastServer instance(*g_srvFactory); HazelcastClient hazelcastClient(*clientConfig); HazelcastServer instance2(*g_srvFactory); ASSERT_TRUE(attributeLatchInit.await(30)); ASSERT_TRUE(attributeLatch.await(30)); ASSERT_TRUE(memberAdded.await(30)); ASSERT_TRUE(memberAddedInit.await(30)); instance2.shutdown(); ASSERT_TRUE(memberRemoved.await(30)); ASSERT_TRUE(memberRemovedInit.await(30)); instance.shutdown(); }
TEST_F(ClusterTest, testClusterListeners) { HazelcastServer instance(*g_srvFactory); std::auto_ptr<HazelcastClient> hazelcastClient(getNewClient()); Cluster cluster = hazelcastClient->getCluster(); util::CountDownLatch memberAdded(1); util::CountDownLatch memberAddedInit(2); util::CountDownLatch memberRemoved(1); util::CountDownLatch memberRemovedInit(1); util::CountDownLatch attributeLatch(7); util::CountDownLatch attributeLatchInit(7); SampleInitialListener sampleInitialListener(memberAddedInit, attributeLatchInit, memberRemovedInit); SampleListenerInClusterTest sampleListener(memberAdded, attributeLatch, memberRemoved); cluster.addMembershipListener(&sampleInitialListener); cluster.addMembershipListener(&sampleListener); HazelcastServer instance2(*g_srvFactory); ASSERT_TRUE(attributeLatchInit.await(30)); ASSERT_TRUE(attributeLatch.await(30)); ASSERT_TRUE(memberAdded.await(30)); ASSERT_TRUE(memberAddedInit.await(30)); instance2.shutdown(); ASSERT_TRUE(memberRemoved.await(30)); ASSERT_TRUE(memberRemovedInit.await(30)); instance.shutdown(); cluster.removeMembershipListener(&sampleInitialListener); cluster.removeMembershipListener(&sampleListener); }
void ClusterListenerThread::handleMember(const Member &member, const int32_t &eventType) { switch (eventType) { case MembershipEvent::MEMBER_ADDED: memberAdded(member); break; case MembershipEvent::MEMBER_REMOVED: memberRemoved(member); break; default: char buf[50]; util::snprintf(buf, 50, "Unknown event type :%d", eventType); util::ILogger::getLogger().warning(buf); } clientContext.getPartitionService().wakeup(); }