void
embperlCmd_InputCheck (
register
req * r,
tDomTree * pDomTree,
tNode xNode,
tRepeatLevel nRepeatLevel,
const
char
* pName,
int
nNameLen,
const
char
* pVal,
int
nValLen,
int
bSetInSource) ;
void
embperlCmd_Option (
register
req * r,
tDomTree * pDomTree,
tNode xNode,
tRepeatLevel nRepeatLevel,
const
char
* pName,
int
nNameLen,
const
char
* pVal,
int
nValLen,
int
bSetInSource) ;
int
embperlCmd_Hidden (
register
req * r,
tDomTree * pDomTree,
tNode xNode,
tRepeatLevel nRepeatLevel,
const
char
* sArg) ;
SV * Node_replaceChildWithUrlDATA (
tReq * r,
tIndex xDomTree,
tIndex xOldChild,
tRepeatLevel nRepeatLevel,
SV * sText) ;
int
embperlCmd_AddSessionIdToHidden(
register
req * r,
tDomTree * pDomTree,
tNode xNode,
tRepeatLevel nRepeatLevel) ;
int
embperlCmd_AddSessionIdToLink (
register
req * r,
tDomTree * pDomTree,
tNode xNode,
tRepeatLevel nRepeatLevel,
char
* sAttrName) ;
extern
struct
tTokenTable DefaultTokenTable ;
int
BuildTokenTable (
register
req * r,
int
nLevel,
const
char
* sName,
HV * pTokenHash,
const
char
* pDefEnd,
void
* * ppCompilerInfo,
struct
tTokenTable * pTokenTable) ;
int
ParseFile (
register
req * r) ;
int
embperl_Parse (
register
req * r,
char
* pSource,
size_t
nLen,
tIndex * pxDomTree) ;
struct
tCacheItem ;
int
embperl_CompileInitItem (
register
req * r,
HV * pHash,
int
nNodeName,
int
nNodeType,
int
nTagSet,
void
* * ppInfo) ;
int
embperl_Compile (
tReq * r,
tIndex xDomTree,
tIndex * pxResultDomTree,
SV * * pProg) ;
int
embperl_Execute (
tReq * r,
tIndex xSrcDomTree,
CV * pCV,
tIndex * pResultDomTree) ;
int
embperl_ExecuteSubStart (
tReq * r,
SV * pDomTreeSV,
tIndex xDomTree,
AV * pSaveAV) ;
int
embperl_ExecuteSubEnd (
tReq * r,
SV * pDomTreeSV,
AV * pSaveAV) ;
#define cache_malloc(r,s) malloc(s)
#define cache_free(r,m) free(m)
struct
tProvider ;
struct
tProviderClass ;
struct
tCacheItem ;
typedef
struct
tCacheItem
{
const
char
* sKey ;
bool
bExpired ;
bool
bCache ;
int
nLastChecked ;
int
nLastUpdated ;
time_t
nLastModified ;
time_t
nExpiresInTime ;
const
char
* sExpiresFilename ;
time_t
nFileModified ;
struct
stat FileStat ;
CV * pExpiresCV ;
int
(*fExpires) (
struct
tCacheItem * pItem) ;
void
* pData ;
SV * pSVData ;
tIndex xData ;
struct
tCacheItem * * pDependsOn ;
struct
tCacheItem * * pNeededFor ;
struct
tProvider * pProvider ;
} tCacheItem ;
typedef
struct
tProviderClass
{
const
char
* sOutputType ;
int
(*fNew)(req * r, tCacheItem * pOutputCache,
struct
tProviderClass * pProviderClass, HV * pProviderParam, SV * pParam, IV nParamIndex) ;
int
(*fAppendKey)(req * r,
struct
tProviderClass * pProviderClass, HV * pProviderParam, SV * pParam, IV nParamIndex, SV * pKey) ;
int
(*fUpdateParam)(req * r,
struct
tProvider * pProvider, HV * pProviderParam) ;
int
(*fGetContentSV)(req * r,
struct
tProvider * pProvider, SV ** pData,
bool
bUseCache) ;
int
(*fGetContentPtr)(req * r,
struct
tProvider * pProvider,
void
** pData,
bool
bUseCache) ;
int
(*fGetContentIndex)(req * r,
struct
tProvider * pProvider, tIndex * pData,
bool
bUseCache) ;
int
(*fFreeContent) (req * r,
struct
tCacheItem * pItem) ;
int
(*fExpires) (req * r,
struct
tProvider * pProvider) ;
} tProviderClass ;
typedef
struct
tProvider
{
const
char
* sOutputType ;
tCacheItem * pCache ;
tProviderClass * pProviderClass ;
} tProvider ;
int
Cache_Init (
tApp * a) ;
int
Cache_AddProviderClass (
const
char
* sName,
tProviderClass * pClass) ;
int
Cache_CleanupRequest (req * r) ;
int
Cache_New (
req * r,
SV * pParam,
IV nParamNdx,
bool
bTopLevel,
tCacheItem * * pItem) ;
int
Cache_AppendKey (
req * r,
HV * pProviderParam,
const
char
* sSubProvider,
SV * pParam,
IV nParamIndex,
SV * pKey) ;
tCacheItem * Cache_GetByKey (
req * r,
const
char
* sKey) ;
int
Cache_AddDependency (
req * r,
tCacheItem * pItem,
tCacheItem * pDependsOn) ;
tCacheItem * Cache_GetDependency (
req * r,
tCacheItem * pItem,
int
n) ;
int
Cache_IsExpired (
req * r,
tCacheItem * pItem,
int
nLastUpdated) ;
int
Cache_SetNotExpired (
req * r,
tCacheItem * pItem) ;
int
Cache_GetContentSV (
req * r,
tCacheItem *pItem,
SV * * pData,
bool
bUseCache) ;
int
Cache_GetContentPtr (
req * r,
tCacheItem *pItem,
void
* * pData,
bool
bUseCache) ;
int
Cache_GetContentIndex (
req * r,
tCacheItem *pItem,
tIndex * pData,
bool
bUseCache) ;
int
Cache_GetContentSvIndex (
req * r,
tCacheItem *pItem,
SV * * pSVData,
tIndex * pData,
bool
bUseCache) ;
int
Cache_ReleaseContent (
req * r,
tCacheItem *pItem) ;
int
Cache_FreeContent (
req * r,
tCacheItem *pItem) ;
int
Provider_Init (
tApp * a) ;
int
Provider_New (
req * r,
size_t
nSize,
tCacheItem * pItem,
tProviderClass * pProviderClass,
HV * pParam) ;
int
Provider_NewDependOne (
req * r,
size_t
nSize,
const
char
* sSourceName,
tCacheItem * pItem,
tProviderClass * pProviderClass,
HV * pProviderParam,
SV * pParam,
IV nParamIndex) ;
int
Provider_AddDependOne (
req * r,
tProvider * pProvider,
const
char
* sSourceName,
tCacheItem * pItem,
tProviderClass * pProviderClass,
HV * pProviderParam,
SV * pParam,
IV nParamIndex) ;
#ifdef APACHE2
int
ApFilter_Init (
tApp * a) ;
#endif
int
embperl_SetupThread (
pTHX_
tThreadData * * ppThread) ;
tThreadData * embperl_GetThread (
pTHX) ;
#define CurrReq (embperl_GetThread (aTHX) -> pCurrReq)
#define CurrComponent (&(embperl_GetThread (aTHX) -> pCurrReq -> Component))
#define CurrApp (embperl_GetThread (aTHX) -> pCurrReq -> pApp)
#ifdef XALAN
int
embperl_Xalan_Init (
void
) ;
#endif
#ifdef LIBXSLT
int
embperl_LibXSLT_Init (
void
) ;
#endif