diff options
author | Benoit Foucher <benoit@zeroc.com> | 2014-11-03 15:58:54 +0100 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2014-11-03 15:58:54 +0100 |
commit | 581d0449b2c5f1bbfd5bb3d6d1216040b832b273 (patch) | |
tree | c3ebc0b05f1ad8d5dc2156e471c799b30be8ecde /java/demo/manual/evictor_filesystem/FileI.java | |
parent | Fixed ICE-5816: Silverlight build failure (diff) | |
download | ice-581d0449b2c5f1bbfd5bb3d6d1216040b832b273.tar.bz2 ice-581d0449b2c5f1bbfd5bb3d6d1216040b832b273.tar.xz ice-581d0449b2c5f1bbfd5bb3d6d1216040b832b273.zip |
Fixed ICE-5811: renamed book demos to manual demos
Diffstat (limited to 'java/demo/manual/evictor_filesystem/FileI.java')
-rw-r--r-- | java/demo/manual/evictor_filesystem/FileI.java | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/java/demo/manual/evictor_filesystem/FileI.java b/java/demo/manual/evictor_filesystem/FileI.java new file mode 100644 index 00000000000..f8904d52490 --- /dev/null +++ b/java/demo/manual/evictor_filesystem/FileI.java @@ -0,0 +1,80 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2014 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. +// +// ********************************************************************** + +import Filesystem.*; + +public final class FileI extends PersistentFile +{ + public + FileI() + { + _destroyed = false; + } + + @Override + public synchronized String + name(Ice.Current current) + { + if(_destroyed) + { + throw new Ice.ObjectNotExistException(current.id, current.facet, current.operation); + } + + return nodeName; + } + + @Override + public void + destroy(Ice.Current current) + throws PermissionDenied + { + synchronized(this) + { + if(_destroyed) + { + throw new Ice.ObjectNotExistException(current.id, current.facet, current.operation); + } + _destroyed = true; + } + + // + // Because we use a transactional evictor, these updates are guaranteed to be atomic. + // + parent.removeNode(nodeName); + _evictor.remove(current.id); + } + + @Override + public synchronized String[] + read(Ice.Current current) + { + if(_destroyed) + { + throw new Ice.ObjectNotExistException(current.id, current.facet, current.operation); + } + + return text.clone(); + } + + @Override + public synchronized void + write(String[] text, Ice.Current current) + throws GenericError + { + if(_destroyed) + { + throw new Ice.ObjectNotExistException(current.id, current.facet, current.operation); + } + + this.text = text; + } + + public static Freeze.Evictor _evictor; + private boolean _destroyed; +} |