summaryrefslogtreecommitdiff
path: root/subversion/bindings/javahl/native/CommitCallback.h
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/bindings/javahl/native/CommitCallback.h')
-rw-r--r--subversion/bindings/javahl/native/CommitCallback.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/subversion/bindings/javahl/native/CommitCallback.h b/subversion/bindings/javahl/native/CommitCallback.h
index d08219f..0c4fe0f 100644
--- a/subversion/bindings/javahl/native/CommitCallback.h
+++ b/subversion/bindings/javahl/native/CommitCallback.h
@@ -47,11 +47,26 @@ class CommitCallback
svn_error_t *commitInfo(const svn_commit_info_t *commit_info,
apr_pool_t *pool);
- private:
/**
* This a local reference to the Java object.
*/
jobject m_callback;
};
+/**
+ * Like CommitCallback, but maintains a reference to the Java object
+ * across JNI calls.
+ */
+class PersistentCommitCallback : protected CommitCallback
+{
+ public:
+ PersistentCommitCallback(jobject jcallback);
+ ~PersistentCommitCallback();
+ static svn_error_t *callback(const svn_commit_info_t *commit_info,
+ void *baton, apr_pool_t *pool)
+ {
+ return CommitCallback::callback(commit_info, baton, pool);
+ }
+};
+
#endif // COMMITCALLBACK_H