]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db/src/org/simantics/db/Database.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.db / src / org / simantics / db / Database.java
diff --git a/bundles/org.simantics.db/src/org/simantics/db/Database.java b/bundles/org.simantics.db/src/org/simantics/db/Database.java
new file mode 100644 (file)
index 0000000..c72e72b
--- /dev/null
@@ -0,0 +1,152 @@
+package org.simantics.db;\r
+\r
+import java.io.File;\r
+import java.nio.ByteBuffer;\r
+import java.nio.file.Path;\r
+import java.util.Properties;\r
+\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.db.exception.SDBException;\r
+import org.simantics.db.service.ClusterUID;\r
+\r
+public interface Database {\r
+    static public enum Status {\r
+        NoDatabase { @Override public String getString() { return "NoDatabase"; }},\r
+        NotRunning { @Override public String getString() { return "NotRunning"; }},\r
+        Standalone { @Override public String getString() { return "Standalone"; }},\r
+        Local { @Override public String getString() { return "Local"; }},\r
+        Remote { @Override public String getString() { return "Remote";}};\r
+        public abstract String getString();\r
+        @Override\r
+        public String toString() {\r
+            return message;\r
+        }\r
+        public String message = "";\r
+    }\r
+    public DatabaseUserAgent getUserAgent();\r
+    public void setUserAgent(DatabaseUserAgent dbUserAgent);\r
+    public Status getStatus();\r
+\r
+    public File getFolder();\r
+    public boolean isFolderOk();\r
+    public boolean isFolderOk(File aFolder);\r
+    public boolean isFolderEmpty();\r
+    public boolean isFolderEmpty(File aFolder);\r
+    public void initFolder(Properties properties) throws SDBException;\r
+    public void deleteFiles() throws SDBException;\r
+\r
+    public void start() throws SDBException;\r
+    public boolean isRunning() throws SDBException;\r
+    public boolean tryToStop() throws SDBException;\r
+\r
+    public void connect() throws SDBException;\r
+    public boolean isConnected() throws SDBException;\r
+    public String execute(String command) throws SDBException;\r
+    public void disconnect() throws SDBException;\r
+\r
+    public void clone(File to, int revision, boolean saveHistory) throws SDBException;\r
+    public Path createFromChangeSets(int revision) throws SDBException;\r
+    public void deleteGuard() throws SDBException;\r
+    public Path dumpChangeSets() throws SDBException;\r
+    public void purgeDatabase() throws SDBException;\r
+    public long serverGetTailChangeSetId() throws SDBException;\r
+\r
+    public interface Session {\r
+        public Database getDatabase(); // Convenience method.\r
+        public void close() throws SDBException;\r
+        public void open() throws SDBException;\r
+        public boolean isClosed() throws SDBException;\r
+        public interface ChangeSetData {\r
+            public boolean isOk();\r
+        }\r
+        public interface ChangeSetIds {\r
+            public long getFirstChangeSetId();\r
+            public int getCount();\r
+        }\r
+        public interface Cluster {\r
+            public int getInflateSize();\r
+            public ByteBuffer getDeflated();\r
+        }\r
+        public interface ClusterChanges {\r
+            public long getHeadChangeSetId();\r
+            public int[] getResourceIndex();\r
+            public int[] getPredicateIndex();\r
+            public long[] getPredicateFirst();\r
+            public long[] getPredicateSecond();\r
+            public int[] getValueIndex();\r
+        }\r
+        public interface ClusterIds {\r
+            public int getStatus();\r
+            public long[] getFirst();\r
+            public long[] getSecond();\r
+        }\r
+        public interface Information {\r
+            public String getServerId();\r
+            public String getProtocolId();\r
+            public String getDatabaseId();\r
+            public long getFirstChangeSetId();\r
+        }\r
+        public interface Refresh {\r
+            public long getHeadChangeSetId();\r
+            public long[] getFirst();\r
+            public long[] getSecond();\r
+        }\r
+        public interface ResourceSegment {\r
+            public byte[] getClusterId();\r
+            public int getResourceIndex();\r
+            public long getValueSize(); // Size of whole value.\r
+            public byte[] getSegment(); // Bytes of asked segment.\r
+            public long getOffset(); // Segment offset.\r
+        }\r
+        public interface Transaction {\r
+            public long getHeadChangeSetId();\r
+            public long getTransactionId();\r
+        }\r
+        interface OnChangeSetUpdate {\r
+            public void onChangeSetUpdate(ChangeSetUpdate changeSetUpdate) throws SDBException;\r
+        }\r
+        public void acceptCommit(long transactionId, long changeSetId, byte[] metadata) throws SDBException;\r
+        public long cancelCommit(long transactionId, long changeSetId, byte[] metadata, OnChangeSetUpdate onChangeSetUpdate) throws SDBException;\r
+        public Transaction askReadTransaction() throws SDBException;\r
+        public Transaction askWriteTransaction(long transactionId) throws SDBException;\r
+        public long endTransaction(long transactionId) throws SDBException; // Return head change set id.\r
+        public String execute(String command) throws SDBException;\r
+        public byte[] getChangeSetMetadata(long changeSetId) throws SDBException;\r
+        public ChangeSetData getChangeSetData(long minChangeSetId, long  maxChangeSetId, OnChangeSetUpdate onChangeSetupate) throws SDBException;\r
+        public ChangeSetIds getChangeSetIds() throws SDBException;\r
+        public Cluster getCluster(byte[] clusterId) throws SDBException;\r
+        public ClusterChanges getClusterChanges(long changeSetId, byte[] clusterId) throws SDBException;\r
+        public ClusterIds getClusterIds() throws SDBException;\r
+        public Information getInformation() throws SDBException;\r
+        public Refresh getRefresh(long changeSetId) throws SDBException;\r
+        public ResourceSegment getResourceSegment(byte[] clusterUID, int resourceIndex, long offset, short size) throws SDBException;\r
+        public long reserveIds(int count) throws SDBException;\r
+        public void updateCluster(byte[] operations) throws SDBException;\r
+        public interface ChangeSetUpdate {\r
+            public long getChangeSetId();\r
+            public int getChangeSetIndex();\r
+            public int getNumberOfClusterChangeSets();\r
+            public int getIndexOfClusterChangeSet();\r
+            public byte[] getClusterId();\r
+            public boolean getNewCluster();\r
+            public byte[] getData();\r
+        }\r
+        public boolean undo(long[] changeSetIds, OnChangeSetUpdate onChangeSetUpdate) throws SDBException;\r
+        \r
+        public <T> T clone(ClusterUID clusterUID, ClusterCreator clusterCreator) throws DatabaseException;\r
+        public boolean refreshEnabled();\r
+    }\r
+    public Session newSession(ServiceLocator locator) throws SDBException;\r
+    interface Journal {\r
+        public class Line {\r
+            public boolean status;\r
+            public String request;\r
+            public String comment;\r
+        }\r
+        public boolean canRead();\r
+        public int count();\r
+        public int read(int index, Line line) throws SDBException;\r
+    }\r
+    public Journal getJournal() throws SDBException;\r
+    public String getCompression();\r
+}\r