00001 #pragma once
00002 #ifndef FIFILEDOC_H
00003 #define FIFILEDOC_H
00004 #include "FIDocNode.h"
00005
00006 namespace Spr {;
00007
00008
00009 class FIProtoSaver{
00010 public:
00011 virtual ~FIProtoSaver(){}
00012 virtual void Save(std::ostream& os){Save(os, "");}
00013 virtual void Save(std::ostream& os, FIString fileType);
00014 virtual void SaveImp(std::ostream& os, const FITypeDescDb::ProtoDesc& proto)=0;
00015 };
00016
00017
00018 class SPR_DLL FIFileDoc:public UTRefCount{
00019 protected:
00020
00021 UTString fileName;
00022
00023 FIDocNodes docs;
00024 public:
00025
00026 virtual bool Load(UTString filename)=0;
00027
00028 virtual bool Save(UTString filename, FIDocNodeBase* doc)=0;
00029
00030 virtual FIDocNodes& GetRoots(){ return docs; }
00031
00032 UTString GetFileName(){ return fileName; }
00033 };
00034
00035
00036
00037 }
00038
00039 #endif