|
From: Emilien K. <cur...@us...> - 2005-08-17 16:33:26
|
Update of /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28502/include/wxDevCenter Modified Files: DocView.h Project.h FileSystem.h FileSystemStandard.h Application.h Log Message: Use of wxInput/OutputStream instead of Archive to serialize documents and projects. Index: Project.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/Project.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Project.h 14 May 2005 12:15:55 -0000 1.7 --- Project.h 17 Aug 2005 16:33:17 -0000 1.8 *************** *** 82,93 **** /** Méthode d'ouverture de projet. * Appelé lorqu'un projet est ouvert. ! * @param ar Archive de lecture des données du projet. * @return Faux si erreur de chargement.*/ ! virtual bool OnOpenProject(Archive& ar); /** Méthode de sauvegarde de projet. * Appelé lorsqu'un projet doit sauvegarder ses données. ! * @param ar Archive de sauvegarde des données du projet. * @return Faux si erreur de sauvegarde.*/ ! virtual bool OnSaveProject(Archive& ar); /** Méthode testant la possibilité de fermer un projet. * Appelé lors de la demande de fermeture du projet. --- 82,93 ---- /** Méthode d'ouverture de projet. * Appelé lorqu'un projet est ouvert. ! * @param in Flux de lecture des données du projet. * @return Faux si erreur de chargement.*/ ! virtual bool OnOpenProject(wxInputStream* in); /** Méthode de sauvegarde de projet. * Appelé lorsqu'un projet doit sauvegarder ses données. ! * @param out Flux de sauvegarde des données du projet. * @return Faux si erreur de sauvegarde.*/ ! virtual bool OnSaveProject(wxOutputStream* out); /** Méthode testant la possibilité de fermer un projet. * Appelé lors de la demande de fermeture du projet. Index: DocView.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/DocView.h,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** DocView.h 13 Aug 2005 14:07:37 -0000 1.19 --- DocView.h 17 Aug 2005 16:33:17 -0000 1.20 *************** *** 72,76 **** class DocTemplate; class ViewTemplate; - class Archive; class ViewFrame; class Project; --- 72,75 ---- *************** *** 284,304 **** protected: /** @name Fonction virtuelles de spécialisation du document. - * Se sont les fonctions à dériver pour implémenter la gestion spécifique de la sérialisation des données. * @{ */ /** Sauvegarde du document. * A dériver pour implémenter la sauvegarde des données. ! * Note : la fonction de base procède à la sérialisation via la fonction SerializeDocument ! * @param ar Archive dans laquelle sauvegarder le document.*/ ! virtual bool SaveDocument(Archive *ar); /** Lecture du document. * A dériver pour implémenter la lecture des documents. ! * Note : la fonction de base procède à la sérialisation via la fonction SerializeDocument ! * @param ar Archive depuis laquelle lire le document.*/ ! virtual bool LoadDocument(Archive *ar); ! /** Sérialisation du document. ! * La sérialisation est le processus de lecture/sauvegarde parallèle du document. ! * C'est à dire si la lecture suit le même chemin que l'écriture. ! * @param ar Archive dans laquelle sérialiser le document.*/ ! virtual bool SerializeDocument(Archive *ar); /** Initialisation du document en cas de création. --- 283,295 ---- protected: /** @name Fonction virtuelles de spécialisation du document. * @{ */ /** Sauvegarde du document. * A dériver pour implémenter la sauvegarde des données. ! * @param out Flux dans lequel sauvegarder le document.*/ ! virtual bool SaveDocument(wxOutputStream* out); /** Lecture du document. * A dériver pour implémenter la lecture des documents. ! * @param in Flux depuis lequel lire le document.*/ ! virtual bool LoadDocument(wxInputStream* in); /** Initialisation du document en cas de création. *************** *** 385,398 **** /** Initialisation du document. * Initialise les membres du document et lit le fichier source via l'archive. ! * @param pArchive Archive du fichier source. * @return True si l'initialisation est correcte. */ ! virtual bool OnInitialize(Archive *pArchive); /** Modification du document. * Modification du document due à la modification externe du fichier source. ! * @param pArchive Archive du fichier source pour relire les donées. * @return True si la modification est correcte. */ ! virtual bool OnFileModified(Archive *pArchive); /** Fermeture du document. * Le document doit être fermé. --- 376,389 ---- /** Initialisation du document. * Initialise les membres du document et lit le fichier source via l'archive. ! * @param in Flux du fichier source. * @return True si l'initialisation est correcte. */ ! virtual bool OnInitialize(wxInputStream* in); /** Modification du document. * Modification du document due à la modification externe du fichier source. ! * @param in Flux du fichier source pour relire les donées. * @return True si la modification est correcte. */ ! virtual bool OnFileModified(wxInputStream* in); /** Fermeture du document. * Le document doit être fermé. Index: FileSystemStandard.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/FileSystemStandard.h,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** FileSystemStandard.h 17 Aug 2005 15:01:06 -0000 1.13 --- FileSystemStandard.h 17 Aug 2005 16:33:17 -0000 1.14 *************** *** 71,74 **** --- 71,77 ---- virtual int GetFileType(const FilePath& strPath); + virtual wxInputStream* GetInputStream(FilePath strPath); + virtual wxOutputStream* GetOutputStream(FilePath strPath); + protected: /** Retourne le type de répertoire. *************** *** 76,106 **** * @return Type de répertoire si celui-ci est un répertoire système, 0 sinon.*/ virtual int GetDirectorySystemType(FilePath strPath)=0; ! }; ! ! ! /** Archive vers un fichier. ! * Archive sérialisant vers un fichier standard. ! */ ! class ArchiveFile : public Archive ! { ! protected: ! /** Flux vers/depuis un fichier. ! * Acces vers un fichier. ! */ ! wxFile m_File; ! public: ! /** Constructeur. ! * @param strFilePath Chemin physique et nom du fichier. ! * @param nMode Mode d'ouverture de l'archive.*/ ! ArchiveFile(wxString strFilePath, ARCHIVE_OPEN_MODE nMode = read); ! virtual ~ArchiveFile(); ! virtual bool Eof(); ! virtual bool Flush(); ! ! protected: ! virtual size_t OnSysRead(void* buffer, size_t bufsize); ! virtual wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode); ! virtual wxFileOffset OnSysTell() const; ! virtual size_t OnSysWrite(const void *buffer, size_t bufsize); }; --- 79,91 ---- * @return Type de répertoire si celui-ci est un répertoire système, 0 sinon.*/ virtual int GetDirectorySystemType(FilePath strPath)=0; ! ! /** Retourne le chemin physique d'un fichier depuis son chemin logique. ! * @param strFilePath Chemin logique du fichier. ! * @return Chemin physique du fichier.*/ ! virtual wxString GetPhysicalFilePath(FilePath strFilePath) ! { ! strFilePath.RemoveProtocol(); ! return strFilePath; ! } }; Index: Application.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/Application.h,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** Application.h 13 Aug 2005 14:07:37 -0000 1.14 --- Application.h 17 Aug 2005 16:33:17 -0000 1.15 *************** *** 41,45 **** class FilePath; class FileSystem; - class Archive; class Document; class MainFrame; --- 41,44 ---- *************** *** 190,197 **** */ bool SaveDocument(Document* pDoc, bool bForceChooseName=false); - /** Crée une archive (pointeur vers Archive) pour la sérialisation des documents. - * @return Retourne l'adresse de l'archive et NULL si erreur. - */ - Archive* CreateDocumentArchive(FilePath &strDocPath, unsigned int nMode); /** @}*/ --- 189,192 ---- *************** *** 204,214 **** FileSystem* GetStandardFileSystem() {return m_pStandardFileSystem;} ! /** Crée une archive sur un fichier. ! * @param strPath Chemin du fichier. ! * @param nMode Mode d'ouverture de l'archive. ! * @return Adresse de l'archive et NULL si erreur. ! */ ! Archive* GetFileArchive(FilePath strPath, unsigned int nMode) ! {return m_FileSystemManager.GetFileArchive(strPath, nMode);} /** @}*/ --- 199,212 ---- FileSystem* GetStandardFileSystem() {return m_pStandardFileSystem;} ! /** Retourne le flux de lecture sur un fichier. ! * @param strPath Chemin du fichier à lire. ! * @return Adresse du flux de lecture, NULL si erreur de création.*/ ! virtual wxInputStream* GetInputStream(FilePath strPath) ! {return m_FileSystemManager.GetInputStream(strPath);} ! /** Retourne le flux d'écriture sur un fichier. ! * @param strPath Chemin du fichier à écrire. ! * @return Adresse du flux d'écriture, NULL si erreur de création.*/ ! virtual wxOutputStream* GetOutputStream(FilePath strPath) ! {return m_FileSystemManager.GetOutputStream(strPath);} /** @}*/ Index: FileSystem.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/FileSystem.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** FileSystem.h 17 Aug 2005 15:01:06 -0000 1.10 --- FileSystem.h 17 Aug 2005 16:33:17 -0000 1.11 *************** *** 7,11 **** * Déclaration des classes interfaces de * - Systèmes de fichiers virtuels (wxDevCenter::FileSystem) - * - Archives de sérialisation (wxDevCenter::Archive) * . * Déclaration de la classe de gestionnaire de systèmes de fichiers (wxDevCenter::FileSystemManager). --- 7,10 ---- *************** *** 51,108 **** { - /** Interface d'archive. - * Une archive est un flux sur lequel on peut écrire ou lire les données des documents sans se préoccuper - * si cette archive écrit (ou lit) sur un fichier ou dans un package de données. - * @see Document - * @see FileArchive - * @see PackageArchive - */ - class WXDC_DLL_BASE Archive : public wxInputStream, public wxOutputStream - { - protected: - /** Mode d'ouverture de l'archive (Lecture/Ecriture).*/ - unsigned int m_nOpenMode; - public: - /** Modes d'ouverture d'une archive.*/ - enum ARCHIVE_OPEN_MODE - { - read =0, - write =1, - readwrite =2 - }; - - Archive(ARCHIVE_OPEN_MODE nMode = readwrite); - virtual ~Archive(void); - - /** End of file (stream). - * Teste le flux (lecture seulement) pour voir si la fin du flux est atteint. - * La fonction de base retourne Vrai si le flux est en mode lecture ou lecture/ecriture. - * @return True si la fin est atteinte. - */ - virtual bool Eof(); - /** Flush (stream). - * Force un stream flush. - * La fonction de base retourne Vrai si le flux est en écriture ou en lecture/ecriture. - * @return True si le flush à réussi. - */ - virtual bool Flush(); - - Archive& operator>>(int &i); - Archive& operator>>(unsigned int &n); - Archive& operator>>(short &s); - Archive& operator>>(double &d); - Archive& operator>>(char &c); - Archive& operator>>(wxString &str); - Archive& operator>>(wxImage &img); - - Archive& operator<<(int i); - Archive& operator<<(unsigned int n); - Archive& operator<<(short s); - Archive& operator<<(double d); - Archive& operator<<(char c); - Archive& operator<<(wxString str); - Archive& operator<<(wxImage &img); - }; - WX_DECLARE_STRING_HASH_MAP_WITH_DECL( wxString, FileDescriptorExtPropMap, class WXDC_DLL_BASE); --- 50,53 ---- *************** *** 250,258 **** * @return Vrai si succès.*/ virtual bool RemoveFile(FilePath strFilePath)=0; ! /** Crée une archive sur un fichier. ! * @param strPath Chemin du fichier. ! * @param nMode Mode d'ouverture de l'archive. ! */ ! virtual Archive* GetFileArchive(FilePath strPath, unsigned int nMode)=0; /** @} */ --- 195,207 ---- * @return Vrai si succès.*/ virtual bool RemoveFile(FilePath strFilePath)=0; ! ! /** Retourne le flux de lecture sur un fichier. ! * @param strPath Chemin du fichier à lire. ! * @return Adresse du flux de lecture, NULL si erreur de création.*/ ! virtual wxInputStream* GetInputStream(FilePath strPath); ! /** Retourne le flux d'écriture sur un fichier. ! * @param strPath Chemin du fichier à écrire. ! * @return Adresse du flux d'écriture, NULL si erreur de création.*/ ! virtual wxOutputStream* GetOutputStream(FilePath strPath); /** @} */ *************** *** 315,324 **** */ FileSystem* GetFileSystem(FilePath& strPath); ! ! /** Crée une archive sur un fichier. ! * @param strPath Chemin du fichier. ! * @param nMode Mode d'ouverture de l'archive. ! */ ! Archive* GetFileArchive(FilePath strPath, unsigned int nMode); }; --- 264,276 ---- */ FileSystem* GetFileSystem(FilePath& strPath); ! ! /** Retourne le flux de lecture sur un fichier. ! * @param strPath Chemin du fichier à lire. ! * @return Adresse du flux de lecture, NULL si erreur de création.*/ ! virtual wxInputStream* GetInputStream(FilePath strPath); ! /** Retourne le flux d'écriture sur un fichier. ! * @param strPath Chemin du fichier à écrire. ! * @return Adresse du flux d'écriture, NULL si erreur de création.*/ ! virtual wxOutputStream* GetOutputStream(FilePath strPath); }; |