summaryrefslogtreecommitdiff
path: root/java/src/Freeze/Map.java
blob: 5a60451ecd6963b91ee3ed98ef6476d4a3cea842 (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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
// **********************************************************************
//
// Copyright (c) 2003-2010 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.
//
// **********************************************************************

package Freeze;

/**
 * Interface for Freeze maps.
 *
 * @see Connection
 **/
public interface Map<K, V> extends NavigableMap<K, V>
{
    /**
     * Alternative to <code>java.util.SortedMap.put</code>. This version
     * is more efficient because it does not decode and return the
     * old value.
     **/
    void fastPut(K key, V value);

    /**
     * Closes the database associated with this map, as well as all open iterators.
     * A map must be closed when it is no longer needed, either directly, or by
     * closing the {@link Connection} associated with this map.
     **/
    void close();

    /**
     * Closes all iterators for this map.
     *
     * @return The number of iterators that were closed.
     **/
    int closeAllIterators();

    /**
     * Closes this map and destroys the underlying Berkeley DB database along with any indexes.
     **/
    void destroy();

    /**
     * An <code>EntryIterator</code> allows the application to explicitly
     * close an iterator and free resources allocated for the iterator
     * in a timely fashion.
     **/
    public interface EntryIterator<T> extends java.util.Iterator<T>
    {
        /**
         * Closes this iterator, reclaiming associated resources.
         **/
        void close();

        /**
         * Closes this iterator, reclaiming associated resources. This
         * method is an alias for {@link #close}.
         **/
        void destroy();
    }

    /**
     * Returns the connection associated with this map.
     *
     * @return The connection associated with this map.
     **/
    Connection getConnection();

    /**
     * Closes the database for this map.
     **/
    void closeDb();
}