@SuppressWarnings("unchecked") @Override public void map(LongWritable positionToMap, LongWritable record, Context context) { try { S pos = game.hashToState(positionToMap.get()); game.longToRecord(pos, record.get(), rec); rec.previousPosition(); int numParents = 0; numParents = ((Undoable<S>) game).possibleParents(pos, parentStates); for (int i = 0; i < numParents; i++) { long parentHash = game.stateToHash(parentStates[i]); RangeFile parentFile = rangeFiles.getFile(parentHash); srp.state = parentHash; srp.record = game.recordToLong(parentStates[i], rec); context.write(parentFile, new StateRecordPair(srp.state, srp.record)); } } catch (IOException e) { throw new Error(e); } catch (InterruptedException e) { e.printStackTrace(); } }
@Override public void setup(Context context) { try { org.apache.hadoop.conf.Configuration hadoopConf = context.getConfiguration(); conf = Configuration.deserialize(hadoopConf.get("gamesman.configuration")); game = conf.getCheckedGame(); if (game instanceof Undoable<?>) { parentStates = game.newStateArray(((Undoable<?>) game).maxParents()); } fs = FileSystem.get(hadoopConf); rec = new Record(conf); srp = new StateRecordPair(); rangeFiles = new RangeFileManager<S>(fs, hadoopConf, game); } catch (IOException e) { throw new Error(e); } catch (ClassNotFoundException e) { throw new Error(e); } catch (ClassCastException e) { throw new Error("Game is not Undoable"); } }
public static DatabaseArgs getArgs( String uri, Configuration conf, boolean reading, boolean writing) { Game<?> g = conf.getGame(); return getArgs(uri, conf, 0, g.numHashes(), reading, writing); }