X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/123a7fddb89d0d39f8c280aea95182d054c8887b..b0ee47ff76c278c053ac2ad36bb3129b0fcd050f:/utils/serialize/sercore.cpp?ds=sidebyside diff --git a/utils/serialize/sercore.cpp b/utils/serialize/sercore.cpp index 8c83acbe02..0fffba7f5b 100644 --- a/utils/serialize/sercore.cpp +++ b/utils/serialize/sercore.cpp @@ -14,9 +14,12 @@ #endif #include #include +#include +#include #include "sercore.h" -IMPLEMENT_SERIAL_CLASS(wxList,wxObject) +IMPLEMENT_SERIAL_CLASS(wxList, wxObject) +IMPLEMENT_SERIAL_CLASS(wxHashTable, wxObject) void WXSERIAL(wxList)::StoreObject(wxObjectOutputStream& s) { @@ -62,9 +65,43 @@ void WXSERIAL(wxList)::LoadObject(wxObjectInputStream& s) if (list->key_type == wxKEY_INTEGER) { for (i=0;iAppend( data_s.Read32(), s.GetChild(i) ); + list->Append( data_s.Read32(), s.GetChild() ); } else { for (i=0;iAppend( data_s.ReadString(), s.GetChild(i) ); + list->Append( data_s.ReadString(), s.GetChild() ); } } + +// ---------------------------------------------------------------------------- + +void WXSERIAL(wxHashTable)::StoreObject(wxObjectOutputStream& s) +{ + wxHashTable *table = (wxHashTable *)Object(); + int i; + + if (s.FirstStage()) { + for (i=0;in;i++) + s.AddChild(table->hash_table[i]); + return; + } + + wxDataOutputStream data_s(s); + + data_s.Write8(table->key_type); + data_s.Write32(table->n); +} + +void WXSERIAL(wxHashTable)::LoadObject(wxObjectInputStream& s) +{ + wxHashTable *table = (wxHashTable *)Object(); + wxDataInputStream data_s(s); + int i, key, n; + + key = data_s.Read8(); + n = data_s.Read32(); + + table->Create(key, n); + + for (i=0;ihash_table[i] = (wxList *)s.GetChild(); +}