Esempio n. 1
0
 void receivedFromSource(Message& message)
 {
     QPID_LOG(debug, "transfering  " << (transfered+1) << " of " << expected);
     message.getDeliveryProperties().setRoutingKey(destination);
     async(sourceSubscription.getSession()).messageTransfer(arg::content=message);
     if (++transfered == expected) {
         QPID_LOG(info, "completed job: " << transfered << " messages shifted from " <<
                  source << " to " << destination);
         sourceSubscription.accept(sourceSubscription.getUnaccepted());
         sourceSubscription.getSession().txCommit();
         sourceSubscription.cancel();
         //grant credit to allow broker to send us another control message
         controlSubscription.grantMessageCredit(1);
     }
 }
Esempio n. 2
0
 void receivedFromControl(Message& message)
 {
     if (message.getData() == "transfer") {
         source = message.getHeaders().getAsString("src");
         destination = message.getHeaders().getAsString("dest");
         expected = message.getHeaders().getAsInt("count");
         transfered = 0;
         QPID_LOG(info, "received transfer request: " << expected << " messages to be shifted from " <<
                  source << " to " << destination);
         subscribeToSource(controlSubscription.getSubscriptionManager());
     } else if (message.getData() == "quit") {
         QPID_LOG(info, "received quit request");
         controlSubscription.cancel();
     } else {
         std::cerr << "Rejecting invalid message: " << message.getData() << std::endl;
         controlSubscription.getSession().messageReject(SequenceSet(message.getId()));
     }
 }