Remove dynamic exceptions
[anna.git] / include / anna / xml / Compressor.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_Compressor_hpp
10 #define anna_xml_Compressor_hpp
11
12 #include <anna/core/util/ZBlock.hpp>
13
14 namespace anna {
15
16 namespace xml {
17
18 class Document;
19
20 /**
21    Comprime la información del árbol XML descrita por el nodo o el documento XML recibido como parámetro.
22
23    \see Decompressor
24
25    \warning Esta es una clase bastante pesada, por lo que casi-imprescindible reusar una misma instancia cada vez
26    que se requiera comprimir un documento XML.
27 */
28 class Compressor : ZBlock {
29 public:
30   /**
31    * Constructor
32    */
33   Compressor() {;}
34
35   /**
36    * Comprime la información del nodo recibido como parámetro. Para recuperar el original tendremos que
37    * usar una instancia de Decompressor.
38    *
39    * \param node Nodo que contiene el árbol de nodos XML que queremos comprimir.
40    * \return Un bloque de datos binario que contiene la información representada por el nodo.
41    * */
42   const DataBlock& apply(const Document& xmlDoc) noexcept(false);
43
44 private:
45   Compressor(const Compressor&);
46 };
47
48 }
49 }
50
51 #endif