Remove dynamic exceptions
[anna.git] / include / anna / xml / Decompressor.hpp
1 // ANNA - Anna is Not Nothingness Anymore                                                         //
2 //                                                                                                //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo                         //
4 //                                                                                                //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite                           //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
7
8
9 #ifndef anna_xml_Decompressor_hpp
10 #define anna_xml_Decompressor_hpp
11
12 #include <anna/core/util/ZBlock.hpp>
13
14 namespace anna {
15
16 class DataBlock;
17
18 namespace xml {
19
20 class Document;
21
22 /**
23    Obtiene la informaciĆ³n original de un documento XML comprimido con una instancia de la clase Compressor.
24
25    \see Compressor
26
27    \warning Esta es una clase bastante pesada, por lo que casi-imprescindible reusar una misma instancia cada vez
28    que se requiera comprimir un documento XML.
29 */
30 class Decompressor : ZBlock {
31 public:
32   /**
33    * Constructor.
34    */
35   Decompressor();
36
37   /**
38    * Destructor.
39    */
40   virtual ~Decompressor();
41
42   /**
43    * Recupera el contenido original del documento XML comprimido con la clase Compressor.
44    * \param dataBlock Bloque de datos obtenido como resultado de invocar a Compressor::apply.
45    * \return El documento XML comprimido en el bloque de datos.
46    */
47   const Document& apply(const DataBlock& dataBlock) noexcept(false);
48
49 private:
50   Document* a_document;
51
52   Decompressor(const Decompressor&);
53 };
54
55 }
56 }
57
58 #endif
59