コード例 #1
0
            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();
            }
コード例 #2
0
            TEST_F(ClusterTest, testListenersWhenClusterDown) {
                HazelcastServer instance(*g_srvFactory);

                std::auto_ptr<ClientConfig> clientConfig(getConfig());
                clientConfig->setAttemptPeriod(1000 * 10).setConnectionAttemptLimit(100).setLogLevel(FINEST);
                HazelcastClient hazelcastClient(*clientConfig);

                util::CountDownLatch countDownLatch(1);
                DummyListenerClusterTest listener(countDownLatch);
                IMap<std::string, std::string> m = hazelcastClient.getMap<std::string, std::string>(
                        "testListenersWhenClusterDown");
                m.addEntryListener(listener, true);
                instance.shutdown();

                util::CountDownLatch lifecycleLatch(1);
                LclForClusterTest lifecycleListener(lifecycleLatch);
                hazelcastClient.addLifecycleListener(&lifecycleListener);

                HazelcastServer instance2(*g_srvFactory);
                ASSERT_TRUE(lifecycleLatch.await(120));
                // Let enough time for the client to re-register the failed listeners
                util::sleep(1);
                m.put("sample", "entry");
                ASSERT_TRUE(countDownLatch.await(60));
                ASSERT_TRUE(hazelcastClient.removeLifecycleListener(&lifecycleListener));
            }
コード例 #3
0
            TEST_F(MemberAttributeTest, testChangeWithListeners){
                util::CountDownLatch attributeLatch(7);
                AttributeListener sampleListener(attributeLatch);

                std::auto_ptr<ClientConfig> clientConfig(getConfig());
                clientConfig->addListener(&sampleListener);

                HazelcastServer instance(*g_srvFactory);
                HazelcastClient hazelcastClient(*clientConfig);

                HazelcastServer instance2(*g_srvFactory);

                ASSERT_TRUE(attributeLatch.await(30));

                instance2.shutdown();

                instance.shutdown();
            }
コード例 #4
0
int main(int argc, char **argv) {
    /*
     * Instantiate a client and connect to the database.
     */
    voltdb::ClientConfig clientConfig("program", "password");
    voltdb::Client client = voltdb::Client::create();
    client.createConnection("localhost");

    /*
     * Describe the stored procedure to be invoked
     */
    std::vector<voltdb::Parameter> parameterTypes(3);
    parameterTypes[0] = voltdb::Parameter(voltdb::WIRE_TYPE_STRING);
    parameterTypes[1] = voltdb::Parameter(voltdb::WIRE_TYPE_STRING);
    parameterTypes[2] = voltdb::Parameter(voltdb::WIRE_TYPE_STRING);
    voltdb::Procedure procedure("Insert", parameterTypes);

    boost::shared_ptr<CountingCallback> callback(new CountingCallback(5));

    /*
     * Load the database.
     */
    voltdb::ParameterSet* params = procedure.params();
    params->addString("English").addString("Hello").addString("World");
    client.invoke(procedure, callback);

    params->addString("French").addString("Bonjour").addString("Monde");
    client.invoke(procedure, callback);

    params->addString("Spanish").addString("Hola").addString("Mundo");
    client.invoke(procedure, callback);

    params->addString("Danish").addString("Hej").addString("Verden");
    client.invoke(procedure, callback);

    params->addString("Italian").addString("Ciao").addString("Mondo");
    client.invoke(procedure, callback);

    /*
     * Run the client event loop to poll the network and invoke callbacks.
     * The event loop will break on an error or when a callback returns true
     */
    client.run();

    /*
     * Describe procedure to retrieve message
     */
    parameterTypes.resize( 1, voltdb::Parameter(voltdb::WIRE_TYPE_STRING));
    voltdb::Procedure selectProc("Select", parameterTypes);

    /*
     * Retrieve the message
     */
    selectProc.params()->addString("Spanish");
    client.invoke(selectProc, boost::shared_ptr<PrintingCallback>(new PrintingCallback()));

    /*
     * Invoke event loop
     */
    client.run();

    return 0;
}