1 package at.ac.tuwien.sbc.valesriegler.xvsm;
3 import java.io.Serializable;
4 import java.util.ArrayList;
5 import java.util.Arrays;
8 import org.mozartspaces.capi3.AnyCoordinator;
9 import org.mozartspaces.capi3.Coordinator;
10 import org.mozartspaces.core.Capi;
11 import org.mozartspaces.core.ContainerReference;
12 import org.mozartspaces.core.DefaultMzsCore;
13 import org.mozartspaces.core.Entry;
14 import org.mozartspaces.core.MzsCore;
15 import org.mozartspaces.core.MzsCoreException;
16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory;
19 import at.ac.tuwien.sbc.valesriegler.common.SpaceUtil;
20 import at.ac.tuwien.sbc.valesriegler.pizzeria.gui.DEP_Table;
23 * Responsible for XVSM Communication
25 * @author Gregor Riegler <gregor DOT riegler AT gmail DOT com>
28 public class XVSMConnector {
29 private static final Logger log = LoggerFactory.getLogger(XVSMConnector.class);
31 private ContainerReference tablesContainer;
35 public void initSpaceCommunication() throws MzsCoreException {
36 MzsCore core = DefaultMzsCore.newInstanceWithoutSpace();
37 capi = new Capi(core);
38 tablesContainer = SpaceUtil.getOrCreateNamedContainer(SpaceUtil.SERVER_ADDR, SpaceUtil.TABLES_CONTAINER, capi, Arrays.asList((Coordinator) new AnyCoordinator()));
41 public void sendFreeTablesToSpace(List<DEP_Table> tables) {
43 List<Entry> entries = new ArrayList<>();
44 for (DEP_Table table : tables) {
45 entries.add(new Entry(table));
47 capi.write(entries, tablesContainer);
49 log.info("Wrote Free tables to Space!");
50 } catch (MzsCoreException e) {
55 public List<DEP_Table> readTables() {
56 ArrayList<DEP_Table> tables = new ArrayList<>();
58 tables = capi.take(tablesContainer);
59 } catch (MzsCoreException e) {
60 log.error(e.getMessage());