Mercurial > hg > Database > Christie
view src/main/java/christie/datagear/LocalDataGearManager.java @ 272:b592fe1d4a4e default tip
create example Attendance
author | matac42 <matac@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 01 Jul 2021 20:41:07 +0900 |
parents | be7063c0684b |
children |
line wrap: on
line source
package christie.datagear; import christie.datagear.command.*; import christie.datagear.dg.DataGear; import static christie.datagear.command.CommandType.PUT; /** * Created by e125769 on 12/7/17. */ public class LocalDataGearManager extends DataGearManager { public void put(String key, Object data) {//main use DataGear dg = new DataGear(data); put(key, dg); } public void put(String key, DataGear dg) { Command cm = new CommandBuilder().init(CommandType.PUT).cgmID(1) .toDgmName("local") .key(key) .dg(dg) .build(); runCommand(cm); } public void runCommand(Command cm){ switch (cm.type) { case PUT: dataGears.setData(cm); if (waitList.containsKey(cm.key)){ runCommand(waitList.getAndRemoveCommand(cm.key)); } break; case TAKE: case REMOTETAKE: case PEEK: case REMOTEPEEK: if (dataGears.containsKey(cm.key)) { setData(cm); cm.execute(); } else { waitList.add(cm); } break; case REPLY: cm.execute(); break; } } private void setData(Command cm){ cm.setDg(dataGears.getData(cm)); } @Override public void resolveWaitCommand(String key, DataGear dg) { } @Override public void finish() { System.exit(0); } @Override public void close() { } @Override public void shutdown() { } }