7 |
|
|
8 |
# java imports |
# java imports |
9 |
import java.lang |
import java.lang |
10 |
|
import java.io |
11 |
|
|
12 |
# Gzz imports |
# Gzz imports |
13 |
import gzz |
import gzz |
14 |
|
import gzz.util.dbg |
15 |
import gzz.util |
import gzz.util |
16 |
import gzz.gfx.gl |
import gzz.gfx.gl |
17 |
import gzz.control |
import gzz.control |
30 |
class Gzz(java.lang.Runnable): |
class Gzz(java.lang.Runnable): |
31 |
"""The main Gzz client class.""" |
"""The main Gzz client class.""" |
32 |
|
|
33 |
|
transient = 0 |
34 |
|
|
35 |
def run(self): |
def run(self): |
36 |
# if System.getProperty("gzzclient") == "gl": |
# if System.getProperty("gzzclient") == "gl": |
37 |
# import gzz.gfx.gl.debugswitches |
# import gzz.gfx.gl.debugswitches |
38 |
# gzz.gfx.gl.debugswitches.DebugSwitches(gldbg) |
# gzz.gfx.gl.debugswitches.DebugSwitches(gldbg) |
39 |
views = [gzz.view.VobVanishingClient(), gzz.view.RowColView(0), gzz.view.RowColView(1)] |
self.views = [gzz.view.VobVanishingClient(), gzz.view.RowColView(0), gzz.view.RowColView(1)] |
40 |
gzz.client.Fallback(space.getHomeCell(), dimensions, views, filers) |
gzz.client.Fallback(self.space.getHomeCell(), self.dimensions, self.views, self.filers) |
41 |
gzz.client.AbstractUpdateManager.chg() |
gzz.client.AbstractUpdateManager.chg() |
42 |
|
|
43 |
|
|
44 |
|
def parse_params(self): |
45 |
|
for o,a in self.opts: |
46 |
|
if o in ("-C", "--commander"): |
47 |
|
gzz.control.commander.AwtCommander(globals()) |
48 |
|
if o in gzz.util.dbg.all: |
49 |
|
gzz.util.dbg.option(o,a) |
50 |
|
if o in ("-t", "--transient"): |
51 |
|
self.transient = 1 |
52 |
|
|
53 |
|
if (not self.transient) and (not self.args): |
54 |
|
print "" |
55 |
|
print "Please give at least one directory to read data from" |
56 |
|
print "or specify the -t or --transient option." |
57 |
|
sys.exit(1) |
58 |
|
|
59 |
|
|
60 |
|
def set_defaults(self): |
61 |
|
self.spanType = java.lang.System.getProperty("gzz.spanType") |
62 |
|
self.spaceType = java.lang.System.getProperty("gzz.spaceType") |
63 |
|
self.obsTrigger = gzz.impl.SimpleObsTrigger(); |
64 |
|
self.cellManager = gzz.impl.PlainCellManager() |
65 |
|
self.identityManager = gzz.impl.DummyIdentityManager() |
66 |
|
self.slicer = gzz.impl.SingleSlicer("gzz_fallback_slice") |
67 |
|
self.enfMaker = gzz.media.impl.Enfilade1DImpl.Enfilade1DImplMaker() |
68 |
|
self.cacheStorer = None |
69 |
|
|
70 |
|
if self.spanType == None or self.spanType == "scroll": |
71 |
|
self.spanMaker = gzz.media.impl.ScrollSpanMaker(); |
72 |
|
elif self.spanType == "transient": |
73 |
|
self.spanMaker = gzz.media.impl.FakeSpanMaker() |
74 |
|
else: |
75 |
|
assert 1==0, "Invalid spanType "+self.spanType; |
76 |
|
if self.transient: |
77 |
|
self.storer = gzz.mediaserver.storage.TransientStorer() |
78 |
|
else: |
79 |
|
self.dir = java.io.File(args[0]) |
80 |
|
self.storer = gzz.mediaserver.storage.DirStorer(dir) |
81 |
|
|
82 |
|
if not self.cacheStorer: |
83 |
|
self.cacheStorer = gzz.mediaserver.storage.TransientStorer() |
84 |
|
self.cacheStorer.setProperty("simplemediaserver.poolname", |
85 |
|
# Mediaserver.CACHE_POOL_NAME) |
86 |
|
# ??? Not in CVS |
87 |
|
"cache") |
88 |
|
|
89 |
|
self.pool = gzz.mediaserver.SimpleMediaserver(self.storer) |
90 |
|
self.cachePool = gzz.mediaserver.SimpleMediaserver(self.cacheStorer) |
91 |
|
self.mediaserver = gzz.mediaserver.MultiplexingMediaserver(self.pool, [], [self.cachePool]) |
92 |
|
self.filers = gzz.mediaserver.MediaserverFiler.Group( |
93 |
|
gzz.slices.SliceVersion.EMPTY_VERSION, self.mediaserver, |
94 |
|
gzz.slices.YAMLVersionFormatter.YAMLVersionFormat(self.mediaserver, self.enfMaker)) |
95 |
|
|
96 |
|
if self.spaceType == None or self.spaceType == "ModularSpace": |
97 |
|
self.enfAligner = gzz.fuzzy.enfiladealigner.JythonEnfiladeAligner() |
98 |
|
self.cellTexter = gzz.impl.SimpleVStreamTexter(self.spanMaker, self.enfMaker, self.enfAligner) |
99 |
|
self.dimManager = gzz.impl.SimpleDim.SimpleDimManager() |
100 |
|
self.version = self.filers.getFiler("gzz_fallback_slice").load() |
101 |
|
self.space = gzz.impl.ModularSpace(self.version, self.cellTexter, self.cellManager, |
102 |
|
self.dimManager, self.identityManager, self.slicer, self.obsTrigger) |
103 |
|
self.dimensions = [ |
104 |
|
gzz.client.Fallback.FallbackDim(s, self.space.getDim(id)) for (s, id) |
105 |
|
in (("d.1", gzz.zzutil.Ids.d_1), ("d.2", gzz.zzutil.Ids.d_2), |
106 |
|
("d.3", gzz.zzutil.Ids.d_3))] |
107 |
|
else: |
108 |
|
assert 1==0, "Invalid spacetype "+self.spacetype; |
109 |
|
|
110 |
|
self.dims = {} |
111 |
|
for d in self.dimensions: |
112 |
|
self.dims[d.name] = d.d |
113 |
|
self.home = self.space.getHomeCell() |
114 |
|
self.d1, self.d2, self.d3 = [d.d for d in self.dimensions] |
115 |
|
self.graphicsAPI = gzz.client.GraphicsAPI.getInstance() |
116 |
|
|
117 |
|
def dumpVersion(self, file): |
|
if __name__ == '__main__': |
|
|
# everything (if sensible) below will move to class GZZ... |
|
|
opts, args = getopt.getopt(sys.argv[1:], "Ct"+gzz.util.dbg.short, |
|
|
["--commander"]+gzz.util.dbg.long) |
|
|
|
|
|
transient = 0 |
|
|
|
|
|
|
|
|
for o,a in opts: |
|
|
if o in ("-C", "--commander"): |
|
|
gzz.control.commander.AwtCommander(globals()) |
|
|
if o in gzz.util.dbg.all: |
|
|
gzz.util.dbg.option(o,a) |
|
|
if o in ("-t", "--transient"): |
|
|
transient = 1 |
|
|
|
|
|
|
|
|
|
|
|
# {(Vegai) This moved to the top. |
|
|
# Nothing apparently broke (even the GraphicsAPI dispatch |
|
|
# was unharmed), but if your mileage varies, |
|
|
# I left the code in comments for easier reverting.} |
|
|
# |
|
|
# Read arguments before importing stuff, since |
|
|
# we have to call setProperty *BEFORE* that in order |
|
|
# to choose the right GraphicsAPI.instance |
|
|
|
|
|
# sys.path.insert(0, ".") |
|
|
# from gzz import * |
|
|
# from gzz.impl import * |
|
|
# from gzz.media import * |
|
|
# from gzz.media.impl import * |
|
|
# from gzz.mediaserver import * |
|
|
# from gzz.mediaserver.storage import * |
|
|
# from gzz.slices import * |
|
|
# from gzz.slices import SliceVersion |
|
|
# from gzz.slices.YAMLVersionFormatter import YAMLVersionFormat |
|
|
# from gzz.diff import * |
|
|
# from gzz.client import * |
|
|
# from gzz.control import * |
|
|
# from gzz.view import * |
|
|
# from gzz.zzutil import Ids |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (not transient) and (not args): |
|
|
print "" |
|
|
print "Please give at least one directory to read data from" |
|
|
print "or specify the -t or --transient option." |
|
|
sys.exit(1) |
|
|
|
|
|
spanType = java.lang.System.getProperty("gzz.spanType") |
|
|
spaceType = java.lang.System.getProperty("gzz.spaceType") |
|
|
|
|
|
# it's important to put all these in the global scope: |
|
|
# that way we can access them all from the console! |
|
|
|
|
|
obsTrigger = gzz.impl.SimpleObsTrigger(); |
|
|
cellManager = gzz.impl.PlainCellManager() |
|
|
identityManager = gzz.impl.DummyIdentityManager() |
|
|
slicer = gzz.impl.SingleSlicer("gzz_fallback_slice") |
|
|
|
|
|
if spanType == None or spanType == "scroll": |
|
|
spanMaker = gzz.media.impl.ScrollSpanMaker(); |
|
|
elif spanType == "transient": |
|
|
spanMaker = gzz.media.impl.FakeSpanMaker() |
|
|
else: |
|
|
assert 1==0, "Invalid spanType "+spanType; |
|
|
|
|
|
enfMaker = gzz.media.impl.Enfilade1DImpl.Enfilade1DImplMaker() |
|
|
|
|
|
cacheStorer = None |
|
|
if transient: |
|
|
storer = gzz.mediaserver.storage.TransientStorer() |
|
|
else: |
|
|
dir = java.io.File(args[0]) |
|
|
storer = gzz.mediaserver.storage.DirStorer(dir) |
|
|
|
|
|
# if java.io.File(dir, "cache").exists(): |
|
|
# cacheStorer = DirStorer(java.io.File(dir, "cache")) |
|
|
# if cacheStorer.getProperty("simplemediaserver.poolname") != \ |
|
|
# Mediaserver.CACHE_POOL_NAME: |
|
|
# print "cache/ directory doesn't have correct pool name" |
|
|
# print "" |
|
|
# sys.exit(1) |
|
|
|
|
|
if not cacheStorer: |
|
|
cacheStorer = gzz.mediaserver.storage.TransientStorer() |
|
|
cacheStorer.setProperty("simplemediaserver.poolname", |
|
|
# Mediaserver.CACHE_POOL_NAME) |
|
|
# ??? Not in CVS |
|
|
"cache") |
|
|
|
|
|
pool = gzz.mediaserver.SimpleMediaserver(storer) |
|
|
cachePool = gzz.mediaserver.SimpleMediaserver(cacheStorer) |
|
|
mediaserver = gzz.mediaserver.MultiplexingMediaserver(pool, [], [cachePool]); |
|
|
filers = gzz.mediaserver.MediaserverFiler.Group( |
|
|
gzz.slices.SliceVersion.EMPTY_VERSION, mediaserver, |
|
|
gzz.slices.YAMLVersionFormatter.YAMLVersionFormat(mediaserver, enfMaker)); |
|
|
|
|
|
if spaceType == None or spaceType == "ModularSpace": |
|
|
enfAligner = gzz.fuzzy.enfiladealigner.JythonEnfiladeAligner() |
|
|
cellTexter = gzz.impl.SimpleVStreamTexter(spanMaker, enfMaker, enfAligner) |
|
|
dimManager = gzz.impl.SimpleDim.SimpleDimManager() |
|
|
version = filers.getFiler("gzz_fallback_slice").load() |
|
|
space = gzz.impl.ModularSpace(version, cellTexter, cellManager, dimManager, |
|
|
identityManager, slicer, obsTrigger) |
|
|
dimensions = [ |
|
|
gzz.client.Fallback.FallbackDim(s, space.getDim(id)) for (s, id) |
|
|
in (("d.1", gzz.zzutil.Ids.d_1), ("d.2", gzz.zzutil.Ids.d_2), |
|
|
("d.3", gzz.zzutil.Ids.d_3))] |
|
|
else: |
|
|
assert 1==0, "Invalid spacetype "+spacetype; |
|
|
|
|
|
dims = {} |
|
|
for d in dimensions: |
|
|
dims[d.name] = d.d |
|
|
home = space.getHomeCell() |
|
|
d1,d2,d3 = [d.d for d in dimensions] |
|
|
|
|
|
def dumpVersion(file): |
|
118 |
sli = space.getSlicer() |
sli = space.getSlicer() |
119 |
try: |
try: |
|
from java.io import File, FileOutputStream |
|
120 |
YAMLVersionFormat(pool, enfMaker).writeVersion( |
YAMLVersionFormat(pool, enfMaker).writeVersion( |
121 |
FileOutputStream(File(file)), |
FileOutputStream(File(file)), |
122 |
sli.export(sli.getSlice0())) |
sli.export(sli.getSlice0())) |
123 |
except TypeError, t: |
except TypeError, t: |
124 |
print t |
print t |
125 |
|
|
126 |
|
def __init__(self): |
127 |
|
self.opts, self.args = getopt.getopt(sys.argv[1:], "Ct"+gzz.util.dbg.short, |
128 |
|
["--commander"]+gzz.util.dbg.long) |
129 |
|
self.parse_params() |
130 |
|
self.set_defaults() |
131 |
|
|
132 |
graphicsAPI = gzz.client.GraphicsAPI.getInstance() |
if __name__ == '__main__': |
133 |
|
g = Gzz() |
|
|
|
|
# this stays outside the class, however |
|
134 |
if java.lang.System.getProperty("gzzclient") == "gl": |
if java.lang.System.getProperty("gzzclient") == "gl": |
135 |
print "Running GL..." |
print "Running GL..." |
136 |
graphicsAPI.startUpdateManager(Gzz()) |
g.graphicsAPI.startUpdateManager(g) |
137 |
else: |
else: |
138 |
print "Running AWT..." |
print "Running AWT..." |
139 |
graphicsAPI.startUpdateManager(None) |
g.graphicsAPI.startUpdateManager(None) |
140 |
Gzz().run() |
g.run() |