djv_document.h

Go to the documentation of this file.
00001 //----------------------------------------------------------------------------
00004 //
00005 // (C) 2005-2006 Celartem Technology Inc. All rights reserved.
00006 //----------------------------------------------------------------------------
00007 #ifndef _djv_document_h_
00008 #define _djv_document_h_
00009 
00010 #include "cel_storage.h"
00011 #include "djv_chunks.h"
00012 #include "djv_common.h"
00013 #include "djv_annotation.h"
00014 #include "djv_bookmark.h"
00015 #include "djv_storagelocator.h"
00016 #include "djv_serialize.h"
00017 
00018 namespace Celartem
00019 {
00020     class CredentialProvider;
00021 
00022     namespace DjVu
00023     {
00024         class Page; // defined in djv_page.h
00025         class SecurityProvider; // defined in djv_security.h
00026         class SecurityProviderBroker; // defined in djv_security.h
00027         
00033         class Document : public Referable
00034         {
00035         public:
00036             typedef SimpleArray<AutoPtr<Page> > PageArray;
00037             
00043             static AutoPtr<Document> create();
00044             
00058             static AutoPtr<Document> create(
00059                 Chunk* inChunk,
00060                 IFF::Layout* inLayout = NULL);
00061             
00088             static AutoPtr<Document> create(
00089                 Storage* inStorage,
00090                 CredentialProvider* inCredProv = NULL,
00091                 SecurityProviderBroker* inSecProvBroker = NULL,
00092                 bool inRecoverErrors = false);
00093             
00120             static AutoPtr<Document> create(
00121                 const String& inUrlOrFileName,
00122                 CredentialProvider* inCredProv = NULL,
00123                 SecurityProviderBroker* inSecProvBroker = NULL,
00124                 bool inRecoverErrors = false);
00125             
00131             virtual PageArray& getPages() = 0;
00132             
00138             virtual const PageArray& getPages() const = 0;
00139             
00150             virtual Bookmark* getBookmark() = 0;
00151             
00157             virtual const Bookmark* getBookmark() const = 0;
00158             
00167             virtual const SecurityProvider* getSecurityProvider() const = 0;
00168             
00188             virtual void save(
00189                 const String& inFileName,
00190                 const SecurityProvider* inSecProv = NULL,
00191                 IFF::SerializationCallback inCallback = NULL,
00192                 void* inContext = NULL,
00193                 bool inForceReflectChanges = true) const = 0;
00194 
00214             virtual void save(
00215                 Storage* inStorage,
00216                 const SecurityProvider* inSecProv = NULL,
00217                 IFF::SerializationCallback inCallback = NULL,
00218                 void* inContext = NULL,
00219                 bool inForceReflectChanges = true) const = 0;
00220             
00241             virtual void saveAsIndirect(
00242                 const String& inOutputIndexFileName,
00243                 const SecurityProvider* inSecProv = NULL,
00244                 IFF::SerializationCallback inCallback = NULL,
00245                 void* inContext = NULL,
00246                 bool inForceReflectChanges = true) const = 0;
00247 
00272             virtual void saveAsIndirect(
00273                 Storage* inStorage,
00274                 StorageLocator* inStorageLocator = NULL,
00275                 const SecurityProvider* inSecProv = NULL,
00276                 IFF::SerializationCallback inCallback = NULL,
00277                 void* inContext = NULL,
00278                 bool inForceReflectChanges = true) const = 0;
00279             
00289             virtual const Chunk* getChunk() const = 0;
00290             
00300             virtual Chunk* getChunk() = 0;
00301             
00305             virtual void updateChunks() = 0;
00306 
00312             virtual void syncToChunks() = 0;
00313         };
00314     }
00315 }
00316 
00317 #endif // _djv_document_h_

This document is automatically generated using doxygen 1.5.4 at Fri Jun 27 18:21:55 2008.