X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/447002a13109caa3cba1c9b51e591cdb1b77d269..999d9a9f795cfc745681989ae0f30e531cde059f:/contrib/src/xml/xmlbin.cpp diff --git a/contrib/src/xml/xmlbin.cpp b/contrib/src/xml/xmlbin.cpp deleted file mode 100644 index 85fe6763ac..0000000000 --- a/contrib/src/xml/xmlbin.cpp +++ /dev/null @@ -1,161 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: xmlbin.cpp -// Purpose: wxXmlIOHandlerBin -// Author: Vaclav Slavik -// Created: 2000/07/24 -// RCS-ID: $Id$ -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// nothing, already in xml.cpp -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include "wx/datstrm.h" -#include "wx/log.h" -#include "wx/intl.h" - -#include "wx/xml/xmlio.h" - - - - -bool wxXmlIOHandlerBin::CanLoad(wxInputStream& stream) -{ - bool canread; - canread = (ReadHeader(stream) == wxT("XMLBIN ")); - stream.SeekI(-9, wxFromCurrent); - return canread; -} - - - -wxString wxXmlIOHandlerBin::ReadHeader(wxInputStream& stream) -{ - wxUint8 version; - char cheader[8]; - - stream.Read(cheader, 8); - cheader[7] = 0; - stream.Read(&version, 1); - - if (version != 1) return wxEmptyString; - else return wxString(cheader); -} - - - -void wxXmlIOHandlerBin::WriteHeader(wxOutputStream& stream, const wxString& header) -{ - char cheader[8]; - size_t i; - wxUint8 version = 1; - - for (i = 0; i < header.Length(); i++) cheader[i] = header[i]; - for (; i < 7; i++) cheader[i] = ' '; - cheader[7] = 0; - stream.Write(cheader, 8); - stream.Write(&version, 1); -} - - - -static bool SaveBinNode(wxDataOutputStream& ds, wxXmlNode *node) -{ - if (node) - { - ds << (wxUint8)1 << - (wxUint8)node->GetType() << - node->GetName() << node->GetContent(); - - wxXmlProperty *prop = node->GetProperties(); - while (prop) - { - ds << (wxUint8)1; - ds << prop->GetName() << prop->GetValue(); - prop = prop->GetNext(); - - } - ds << (wxUint8)0; - - SaveBinNode(ds, node->GetNext()); - SaveBinNode(ds, node->GetChildren()); - } - else - ds << (wxUint8)0; - - return TRUE; -} - - - -bool wxXmlIOHandlerBin::Save(wxOutputStream& stream, const wxXmlDocument& doc) -{ - WriteHeader(stream, "XMLBIN "); - wxDataOutputStream ds(stream); - ds << doc.GetVersion() << doc.GetEncoding(); - SaveBinNode(ds, doc.GetRoot()); - return stream.LastError() == wxSTREAM_NOERROR; -} - - - -static wxXmlProperty *LoadBinProp(wxDataInputStream& ds) -{ - wxUint8 dummy; - ds >> dummy; - if (dummy == 0) return NULL; - - wxString name, value; - ds >> name >> value; - return new wxXmlProperty(name, value, LoadBinProp(ds)); -} - - - - -static wxXmlNode *LoadBinNode(wxDataInputStream& ds, wxXmlNode *parent) -{ - wxUint8 type; - wxString name, content; - wxUint8 dummy; - - ds >> dummy; - if (dummy == 0) return NULL; - ds >> type >> name >> content; - - wxXmlProperty *prop = LoadBinProp(ds); - - wxXmlNode *nd = new wxXmlNode(parent, (wxXmlNodeType)type, name, content, - prop, LoadBinNode(ds, parent)); - LoadBinNode(ds, nd); - return nd; -} - - - -bool wxXmlIOHandlerBin::Load(wxInputStream& stream, wxXmlDocument& doc) -{ - ReadHeader(stream); - wxDataInputStream ds(stream); - wxString tmp; - - ds >> tmp; - doc.SetVersion(tmp); - ds >> tmp; - doc.SetEncoding(tmp); - - doc.SetRoot(LoadBinNode(ds, NULL)); - - return (doc.GetRoot() != NULL); -} - -