1 |
/* AbstractSelector.java |
/* AbstractSelector.java -- |
2 |
Copyright (C) 2002 Free Software Foundation, Inc. |
Copyright (C) 2002 Free Software Foundation, Inc. |
3 |
|
|
4 |
This file is part of GNU Classpath. |
This file is part of GNU Classpath. |
35 |
obligated to do so. If you do not wish to do so, delete this |
obligated to do so. If you do not wish to do so, delete this |
36 |
exception statement from your version. */ |
exception statement from your version. */ |
37 |
|
|
|
|
|
38 |
package java.nio.channels.spi; |
package java.nio.channels.spi; |
39 |
|
|
40 |
import java.nio.channels.*; |
import java.nio.channels.SelectionKey; |
41 |
import java.util.*; |
import java.nio.channels.Selector; |
42 |
|
import java.util.List; |
43 |
|
import java.util.Set; |
44 |
|
|
45 |
public abstract class AbstractSelector extends Selector |
public abstract class AbstractSelector extends Selector |
46 |
{ |
{ |
47 |
boolean closed = true; |
boolean closed = true; |
48 |
SelectorProvider provider; |
SelectorProvider provider; |
49 |
|
|
50 |
protected AbstractSelector(SelectorProvider provider) |
protected AbstractSelector (SelectorProvider provider) |
51 |
{ |
{ |
52 |
this.provider = provider; |
this.provider = provider; |
53 |
} |
} |
54 |
|
|
55 |
|
protected final void begin () |
56 |
protected void begin() |
{ |
57 |
{ |
} |
58 |
} |
|
59 |
|
public final void close () |
60 |
public void close() |
{ |
61 |
{ |
if (closed) |
62 |
if (closed) |
return; |
63 |
return; |
closed = true; |
64 |
closed = true; |
implCloseSelector (); |
65 |
implCloseSelector(); |
} |
66 |
} |
|
67 |
|
public final boolean isOpen () |
68 |
protected void deregister(AbstractSelectionKey key) |
{ |
69 |
{ |
return ! closed; |
70 |
cancelledKeys().remove(key); |
} |
71 |
} |
|
72 |
|
protected final void deregister (AbstractSelectionKey key) |
73 |
|
{ |
74 |
|
cancelledKeys ().remove (key); |
75 |
|
} |
76 |
|
|
77 |
protected void end() |
protected final void end() |
78 |
{ |
{ |
79 |
} |
} |
80 |
|
|
81 |
|
public final SelectorProvider provider () |
82 |
public final boolean isOpen() |
{ |
83 |
{ |
return provider; |
84 |
return ! closed; |
} |
85 |
} |
|
86 |
|
protected final Set cancelledKeys() |
87 |
public SelectorProvider provider() |
{ |
88 |
{ |
return null; |
89 |
return provider; |
} |
90 |
} |
|
91 |
|
protected abstract void implCloseSelector (); |
92 |
protected abstract void implCloseSelector(); |
protected abstract SelectionKey register (AbstractSelectableChannel ch, |
93 |
protected abstract SelectionKey register(AbstractSelectableChannel ch, int ops, Object att); |
int ops, Object att); |
94 |
} |
} |