]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.acorn/src/org/simantics/acorn/internal/ClusterChange2.java
Sharing org.simantics.acorn for everyone to use
[simantics/platform.git] / bundles / org.simantics.acorn / src / org / simantics / acorn / internal / ClusterChange2.java
diff --git a/bundles/org.simantics.acorn/src/org/simantics/acorn/internal/ClusterChange2.java b/bundles/org.simantics.acorn/src/org/simantics/acorn/internal/ClusterChange2.java
new file mode 100644 (file)
index 0000000..472b4d7
--- /dev/null
@@ -0,0 +1,70 @@
+package org.simantics.acorn.internal;
+
+
+public class ClusterChange2 {
+    public static final int VERSION = 2;
+    public static final byte SET_IMMUTABLE_OPERATION = 1; // <byte : 0 = false>
+    public static final byte UNDO_VALUE_OPERATION = 2; // <int : resource index>
+    private static final int INCREMENT = 1<<10;
+//    private boolean dirty = false;
+//    private byte[] bytes;
+//    private int byteIndex;
+//    private ClusterUID clusterUID;
+//    private ClusterImpl cluster;
+//    ClusterChange2(ClusterUID clusterUID, ClusterImpl cluster) {
+//        this.clusterUID = clusterUID;
+//        this.cluster = cluster;
+//        init();
+//    }
+//    void init() {
+////        System.err.println("clusterChange2 dirty " + cluster.clusterId);
+//        dirty = false;
+//        bytes = new byte[INCREMENT];
+//        byteIndex = 0;
+//        addInt(0); // Size of byte vector. Set by flush.
+//        addInt(VERSION);
+//        byteIndex = clusterUID.toByte(bytes, 8);
+//    }
+//    boolean isDirty() {
+//        return dirty;
+//    }
+//    void flush(GraphSession graphSession) {
+////        System.err.println("flush2 clusterChange2 " + dirty + this);
+//        if (!dirty)
+//            return;
+//        Bytes.writeLE(bytes, 0, byteIndex - 4);
+//        byte[] ops = Arrays.copyOf(bytes, byteIndex);
+////        System.err.println("flush2 clusterChange2 " + cluster.clusterId + " " + ops.length + " bytes.");
+//        graphSession.updateCluster(new UpdateClusterFunction(ops));
+//        init();
+//    }
+//    void setImmutable(boolean immutable) {
+//        dirty = true;
+//        addByte(SET_IMMUTABLE_OPERATION);
+//        addByte((byte)(immutable ? -1 : 0));
+//    }
+//    void undoValueEx(int resourceIndex) {
+//        dirty = true;
+//        addByte(UNDO_VALUE_OPERATION);
+//        addInt(resourceIndex);
+//    }
+//    private final void checkSpace(int len) {
+//        if (bytes.length - byteIndex > len)
+//            return;
+//       bytes = Arrays.copyOf(bytes, bytes.length + len + INCREMENT);
+//    }
+//    private final void addByte(byte value) {
+//        checkSpace(1);
+//        bytes[byteIndex++] = value;
+//    }
+//    private final void addInt(int value) {
+//        checkSpace(4);
+//        Bytes.writeLE(bytes, byteIndex, value);
+//        byteIndex += 4;
+//    }
+////    private void addLong(long value) {
+////        checkSpace(8);
+////        Bytes.writeLE(bytes, byteIndex, value);
+////        byteIndex += 8;
+////    }
+}