Serialize ID API
authorHamed Gorjiara <hgorjiar@uci.edu>
Sun, 6 Sep 2020 22:25:45 +0000 (15:25 -0700)
committerHamed Gorjiara <hgorjiar@uci.edu>
Sun, 6 Sep 2020 22:25:45 +0000 (15:25 -0700)
src/SatuneJavaAPI.java
src/ccsolver.cc
src/ccsolver.h
src/csolver.cc
src/csolver.h
src/satune_SatuneJavaAPI.cc
src/satune_SatuneJavaAPI.h

index a5e71d3c39e21baba983758d35ac8db990dfbfc0..086b0c720a7c55becd4e29e4fd29079bda5d829e 100644 (file)
@@ -87,6 +87,7 @@ public class SatuneJavaAPI{
        private native void printConstraints(long solver);
        private native void turnoffOptimizations(long solver);
        private native void serialize(long solver);
+       private native void serializeID(long solver, long id);
        private native void mustHaveValue(long solver, long element);
        private native void setInterpreter(long solver, int type);
        private native long clone(long solver);
index a1dd75898acc356574fe5089097f35d52b1d3913..f62ac2575c4962ee4d04ec08b283b6c838105f09 100644 (file)
@@ -182,6 +182,9 @@ void turnoffOptimizations(void *solver) {
        CCSOLVER(solver)->turnoffOptimizations();
 }
 
+void serializeID(void *solver, long id) {
+       CCSOLVER(solver)->serializeID(id);
+}
 
 void serialize(void *solver) {
        CCSOLVER(solver)->serialize();
index 638527c54f0d3370233bf6d556441c97357d94da..5f12b62fe1eec1afa52a7c746b2ab77934ff01e8 100644 (file)
@@ -48,6 +48,7 @@ int getBooleanValue(void *solver,void *boolean);
 int getOrderConstraintValue(void *solver,void *order, long first, long second);
 void printConstraints(void *solver);
 void turnoffOptimizations(void *solver);
+void serializeID(void *solver, long id);
 void serialize(void *solver);
 void mustHaveValue(void *solver, void *element);
 void setInterpreter(void *solver, unsigned int type);
index 448fb9a7304e6b38a4b891883d151ff805d6a5d2..0900a0b06245d19518dc213fba536cafd7c2780a 100644 (file)
@@ -174,11 +174,10 @@ CSolver *CSolver::deserialize(const char *file, InterpreterType itype) {
        return deserializer.deserialize();
 }
 
-void CSolver::serialize() {
+void CSolver::serializeID(long long id) {
        model_print("serializing ...\n");
        char buffer[255];
-       long long nanotime = getTimeNano();
-       int numchars = sprintf(buffer, "DUMP%llu", nanotime);
+       int numchars = sprintf(buffer, "%llu.dump", id);
        Serializer serializer(buffer);
        SetIteratorBooleanEdge *it = getConstraints();
        while (it->hasNext()) {
@@ -188,6 +187,11 @@ void CSolver::serialize() {
        delete it;
 }
 
+void CSolver::serialize() {
+       long long nanotime = getTimeNano();
+       serializeID(nanotime);
+}
+
 Set *CSolver::createSet(VarType type, uint64_t *elements, uint numelements) {
        Set *set = new Set(type, elements, numelements);
        allSets.push(set);
index 5ef235d3d8ce9b26032380b30c4cea82c85bd0f2..3be4a30e9645307de034d240a5ca42d2431143f6 100644 (file)
@@ -177,6 +177,7 @@ public:
        void replaceBooleanWithFalse(BooleanEdge bexpr);
        void replaceBooleanWithBoolean(BooleanEdge oldb, BooleanEdge newb);
        CSolver *clone();
+       void serializeID(long long id);
        void serialize();
        static CSolver *deserialize(const char *file, InterpreterType itype = SATUNE);
        void autoTune(uint budget);
index 0a7d6725773f4219a85b45dea0eafe5cdf5bff96..e9f7d0625e77e51ff8b7ca2fd7a86b0019b7b7d0 100644 (file)
@@ -468,6 +468,17 @@ JNIEXPORT void JNICALL Java_satune_SatuneJavaAPI_turnoffOptimizations
        turnoffOptimizations((void *)solver);
 }
 
+/*
+ * Class:     SatuneJavaAPI
+ * Method:    serialize
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_satune_SatuneJavaAPI_serializeID
+       (JNIEnv *env, jobject obj, jlong solver, jlong id)
+{
+       serializeID((void *)solver, id);
+}
+
 /*
  * Class:     SatuneJavaAPI
  * Method:    serialize
index 0a0b6e5c2cc8301f443a180444f9a60e71c6907e..845719eb4e610f4af495b3885450aee3c2d68a40 100644 (file)
@@ -345,6 +345,14 @@ JNIEXPORT void JNICALL Java_satune_SatuneJavaAPI_turnoffOptimizations
 JNIEXPORT void JNICALL Java_satune_SatuneJavaAPI_serialize
        (JNIEnv *, jobject, jlong);
 
+/*
+ * Class:     satune_SatuneJavaAPI
+ * Method:    serialize
+ * Signature: (J)V
+ */
+JNIEXPORT void JNICALL Java_satune_SatuneJavaAPI_serializeID
+       (JNIEnv *, jobject, jlong, jlong);
+
 /*
  * Class:     satune_SatuneJavaAPI
  * Method:    mustHaveValue