*
* LyX, The Document Processor
* Copyright 1995 Matthias Ettrich
- * Copyright 1995-2000 The LyX Team
+ * Copyright 1995-2001 The LyX Team
*
- * This file is Copyright 1996-2000
+ * This file is Copyright 1996-2001
* Lars Gullik Bjønnes
*
* ====================================================== */
#pragma interface
#endif
-#include "buffer.h"
-#include "debug.h"
+class Buffer;
+class UpdatableInset;
+#include <vector>
+#include <boost/utility.hpp>
+
+#include "LString.h"
/** A class to hold all the buffers in a structure
The point of this class is to hide from bufferlist what kind
This class should ideally be enclosed inside class BufferList, but that
gave me an "internal gcc error".
*/
-class BufferStorage {
+class BufferStorage : boost::noncopyable {
public:
///
- typedef vector<Buffer *> Container;
+ typedef std::vector<Buffer *> Container;
///
typedef Container::iterator iterator;
///
typedef Container::const_iterator const_iterator;
///
+ typedef Container::size_type size_type;
+ ///
bool empty() const { return container.empty(); }
///
void release(Buffer * buf);
///
- Buffer * newBuffer(string const & s, LyXRC *, bool = false);
+ Buffer * newBuffer(string const & s, bool = false);
///
Container::iterator begin() { return container.begin(); }
///
///
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 : boost::noncopyable {
public:
///
BufferList();
///
bool empty() const;
- /// Saves buffer. Returns false if unsuccesful.
- bool write(Buffer *, bool makeBackup);
-
///
- bool QwriteAll();
+ bool qwriteAll();
/// Close all open buffers.
void closeAll();
- ///
- void resize();
-
/// Read a file into a buffer readonly or not.
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
- vector<string> getFileNames() const;
-
- ///
- void updateInset(Inset *, bool = true);
+ std::vector<string> const getFileNames() const;
///
int unlockInset(UpdatableInset *);
///
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();
/// 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:
///
///
list_state state_;
+ ///
+ void emergencyWrite(Buffer * buf);
};
#endif