Annotation of parser3/src/main/pa_pool.C, revision 1.48

1.13      paf         1: /** @file
1.14      paf         2:        Parser: pool class.
                      3: 
1.10      paf         4:        Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)
1.39      paf         5:        Author: Alexander Petrosyan <paf@design.ru> (http://paf.design.ru)
1.14      paf         6: 
1.48    ! paf         7:        $Id: pa_pool.C,v 1.47 2001/12/27 19:57:09 paf Exp $
1.2       paf         8: */
1.1       paf         9: 
                     10: #include "pa_pool.h"
1.7       paf        11: #include "pa_exception.h"
1.22      parser     12: #include "pa_common.h"
1.41      paf        13: #include "pa_sapi.h"
1.46      paf        14: #include "pa_charset.h"
1.22      parser     15: 
                     16: Pool::Pool(void *astorage) : 
1.43      paf        17:        fstorage(astorage), fcontext(0)1.46      paf        18:        ftotal_allocated(0), ftotal_times(0),
                     19:        source_charset(0), client_charset(0)
1.26      parser     20:        {
1.22      parser     21: }
1.1       paf        22: 
1.21      parser     23: void Pool::fail_alloc(size_t size) const {
1.45      paf        24:        SAPI::die("out of pool memory: failed to allocate %u bytes; "
                     25:                "already allocated on pool: %u bytes in %u times", 
1.41      paf        26:                size, 
                     27:                ftotal_allocated, ftotal_times);
1.7       paf        28: }
1.21      parser     29: 
                     30: void Pool::fail_register_cleanup() const {
1.41      paf        31:        SAPI::die("failed to register cleanup");
1.22      parser     32: }
                     33: 
1.46      paf        34: void Pool::set_source_charset(Charset& acharset) { 
                     35:        source_charset=&acharset; 
                     36: }
                     37: Charset& Pool::get_source_charset() { 
                     38:        if(!source_charset)
                     39:                throw Exception(0, 0,
                     40:                        0,
                     41:                        "no source charset defined yet");
                     42:        return *source_charset; 
1.22      parser     43: }
                     44: 
1.46      paf        45: void Pool::set_client_charset(Charset& acharset) { 
                     46:        client_charset=&acharset; 
                     47: }
                     48: Charset& Pool::get_client_charset() { 
                     49:        if(!client_charset)
1.35      parser     50:                throw Exception(0, 0,
1.46      paf        51:                        0,
                     52:                        "no client charset defined yet");
                     53:        return *client_charset; 
1.22      parser     54: }
                     55: 
1.46      paf        56: #ifdef XML
                     57: 
1.47      paf        58: const char *Pool::transcode_cstr(GdomeDOMString *s) { 
1.46      paf        59:        return get_source_charset().transcode_cstr(s); 
                     60: }
1.22      parser     61: 
1.47      paf        62: String& Pool::transcode(GdomeDOMString *s) { 
1.46      paf        63:        return get_source_charset().transcode(s); 
1.32      parser     64: }
                     65: 
1.48    ! paf        66: GdomeDOMString_auto_ptr Pool::transcode(const String& s) {
1.46      paf        67:        return get_source_charset().transcode(s); 
1.32      parser     68: }
                     69: 
1.26      parser     70: 
                     71: #endif

E-mail: