kde-extraapps/kdevplatform/plugins/subversion/kdevsvncpp/info.hpp
2015-07-26 14:23:17 +03:00

162 lines
4 KiB
C++

/*
* ====================================================================
* Copyright (c) 2002-2009 The RapidSvn Group. All rights reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program (in the file GPL.txt.
* If not, see <http://www.gnu.org/licenses/>.
*
* This software consists of voluntary contributions made by many
* individuals. For exact contribution history, see the revision
* history and logs, available at http://rapidsvn.tigris.org/.
* ====================================================================
*/
#ifndef _SVNCPP_INFO_HPP_
#define _SVNCPP_INFO_HPP_
// subversion api
#include "svn_client.h"
namespace svn
{
// forward declarations
class Path;
/**
* C++ API for Subversion.
* This class wraps around @a svn_info_t.
*/
class Info
{
public:
/**
* default constructor. if @a src is set,
* copy its contents.
*
* If @a src is not set (=0) this will be
* a non-versioned entry. This can be checked
* later with @a isValid ().
*
* @param src another entry to copy from
*/
Info(const Path & path, const svn_info_t * src = 0);
/**
* copy constructor
*/
Info(const Info & src);
/**
* destructor
*/
virtual ~Info();
/**
* assignment operator
*/
Info &
operator = (const Info &);
/**
* returns whether this is a valid=versioned
* entry.
*
* @return is entry valid
* @retval true valid entry
* @retval false invalid or unversioned entry
*/
bool isValid() const;
/** @return entry's name */
const Path &
path() const;
/** @return base revision */
const svn_revnum_t
revision() const;
/** @return url in repository */
const char *
url() const;
/** @return canonical repository url */
const char *
repos() const;
/** @return repository uuid */
const char *
uuid() const;
/** @return node kind (file, dir, ...) */
svn_node_kind_t
kind() const;
/** @returns revision on which the file was last changed */
svn_revnum_t
lastChangedRevision() const;
/** @returns on which the date was last changed */
apr_time_t
lastChangedDate() const;
/** @returns author that last changed the file */
const char *
lastChangedAuthor() const;
/** @return whether the info contains working copy stuff */
bool
hasWcInfo () const;
/** @return the scheduling state */
svn_wc_schedule_t schedule() const;
/** @return urls this entry was copied from */
const char* copyFromUrl() const;
/** @return the revision this entry was copied from */
svn_revnum_t copyFromRevision() const;
/** @return last up to date time for text */
apr_time_t textTime() const;
/** @return last update to date time for properties */
apr_time_t propertyTime() const;
/** @return the old version of the conflict file */
const char* oldConflictFile() const;
/** @return the new version of the conflict file */
const char* newConflictFile() const;
/** @return the working version of the conflict file */
const char* workingConflictFile() const;
/** @return the property reject file */
const char* propertyRejectFile() const;
/** @todo MORE ENTRIES FROM @ref svn_info_to IF NEEDED */
private:
struct Data;
Data * m;
};
}
#endif
/* -----------------------------------------------------------------
* local variables:
* eval: (load-file "../../rapidsvn-dev.el")
* end:
*/