/* * ==================================================================== * 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 . * * 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: */