--- parser3/src/include/pa_stylesheet_connection.h 2003/02/17 17:05:03 1.32.2.2 +++ parser3/src/include/pa_stylesheet_connection.h 2003/11/20 17:07:44 1.36 @@ -8,15 +8,15 @@ #ifndef PA_STYLESHEET_CONNECTION_H #define PA_STYLESHEET_CONNECTION_H -static const char* IDENT_STYLESHEET_CONNECTION_H="$Date: 2003/02/17 17:05:03 $"; +static const char * const IDENT_STYLESHEET_CONNECTION_H="$Date: 2003/11/20 17:07:44 $"; #include "libxslt/xslt.h" #include "libxslt/xsltInternals.h" -#include "pa_pool.h" -#include "pa_stylesheet_manager.h" -#include "pa_exception.h" + +#include "pa_xml_exception.h" #include "pa_common.h" +#include "pa_globals.h" // defines @@ -25,25 +25,28 @@ static const char* IDENT_STYLESHEET_CONN /** Connection with stylesheet: remembers time and can figure out that it needs recompilation */ -class Stylesheet_connection: public Pooled { +class Stylesheet_connection: public PA_Object { friend class Stylesheet_connection_ptr; +private: + + const String& ffile_spec; + xsltStylesheet *fstylesheet; + time_t time_used; + time_t prev_disk_time; + public: - Stylesheet_connection(Pool& pool, const String& afile_spec) : Pooled(pool), + Stylesheet_connection(const String& afile_spec): ffile_spec(afile_spec), - prev_disk_time(0), - fservices_pool(0), fstylesheet(0), - time_used(0), used(0) { - } + time_used(0), + prev_disk_time(0), + used(0) {} const String& file_spec() { return ffile_spec; } - void set_services(Pool *aservices_pool) { - fservices_pool=aservices_pool; - } bool expired(time_t older_dies) { return !used && time_usedclose_connection(ffile_spec, *this); - } + void close(); private: @@ -77,16 +78,14 @@ private: } void load(time_t new_disk_time) { - Pool& pool=*fservices_pool; - int saved=xmlDoValidityCheckingDefaultValue;// xmlDoValidityCheckingDefaultValue=0;// xsltStylesheet *nstylesheet= - xsltParseStylesheetFile(BAD_CAST ffile_spec.cstr(String::UL_FILE_SPEC)); + xsltParseStylesheetFile(BAD_CAST ffile_spec.cstr(String::L_FILE_SPEC)); xmlDoValidityCheckingDefaultValue = saved;// if(xmlHaveGenericErrors()) { GdomeException exc=0; - throw Exception(&ffile_spec, exc); + throw XmlException(&ffile_spec, exc); } if(!nstylesheet) throw Exception("file.missing", @@ -114,6 +113,7 @@ private: private: // connection usage methods + int used; void use() { time_used=time(0); // they started to use at this time used++; @@ -124,24 +124,6 @@ private: // connection usage methods close(); } -private: // connection usage data - - int used; - -private: - - const String& ffile_spec; - xsltStylesheet *fstylesheet; - time_t time_used; - time_t prev_disk_time; - -private: - - Pool *fservices_pool; - -private: - void *malloc(size_t size) { return fservices_pool->malloc(size); } - void *calloc(size_t size) { return fservices_pool->calloc(size); } }; /// Auto-object used to track Stylesheet_connection usage @@ -158,6 +140,9 @@ public: Stylesheet_connection* operator->() { return fconnection; } +/* Stylesheet_connection& operator*() { + return *fconnection; + }*/ // copying Stylesheet_connection_ptr(const Stylesheet_connection_ptr& src) : fconnection(src.fconnection) {