1 /*
2 * Copyright (c) 1998-2004 The Jgroup Team.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
16 *
17 */
18 package jgroup.jini.txn;
19
20 import java.rmi.RemoteException;
21
22 import jgroup.core.InternalGMIListener;
23
24 /**
25 * @author Heine Kolltveit
26 * @since Jgroup 2.2
27 */
28 public interface InternalPassiveTransactionParticipant
29 extends InternalGMIListener, java.io.Serializable
30 {
31 /**
32 * Transfers the state of the txn
33 * to other members of the group.
34 *
35 * @param txnMgr
36 * The <code>TxnManagerTransaction</code> object
37 * @param id
38 * Transaction id of current transaction
39 * @throws RemoteException
40 */
41 public void txnPrepared(long txnId, Object stateObj)
42 throws RemoteException;
43
44 public void txnCompleted(long txnId, int outcome)
45 throws RemoteException;
46
47 /**
48 * Transfer withdraw state to other members in the group.
49 */
50 public void txnWithdraw(long account, int amount, long transactionID)
51 throws RemoteException;
52
53 /** Transfer deposit state to other members int he group */
54 public void txnDeposit(long account, int amount, long transactionID)
55 throws RemoteException;
56 }