X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-service%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fcps%2Fspi%2FCpsDataPersistenceService.java;h=fd660e67560cf6d27f27c41a085498b9785ae958;hb=a0b8fb72f9ab872ec554b812db10758592b5a294;hp=fd658861c23cfe41674ee2ca8c110e6afe207c39;hpb=e1537e7c389950dd8ad845e46a9e7b647f427eba;p=cps.git diff --git a/cps-service/src/main/java/org/onap/cps/spi/CpsDataPersistenceService.java b/cps-service/src/main/java/org/onap/cps/spi/CpsDataPersistenceService.java index fd658861c..fd660e675 100644 --- a/cps-service/src/main/java/org/onap/cps/spi/CpsDataPersistenceService.java +++ b/cps-service/src/main/java/org/onap/cps/spi/CpsDataPersistenceService.java @@ -1,6 +1,6 @@ /* * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation. + * Copyright (C) 2020-2022 Nordix Foundation. * Modifications Copyright (C) 2021 Pantheon.tech * Modifications Copyright (C) 2022 Bell Canada * ================================================================================ @@ -23,6 +23,7 @@ package org.onap.cps.spi; import java.util.Collection; +import java.util.List; import java.util.Map; import org.onap.cps.spi.model.DataNode; @@ -145,7 +146,32 @@ public interface CpsDataPersistenceService { * included in the output * @return the data nodes found i.e. 0 or more data nodes */ - Collection queryDataNodes(String dataspaceName, String anchorName, - String cpsPath, FetchDescendantsOption fetchDescendantsOption); + List queryDataNodes(String dataspaceName, String anchorName, + String cpsPath, FetchDescendantsOption fetchDescendantsOption); + + /** + * Starts a session which allows use of locks and batch interaction with the persistence service. + * + * @return Session ID string + */ + String startSession(); + + /** + * Close session. + * + * @param sessionId session ID + */ + void closeSession(String sessionId); + + /** + * Lock anchor. + * To release locks(s), the session holding the lock(s) must be closed. + * + * @param sessionID session ID + * @param dataspaceName dataspace name + * @param anchorName anchor name + * @param timeoutInMilliseconds lock attempt timeout in milliseconds + */ + void lockAnchor(String sessionID, String dataspaceName, String anchorName, Long timeoutInMilliseconds); }