]> git.lyx.org Git - lyx.git/blobdiff - src/vc-backend.h
Add GTK bibitem dialog
[lyx.git] / src / vc-backend.h
index 830b055ed984744b51caf8042fb9627053d942ff..d5e90303f3d1c50109a8e214722058c5aa7fad86 100644 (file)
@@ -1,72 +1,90 @@
 // -*- C++ -*-
+/**
+ * \file vc-backend.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Lars Gullik Bjønnes
+ *
+ * Full author contact details are available in file CREDITS.
+ */
 
 #ifndef VC_BACKEND_H
 #define VC_BACKEND_H
 
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "LString.h"
-#include "support/syscall.h"
+#include <string>
 
 class Buffer;
 
-///
+/// A simple version control system interface
 class VCS {
 public:
-       ///
+       /// the status of the managed file
        enum VCStatus {
-               ///
                UNLOCKED,
-               ///
                LOCKED
        };
-       ///
+
        virtual ~VCS() {}
-       ///
-       virtual void scanMaster() = 0;
-       ///
-       virtual void registrer(string const & msg) = 0;
-       ///
-       virtual void checkIn(string const & msg) = 0;
-       ///
+
+       /// register a file for version control
+       virtual void registrer(std::string const & msg) = 0;
+       /// check in the current revision
+       virtual void checkIn(std::string const & msg) = 0;
+       /// check out for editing
        virtual void checkOut() = 0;
-       ///
+       /// revert current edits
        virtual void revert() = 0;
-       ///
+       /// FIXME
        virtual void undoLast() = 0;
-       ///
-       virtual void getLog(string const &) = 0;
-       ///
-       string const & version() const { return version_; }
-       ///
-       string const & locker() const { return locker_; }
-       ///
+       /**
+        * getLog - read the revision log into the given file
+        * @param fname file name to read into
+        */
+       virtual void getLog(std::string const &) = 0;
+       /// return the current version description
+       virtual std::string const versionString() const = 0;
+       /// return the current version
+       std::string const & version() const {
+               return version_;
+       }
+       /// return the user who has locked the file
+       std::string const & locker() const { return locker_; }
+       /// set the owning buffer
        void owner(Buffer * b) { owner_ = b; }
-       ///
+       /// return the owning buffer
        Buffer * owner() const { return owner_; }
-       ///
+       /// return the lock status of this file
        VCStatus status() const { return vcstatus; }
 protected:
-       ///
-       static int doVCCommand(string const &, string const &);
+       /// parse information from the version file
+       virtual void scanMaster() = 0;
+
+       /**
+        * doVCCommand - call out to the version control utility
+        * @param cmd the command to execute
+        * @param path the path from which to execute
+        * @return exit status
+        */
+       static int doVCCommand(std::string const & cmd, std::string const & path);
+
+       /**
+        * The master VC file. For RCS this is *,v or RCS/ *,v. master should
+        * have full path.
+        */
+       std::string master_;
 
-       /** The master VC file. For RCS this is *,v or RCS/ *,v. master should
-           have full path.
-       */
-       string master_;
-       
        /// The status of the VC controlled file.
        VCStatus vcstatus;
-       
-       /** The version of the VC file. I am not sure if this can be a
-           string of if it must be a
-           float/int. */
-       string version_;
-       
+
+       /**
+        * The version of the VC file. I am not sure if this can be a
+        * string or if it must be a float/int.
+        */
+       std::string version_;
+
        /// The user currently keeping the lock on the VC file.
-       string locker_;
+       std::string locker_;
        /// The buffer using this VC
        Buffer * owner_;
 };
@@ -75,28 +93,33 @@ protected:
 ///
 class RCS : public VCS {
 public:
-       ///
+
        explicit
-       RCS(string const & m);
-       ///
-       static string find_file(string const & file);
-       ///
-       static void retrive(string const & file);
-       ///
-       virtual void scanMaster();
-       ///
-       virtual void registrer(string const & msg);
-       ///
-       virtual void checkIn(string const & msg);
-       ///
+       RCS(std::string const & m);
+
+       /// return the revision file for the given file, if found
+       static std::string const find_file(std::string const & file);
+
+       static void retrieve(std::string const & file);
+
+       virtual void registrer(std::string const & msg);
+
+       virtual void checkIn(std::string const & msg);
+
        virtual void checkOut();
-       ///
+
        virtual void revert();
-       ///
+
        virtual void undoLast();
-       ///
-       virtual void getLog(string const &);
-private:
+
+       virtual void getLog(std::string const &);
+
+       virtual std::string const versionString() const {
+               return "RCS: " + version_;
+       }
+
+protected:
+       virtual void scanMaster();
 };
 
 
@@ -105,24 +128,31 @@ class CVS : public VCS {
 public:
        ///
        explicit
-       CVS(string const & m, string const & f);
-       ///
-       static string find_file(string const & file);
-       ///
-       virtual void scanMaster();
-       ///
-       virtual void registrer(string const & msg);
-       ///
-       virtual void checkIn(string const & msg);
-       ///
+       CVS(std::string const & m, std::string const & f);
+
+       /// return the revision file for the given file, if found
+       static std::string const find_file(std::string const & file);
+
+       virtual void registrer(std::string const & msg);
+
+       virtual void checkIn(std::string const & msg);
+
        virtual void checkOut();
-       ///
+
        virtual void revert();
-       ///
+
        virtual void undoLast();
-       ///
-       virtual void getLog(string const &);
+
+       virtual void getLog(std::string const &);
+
+       virtual std::string const versionString() const {
+               return "CVS: " + version_;
+       }
+
+protected:
+       virtual void scanMaster();
+
 private:
-       string file_;
+       std::string file_;
 };
-#endif
+#endif // VCBACKEND_H