]> git.lyx.org Git - lyx.git/blobdiff - src/bufferlist.h
try pre2 again
[lyx.git] / src / bufferlist.h
index f5155b370eb3a5262f56c6de0765a5979f4de5fd..0b4efadfae45bc043d75968d3b4b03c2dbdfc1bb 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "buffer.h"
 #include "debug.h"
+#include <boost/utility.hpp>
 
 /** A class to hold all the buffers in a structure
   The point of this class is to hide from bufferlist what kind
@@ -29,7 +30,7 @@
   This class should ideally be enclosed inside class BufferList, but that
   gave me an "internal gcc error".
   */
-class BufferStorage {
+class BufferStorage : public noncopyable {
 public:
        ///
        typedef std::vector<Buffer *> Container;
@@ -38,6 +39,8 @@ public:
        ///
        typedef Container::const_iterator const_iterator;
        ///
+       typedef Container::size_type size_type;
+       ///
        bool empty() const { return container.empty(); }
        ///
        void release(Buffer * buf);
@@ -56,19 +59,16 @@ public:
        ///
        Buffer * operator[](int c) { return container[c]; }
        ///
-       int size() const { return container.size(); }
+       size_type size() const { return container.size(); }
 private:
        ///
        Container container;
 };
 
 
-/** The class governing all the open buffers
-  This class governs all the currently open buffers. Currently all the buffer
-  are located in a static array, soon this will change and we will have a
-  linked list instead.
+/** The class govern all open buffers.
  */
-class BufferList {
+class BufferList : public noncopyable {
 public:
        ///
        BufferList();
@@ -108,9 +108,9 @@ public:
        Buffer * readFile(string const &, bool ro);
 
        /// Make a new file (buffer) using a template
-       Buffer * newFile(string const &, string);
+       Buffer * newFile(string const &, string, bool isNamed=false);
        /// returns a vector with all the buffers filenames
-       std::vector<string> getFileNames() const;
+       std::vector<string> const getFileNames() const;
 
        ///
        int unlockInset(UpdatableInset *);
@@ -120,11 +120,12 @@ public:
 
        ///
        void emergencyWriteAll();
-
-       /** closes buffer
-         Returns false if operation was canceled
+       
+       /** Close buffer.
+           @param buf the buffer that should be closed
+           @return #false# if operation was canceled
          */
-       bool close(Buffer *);
+       bool close(Buffer * buf);
 
        ///
        Buffer * first();
@@ -138,7 +139,7 @@ public:
        /// returns a pointer to the buffer with the given name.
        Buffer * getBuffer(string const &);
        /// returns a pointer to the buffer with the given number.
-       Buffer * getBuffer(int);
+       Buffer * getBuffer(unsigned int);
 
 private:
        ///
@@ -146,6 +147,8 @@ private:
        
        ///
        list_state state_;
+       ///
+       void emergencyWrite(Buffer * buf);
 };
 
 #endif