Sleeping Wombat Common Library  0.50.0
swCommonLibrary
Classes | Enumerations
Deserializer.h File Reference

Deklaracja klasy deserializatora. More...

#include "swCommonLib/Common/TypesDefinitions.h"
#include "swCommonLib/Serialization/ISerializationContext.h"
#include "swCommonLib/Serialization/FilePosition.h"
#include <string>
#include <memory>

Go to the source code of this file.

Classes

class  IDeserializer
 Interface for deserializers. More...
 

Enumerations

enum  ParsingMode { ParsingMode::ParseInsitu, ParsingMode::AllocStrings }
 Parsing modes. Serialization. More...
 

Detailed Description

Deklaracja klasy deserializatora.

Author
nieznanysprawiciel

Enumeration Type Documentation

enum ParsingMode
strong

Parsing modes. Serialization.

Parsowanie insitu powoduje zapisanie całego parsowanego dokumentu w pamięci deserializatora. Nowe stringi nie są alokowane, a zapisywane są wskażniki do tego dokumentu. Metoda prawdopodobnie zajmie więcej pamięci niż w przypadku alokowania, ponieważ przechowywane są również nadmiarowe białe znaki i wszystkie niepotrzebne elementy. Zaletą jest za to unikanie alokacji, co powinno przypsieszyć działanie.

AllocString usuwa cały dokument z pamięci po sparsowaniu. Metoda działa wolniej, ale za to przechowuje tylko to co potrzebne. Wskazaniem do użycia są przypadki, gdy deserializator służy nie tylko do jednokrotnego parsowania, ale również przechowywania danych.

Enumerator
ParseInsitu 

Nie alokuje stringów, ale zapisuje sobie wskaźniki na miejsca w parsowanym tekście.

AllocStrings 

Przy parsowaniu alokuje nowe stringi.