openscenegraph
Archive
Go to the documentation of this file.
1/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
2 *
3 * This library is open source and may be redistributed and/or modified under
4 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
5 * (at your option) any later version. The full license is in LICENSE file
6 * included with this distribution, and on the openscenegraph.org website.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * OpenSceneGraph Public License for more details.
12*/
13
14#ifndef OSGDB_ARCHIVE
15#define OSGDB_ARCHIVE 1
16
17#include <osgDB/ReaderWriter>
18#include <osgDB/Registry>
19#include <osgDB/FileUtils>
20
21#include <fstream>
22#include <list>
23
24namespace osgDB {
25
26
29{
30 public:
32 virtual ~Archive();
33
34 virtual const char* libraryName() const { return "osgDB"; }
35
36 virtual const char* className() const { return "Archive"; }
37
38 virtual bool acceptsExtension(const std::string& /*extension*/) const { return true; }
39
41 virtual void close() = 0;
42
44 virtual std::string getArchiveFileName() const = 0;
45
47 virtual std::string getMasterFileName() const = 0;
48
50 virtual bool fileExists(const std::string& filename) const = 0;
51
53 virtual FileType getFileType(const std::string& filename) const = 0;
54
56
58 virtual bool getFileNames(FileNameList& fileNames) const = 0;
59
62 virtual DirectoryContents getDirectoryContents(const std::string& dirName) const;
63
64
65 virtual ReadResult readObject(const std::string& /*fileName*/,const Options* =NULL) const = 0;
66 virtual ReadResult readImage(const std::string& /*fileName*/,const Options* =NULL) const = 0;
67 virtual ReadResult readHeightField(const std::string& /*fileName*/,const Options* =NULL) const = 0;
68 virtual ReadResult readNode(const std::string& /*fileName*/,const Options* =NULL) const = 0;
69 virtual ReadResult readShader(const std::string& /*fileName*/,const Options* =NULL) const = 0;
70
71 virtual WriteResult writeObject(const osg::Object& /*obj*/,const std::string& /*fileName*/,const Options* =NULL) const = 0;
72 virtual WriteResult writeImage(const osg::Image& /*image*/,const std::string& /*fileName*/,const Options* =NULL) const = 0;
73 virtual WriteResult writeHeightField(const osg::HeightField& /*heightField*/,const std::string& /*fileName*/,const Options* =NULL) const = 0;
74 virtual WriteResult writeNode(const osg::Node& /*node*/,const std::string& /*fileName*/,const Options* =NULL) const = 0;
75 virtual WriteResult writeShader(const osg::Shader& /*shader*/,const std::string& /*fileName*/,const Options* =NULL) const = 0;
76
77};
78
80OSGDB_EXPORT Archive* openArchive(const std::string& filename, ReaderWriter::ArchiveStatus status, unsigned int indexBlockSizeHint=4096);
81
83OSGDB_EXPORT Archive* openArchive(const std::string& filename, ReaderWriter::ArchiveStatus status, unsigned int indexBlockSizeHint,Options* options);
84}
85
86#endif // OSGDB_ARCHIVE
Definition Archive:29
virtual WriteResult writeNode(const osg::Node &, const std::string &, const Options *=NULL) const =0
virtual ReadResult readImage(const std::string &, const Options *=NULL) const =0
virtual WriteResult writeHeightField(const osg::HeightField &, const std::string &, const Options *=NULL) const =0
virtual void close()=0
virtual ReadResult readHeightField(const std::string &, const Options *=NULL) const =0
virtual const char * libraryName() const
Definition Archive:34
virtual WriteResult writeImage(const osg::Image &, const std::string &, const Options *=NULL) const =0
osgDB::DirectoryContents FileNameList
Definition Archive:55
virtual WriteResult writeShader(const osg::Shader &, const std::string &, const Options *=NULL) const =0
virtual bool acceptsExtension(const std::string &) const
Definition Archive:38
virtual bool fileExists(const std::string &filename) const =0
virtual ReadResult readObject(const std::string &, const Options *=NULL) const =0
virtual ReadResult readShader(const std::string &, const Options *=NULL) const =0
virtual const char * className() const
Definition Archive:36
virtual ReadResult readNode(const std::string &, const Options *=NULL) const =0
virtual std::string getArchiveFileName() const =0
virtual ~Archive()
virtual WriteResult writeObject(const osg::Object &, const std::string &, const Options *=NULL) const =0
virtual DirectoryContents getDirectoryContents(const std::string &dirName) const
virtual bool getFileNames(FileNameList &fileNames) const =0
virtual std::string getMasterFileName() const =0
virtual FileType getFileType(const std::string &filename) const =0
Definition Options:30
Definition ReaderWriter:109
Definition ReaderWriter:184
Definition ReaderWriter:40
ArchiveStatus
Definition ReaderWriter:221
Definition Shape:483
Definition Image:179
Definition Node:72
Definition Object:61
Definition Shader:89
Definition Archive:24
OSGDB_EXPORT Archive * openArchive(const std::string &filename, ReaderWriter::ArchiveStatus status, unsigned int indexBlockSizeHint=4096)
std::vector< std::string > DirectoryContents
Definition FileUtils:67
FileType
Definition FileUtils:47
#define OSGDB_EXPORT
Definition osgDB/Export:39
#define NULL
Definition osg/Export:55