View Javadoc

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  }