/* mini
 *
 * This program is distributed under the GNU General Public License, version 2.
 * A copy of this license is included with this source.
 *
 * Copyright 2004-2006, Toni Thomsson <toni@tonjac.org> 
*/

/**
    Generic render for Mini

    Toni Thomsson, toni@tonjac.org
*/

#ifndef zz_generic_render_h
#define zz_generic_render_h

#include <zz_export.h>
#include <zz_thread_safe_config.h>
#include <zz_output_render.h>
#include <zz_log.h>

typedef void (WINAPI * MINI_SVC_CTOR) ();
typedef void (WINAPI * MINI_SVC_DTOR) ();
typedef int  (WINAPI * MINI_SVC_CLASS_SIZE) ();

class ZZ_API CzzGenericRender : public CzzOutputRender
{
public:

    //* Construction
    CzzGenericRender( const CzzString& script, void* session, CzzParameterMap* cgi, CzzThreadSafeConfig* cfg, const CzzString& name );
    ~CzzGenericRender();

protected:

private:
    CzzString m_Script;
    map<CzzString,CzzDataService*> m_ListSvcsNames;
    void addListSvcName( const CzzString& name, CzzDataService* svc );
    CzzLog m_Log;
};

#endif // zz_generic_render_h