5a580c3a38ced62d4bcc95b8ac7c4f2935b5d294Timo Sirainen/* Copyright (c) 2008-2018 Dovecot authors, see the included COPYING file */
7384b4e78eaab44693c985192276e31322155e32Stephan Boschvirtual_transaction_get(struct mailbox_transaction_context *trans,
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch struct mailbox_transaction_context *const *bt, *new_bt;
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch bt = array_get(&vt->backend_transactions, &count);
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch for (i = 0; i < count; i++) {
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch new_bt = mailbox_transaction_begin(backend_box, trans->flags, __func__);
b72c3363092b73cab1da2de4a9d75592e7d8fd6bTimo Sirainen array_append(&vt->backend_transactions, &new_bt, 1);
feba5e502b2131c9a1c766b7ef9ff041dbf71d1dStephan Bosch struct virtual_mailbox *mbox = (struct virtual_mailbox *)box;
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch vt = i_new(struct virtual_transaction_context, 1);
feba5e502b2131c9a1c766b7ef9ff041dbf71d1dStephan Bosch index_transaction_init(&vt->t, box, flags, reason);
7384b4e78eaab44693c985192276e31322155e32Stephan Boschint virtual_transaction_commit(struct mailbox_transaction_context *t,
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch struct mail_transaction_commit_changes *changes_r)
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch bt = array_get_modifiable(&vt->backend_transactions, &count);
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch for (i = 0; i < count; i++) {
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch if (index_transaction_commit(t, changes_r) < 0)
7384b4e78eaab44693c985192276e31322155e32Stephan Boschvoid virtual_transaction_rollback(struct mailbox_transaction_context *t)
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch bt = array_get_modifiable(&vt->backend_transactions, &count);
6a90041707f1290c8970a3bacb0f8f928aeaaba6Stephan Bosch for (i = 0; i < count; i++)