summaryrefslogtreecommitdiff
path: root/java/demo/Freeze/casino/PlayerI.java
blob: 2bc792b2e65deee641493be562d09196e9451997 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// **********************************************************************
//
// Copyright (c) 2003-2009 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************

class PlayerI extends CasinoStore.PersistentPlayer
{
    public int
    getChips(Ice.Current current)
    {
        return chips;
    }

    public void
    destroy(Ice.Current current)
    {
        _bank.returnAllChips(_myPrx);
        _evictor.remove(current.id);
    }

    public void 
    withdraw(int count, Ice.Current current) throws Casino.OutOfChipsException
    {
        int newBalance = chips - count;
        if(newBalance < 0)
        {
            throw new Casino.OutOfChipsException();
        }
        chips = newBalance;
    }

    public void
    win(int count, Ice.Current current)
    {
        assert count >= 0;
        chips += count;
    }

    void 
    init(CasinoStore.PersistentPlayerPrx myPrx, Freeze.TransactionalEvictor evictor, 
         CasinoStore.PersistentBankPrx bank)
    {
        _myPrx = myPrx;
        _evictor = evictor;
        _bank = bank;
    }

    private CasinoStore.PersistentPlayerPrx _myPrx;
    private Freeze.TransactionalEvictor _evictor;
    private CasinoStore.PersistentBankPrx _bank;
}