/* * blncache.h: DAV baseline information cache. * * ==================================================================== * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * ==================================================================== */ #ifndef SVN_LIBSVN_RA_SERF_BLNCACHE_H #define SVN_LIBSVN_RA_SERF_BLNCACHE_H #include #include "svn_types.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /* Baseline information cache. Baseline information cache holds information * about DAV baseline (bln): * 1. URL of the baseline (bln) * 2. Revision number associated with baseline * 3. URL of baseline collection (bc). */ typedef struct svn_ra_serf__blncache_t svn_ra_serf__blncache_t; /* Creates new instance of baseline cache. Sets BLNCACHE_P with * a pointer to new instance, allocated in POOL. */ svn_error_t * svn_ra_serf__blncache_create(svn_ra_serf__blncache_t **blncache_p, apr_pool_t *pool); /* Add information about baseline. BLNCACHE is a pointer to * baseline cache previously created using svn_ra_serf__blncache_create * function. BASELINE_URL is URL of baseline (can be NULL if unknown). * REVNUM is revision number associated with baseline. Use SVN_INVALID_REVNUM * to indicate that revision is unknown. * BC_URL is URL of baseline collection (can be NULL if unknwon). */ svn_error_t * svn_ra_serf__blncache_set(svn_ra_serf__blncache_t *blncache, const char *baseline_url, svn_revnum_t revnum, const char *bc_url, apr_pool_t *scratch_pool); /* Sets *BC_URL_P with a pointer to baseline collection URL for the given * REVNUM. *BC_URL_P will be NULL if cache doesn't have information about * this baseline. */ svn_error_t * svn_ra_serf__blncache_get_bc_url(const char **bc_url_p, svn_ra_serf__blncache_t *blncache, svn_revnum_t revnum, apr_pool_t *result_pool); /* Sets *BC_URL_P with pointer to baseline collection URL and *REVISION_P * with revision number of baseline BASELINE_URL. *BC_URL_P will be NULL, * *REVNUM_P will SVN_INVALID_REVNUM if cache doesn't have such * information. */ svn_error_t * svn_ra_serf__blncache_get_baseline_info(const char **bc_url_p, svn_revnum_t *revnum_p, svn_ra_serf__blncache_t *blncache, const char *baseline_url, apr_pool_t *pool); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* SVN_LIBSVN_RA_SERF_BLNCACHE_H*/