[ https://issues.apache.org/jira/browse/PROTON-1442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17946138#comment-17946138 ]
ASF GitHub Bot commented on PROTON-1442: ---------------------------------------- DreamPearl commented on code in PR #437: URL: https://github.com/apache/qpid-proton/pull/437#discussion_r2052420969 ########## cpp/examples/tx_send.cpp: ########## @@ -0,0 +1,172 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + +#include "options.hpp" + +#include <proton/connection.hpp> +#include <proton/container.hpp> +#include <proton/message.hpp> +#include <proton/message_id.hpp> +#include <proton/messaging_handler.hpp> +#include <proton/types.hpp> +#include <proton/transaction.hpp> + +#include <iostream> +#include <map> +#include <string> + +#include <chrono> +#include <thread> + +class tx_send : public proton::messaging_handler, proton::transaction_handler { + private: + proton::sender sender; + std::string url; + int total; + int batch_size; + int sent; + int batch_index = 0; + int current_batch = 0; + int committed = 0; + int confirmed = 0; + + proton::session session; + + public: + tx_send(const std::string &s, int c, int b): + url(s), total(c), batch_size(b), sent(0) {} + + void on_container_start(proton::container &c) override { + sender = c.open_sender(url); + } + + void on_session_open(proton::session &s) override { + session = s; + std::cout << " [on_session_open] declare_txn started..." << std::endl; + s.declare_transaction(*this); + std::cout << " [on_session_open] declare_txn ended..." << std::endl; + } + + void on_transaction_declare_failed(proton::session) {} + void on_transaction_commit_failed(proton::session s) { + std::cout << "Transaction Commit Failed" << std::endl; + s.connection().close(); + exit(-1); + } + + void on_transaction_declared(proton::session s) override { + std::cout << "[on_transaction_declared] Session: " << (&s) + << std::endl; + std::cout << "[on_transaction_declared] txn is_empty " << (s.txn_is_empty()) + << "\t" << std::endl; + send(sender); + } + + void on_sendable(proton::sender &s) override { + std::cout << " [OnSendable] session: " << &session + << std::endl; + send(s); + } + + void send(proton::sender &s) { + static int unique_id = 10000; Review Comment: Done! > [c++] Support for transactions > ------------------------------ > > Key: PROTON-1442 > URL: https://issues.apache.org/jira/browse/PROTON-1442 > Project: Qpid Proton > Issue Type: Improvement > Components: cpp-binding > Reporter: Radim Kubis > Assignee: Rakhi Kumari > Priority: Major > > Support for transactions in Qpid Proton C++. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org