Lines Matching refs:inst

44     def pop_tuples(inst, num=nil)  argument
51 (0...inst.wait_and_pop).map do
52 inst.wait_and_pop
63 def process_instruction(inst) argument
67 if inst.op == 'DIRECTORY_CREATE_SUBSPACE'
68 path = pop_tuples(inst)
69 raw_prefix = inst.wait_and_pop
71 elsif inst.op == 'DIRECTORY_CREATE_LAYER'
72 index1 = inst.wait_and_pop
73 index2 = inst.wait_and_pop
74 allow_manual_prefixes = inst.wait_and_pop
82 elsif inst.op == 'DIRECTORY_CHANGE'
83 @dir_index = inst.wait_and_pop
87 elsif inst.op == 'DIRECTORY_SET_ERROR_INDEX'
88 @error_index = inst.wait_and_pop
89 elsif inst.op == 'DIRECTORY_CREATE_OR_OPEN'
90 … @dir_list << directory.create_or_open(inst.tr, pop_tuples(inst), :layer=>inst.wait_and_pop || '')
91 elsif inst.op == 'DIRECTORY_CREATE'
92 …@dir_list << directory.create(inst.tr, pop_tuples(inst), :layer=>inst.wait_and_pop || '', :prefix=…
93 elsif inst.op == 'DIRECTORY_OPEN'
94 @dir_list << directory.open(inst.tr, pop_tuples(inst), :layer=>inst.wait_and_pop || '')
95 elsif inst.op == 'DIRECTORY_MOVE'
96 @dir_list << directory.move(inst.tr, pop_tuples(inst), pop_tuples(inst))
97 elsif inst.op == 'DIRECTORY_MOVE_TO'
98 @dir_list << directory.move_to(inst.tr, pop_tuples(inst))
99 elsif inst.op == 'DIRECTORY_REMOVE'
100 count = inst.wait_and_pop
102 directory.remove(inst.tr)
104 directory.remove(inst.tr, pop_tuples(inst))
106 elsif inst.op == 'DIRECTORY_REMOVE_IF_EXISTS'
107 count = inst.wait_and_pop
109 directory.remove_if_exists(inst.tr)
111 directory.remove_if_exists(inst.tr, pop_tuples(inst))
113 elsif inst.op == 'DIRECTORY_LIST'
114 count = inst.wait_and_pop
117 directory.list(inst.tr)
119 directory.list(inst.tr, pop_tuples(inst))
122 inst.push(FDB::Tuple.pack(results))
123 elsif inst.op == 'DIRECTORY_EXISTS'
124 count = inst.wait_and_pop
127 directory.exists?(inst.tr)
129 directory.exists?(inst.tr, pop_tuples(inst))
133 inst.push(1)
135 inst.push(0)
137 elsif inst.op == 'DIRECTORY_PACK_KEY'
138 inst.push(directory.pack(pop_tuples(inst)))
139 elsif inst.op == 'DIRECTORY_UNPACK_KEY'
140 tup = directory.unpack(inst.wait_and_pop)
141 tup.each do |t| inst.push(t) end
142 elsif inst.op == 'DIRECTORY_RANGE'
143 rng = directory.range(pop_tuples(inst))
144 inst.push(rng[0])
145 inst.push(rng[1])
146 elsif inst.op == 'DIRECTORY_CONTAINS'
147 if directory.contains?(inst.wait_and_pop)
148 inst.push(1)
150 inst.push(0)
152 elsif inst.op == 'DIRECTORY_OPEN_SUBSPACE'
153 @dir_list << directory.subspace(pop_tuples(inst))
154 elsif inst.op == 'DIRECTORY_LOG_SUBSPACE'
155 inst.tr[inst.wait_and_pop + FDB::Tuple.pack([@dir_index])] = directory.key
156 elsif inst.op == 'DIRECTORY_LOG_DIRECTORY'
157 exists = directory.exists?(inst.tr)
158 children = exists ? directory.list(inst.tr) : []
159 log_subspace = FDB::Subspace.new([@dir_index], inst.wait_and_pop)
160 inst.tr[log_subspace['path'.encode('utf-8')]] = FDB::Tuple.pack(directory.path)
161 inst.tr[log_subspace['layer'.encode('utf-8')]] = FDB::Tuple.pack([directory.layer])
162 inst.tr[log_subspace['exists'.encode('utf-8')]] = FDB::Tuple.pack([exists ? 1 : 0])
163 inst.tr[log_subspace['children'.encode('utf-8')]] = FDB::Tuple.pack(children)
164 elsif inst.op == 'DIRECTORY_STRIP_PREFIX'
165 str = inst.wait_and_pop
167 inst.push(str[directory.key.length..-1])
169 raise "Unknown op #{inst.op}"
175 if @@ops_that_create_dirs.include?(inst.op)
179 inst.push('DIRECTORY_ERROR')