536 lines
9.7 KiB
C++
536 lines
9.7 KiB
C++
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
*
|
|
* The contents of this file are subject to the Netscape Public License
|
|
* Version 1.0 (the "License"); you may not use this file except in
|
|
* compliance with the License. You may obtain a copy of the License at
|
|
* http://www.mozilla.org/NPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS"
|
|
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
|
* the License for the specific language governing rights and limitations
|
|
* under the License.
|
|
*
|
|
* The Original Code is Mozilla Communicator client code.
|
|
*
|
|
* The Initial Developer of the Original Code is Netscape Communications
|
|
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
|
* Netscape Communications Corporation. All Rights Reserved.
|
|
*/
|
|
|
|
/* Design and original implementation by Gagan Saksena '98 */
|
|
|
|
#include "CacheStubs.h"
|
|
#include "nsCacheManager.h"
|
|
#include "nsDiskModule.h"
|
|
#include "nsMemModule.h"
|
|
#include "nsCacheTrace.h"
|
|
#include "prlog.h"
|
|
|
|
#define CACHEMGR nsCacheManager::GetInstance()
|
|
|
|
void
|
|
Cache_Init(void)
|
|
{
|
|
CACHEMGR->Init();
|
|
}
|
|
|
|
void
|
|
Cache_Shutdown(void)
|
|
{
|
|
/* todo- Should the destructor for nsCacheManager object be forced here?*/
|
|
}
|
|
|
|
/* CacheManager functions */
|
|
PRBool
|
|
CacheManager_Contains(const char* i_url)
|
|
{
|
|
return CACHEMGR->Contains(i_url);
|
|
}
|
|
|
|
PRInt16
|
|
CacheManager_Entries()
|
|
{
|
|
return CACHEMGR->Entries();
|
|
}
|
|
|
|
void*
|
|
CacheManager_GetObject(const char* i_url)
|
|
{
|
|
return CACHEMGR->GetObj(i_url);
|
|
}
|
|
|
|
void
|
|
CacheManager_InfoAsHTML(char* o_Buffer)
|
|
{
|
|
CACHEMGR->InfoAsHTML(o_Buffer);
|
|
}
|
|
|
|
PRBool
|
|
CacheManager_IsOffline(void)
|
|
{
|
|
return CACHEMGR->IsOffline();
|
|
}
|
|
|
|
void
|
|
CacheManager_Offline(PRBool bSet)
|
|
{
|
|
CACHEMGR->Offline(bSet);
|
|
}
|
|
|
|
PRBool
|
|
CacheManager_Remove(const char* i_url)
|
|
{
|
|
return CACHEMGR->Remove(i_url);
|
|
}
|
|
|
|
PRUint32
|
|
CacheManager_WorstCaseTime(void)
|
|
{
|
|
return CACHEMGR->WorstCaseTime();
|
|
}
|
|
|
|
/* CacheObject functions */
|
|
void*
|
|
CacheObject_Create(const char* i_url)
|
|
{
|
|
return new nsCacheObject(i_url);
|
|
}
|
|
|
|
void
|
|
CacheObject_Destroy(void* pThis)
|
|
{
|
|
if (pThis)
|
|
{
|
|
((nsCacheObject*)pThis)->~nsCacheObject();
|
|
pThis = 0;
|
|
}
|
|
}
|
|
|
|
const char*
|
|
CacheObject_GetAddress(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->Address() : 0;
|
|
}
|
|
|
|
const char*
|
|
CacheObject_GetCharset(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->Charset() : 0;
|
|
}
|
|
|
|
const char*
|
|
CacheObject_GetContentEncoding(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->ContentEncoding() : 0;
|
|
}
|
|
|
|
PRUint32
|
|
CacheObject_GetContentLength(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->ContentLength() : 0;
|
|
}
|
|
|
|
const char*
|
|
CacheObject_GetContentType(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->ContentType() : 0;
|
|
}
|
|
|
|
const char*
|
|
CacheObject_GetEtag(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->Etag() : 0;
|
|
}
|
|
|
|
PRIntervalTime
|
|
CacheObject_GetExpires(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->Expires() : 0;
|
|
}
|
|
|
|
const char*
|
|
CacheObject_GetFilename(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->Filename() : 0;
|
|
}
|
|
|
|
PRBool
|
|
CacheObject_GetIsCompleted(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->IsCompleted() : PR_TRUE;
|
|
}
|
|
|
|
PRIntervalTime
|
|
CacheObject_GetLastAccessed(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->LastAccessed() : 0;
|
|
}
|
|
|
|
PRIntervalTime
|
|
CacheObject_GetLastModified(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->LastModified() : 0;
|
|
}
|
|
|
|
PRInt16
|
|
CacheObject_GetModule(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->Module() : -1;
|
|
}
|
|
|
|
const char*
|
|
CacheObject_GetPageServicesURL(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->PageServicesURL() : 0;
|
|
}
|
|
|
|
const char*
|
|
CacheObject_GetPostData(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->PostData() : 0;
|
|
}
|
|
|
|
PRUint32
|
|
CacheObject_GetPostDataLen(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->PostDataLen() : 0;
|
|
}
|
|
|
|
PRUint32
|
|
CacheObject_GetSize(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->Size() : 0;
|
|
}
|
|
|
|
PRUint32
|
|
CacheObject_GetState(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->State() : 0;
|
|
}
|
|
|
|
PRUint32
|
|
CacheObject_Hits(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->Hits() : 0;
|
|
}
|
|
|
|
PRBool
|
|
CacheObject_IsExpired(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->IsExpired() : PR_FALSE;
|
|
}
|
|
|
|
PRBool
|
|
CacheObject_IsPartial(const void* pThis)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->IsPartial() : PR_FALSE;
|
|
}
|
|
|
|
PRUint32
|
|
CacheObject_Read(const void* pThis, char* o_Buffer, PRUint32 i_Len)
|
|
{
|
|
return pThis ? ((nsCacheObject*)pThis)->Read(o_Buffer, i_Len) : 0;
|
|
}
|
|
|
|
void
|
|
CacheObject_Reset(void* pThis)
|
|
{
|
|
if (pThis)
|
|
((nsCacheObject*)pThis)->Reset();
|
|
}
|
|
|
|
void
|
|
CacheObject_SetAddress(void* pThis, const char* i_Address)
|
|
{
|
|
if (pThis)
|
|
((nsCacheObject*)pThis)->Address(i_Address);
|
|
}
|
|
|
|
void
|
|
CacheObject_SetCharset(void* pThis, const char* i_Charset)
|
|
{
|
|
if (pThis)
|
|
((nsCacheObject*)pThis)->Charset(i_Charset);
|
|
}
|
|
|
|
void
|
|
CacheObject_SetContentEncoding(void* pThis, const char* i_Encoding)
|
|
{
|
|
if (pThis)
|
|
((nsCacheObject*)pThis)->ContentEncoding(i_Encoding);
|
|
}
|
|
|
|
void
|
|
CacheObject_SetContentLength(void* pThis, PRUint32 i_ContentLen)
|
|
{
|
|
if (pThis)
|
|
((nsCacheObject*)pThis)->ContentLength(i_ContentLen);
|
|
}
|
|
|
|
void
|
|
CacheObject_SetContentType(void* pThis, const char* i_ContentType)
|
|
{
|
|
if (pThis)
|
|
((nsCacheObject*)pThis)->ContentType(i_ContentType);
|
|
}
|
|
|
|
void
|
|
CacheObject_SetEtag(void* pThis, const char* i_Etag)
|
|
{
|
|
if (pThis)
|
|
((nsCacheObject*)pThis)->Etag(i_Etag);
|
|
}
|
|
|
|
void
|
|
CacheObject_SetExpires(void *pThis, const PRIntervalTime i_Time)
|
|
{
|
|
if (pThis)
|
|
((nsCacheObject*)pThis)->Expires(i_Time);
|
|
}
|
|
|
|
void
|
|
CacheObject_SetFilename(void* pThis, const char* i_Filename)
|
|
{
|
|
if (pThis)
|
|
((nsCacheObject*)pThis)->Filename(i_Filename);
|
|
}
|
|
|
|
void
|
|
CacheObject_SetIsCompleted(void* pThis, PRBool bCompleted)
|
|
{
|
|
if (pThis)
|
|
((nsCacheObject*)pThis)->IsCompleted(bCompleted);
|
|
}
|
|
|
|
void
|
|
CacheObject_SetLastModified(void* pThis, const PRIntervalTime i_Time)
|
|
{
|
|
if (pThis)
|
|
((nsCacheObject*)pThis)->LastModified(i_Time);
|
|
}
|
|
|
|
void
|
|
CacheObject_SetModule(void* pThis, const PRInt16 i_Module)
|
|
{
|
|
if (pThis)
|
|
((nsCacheObject*)pThis)->Module(i_Module);
|
|
}
|
|
|
|
void
|
|
CacheObject_SetPageServicesURL(void* pThis, const char* i_Url)
|
|
{
|
|
if (pThis)
|
|
((nsCacheObject*)pThis)->PageServicesURL(i_Url);
|
|
}
|
|
|
|
void
|
|
CacheObject_SetPostData(void* pThis, const char* i_PostData, const PRUint32 i_Len)
|
|
{
|
|
if (pThis)
|
|
((nsCacheObject*)pThis)->PostData(i_PostData, i_Len);
|
|
}
|
|
|
|
void
|
|
CacheObject_SetSize(void* pThis, const PRUint32 i_Size)
|
|
{
|
|
if (pThis)
|
|
((nsCacheObject*)pThis)->Size(i_Size);
|
|
}
|
|
|
|
void
|
|
CacheObject_SetState(void* pThis, const PRUint32 i_State)
|
|
{
|
|
if (pThis)
|
|
((nsCacheObject*)pThis)->State(i_State);
|
|
}
|
|
|
|
PRBool
|
|
CacheObject_Synch(void* pThis)
|
|
{
|
|
if (pThis)
|
|
{
|
|
nsCacheObject* pObj = (nsCacheObject*) pThis;
|
|
return CACHEMGR->GetModule(pObj->Module())->AddObject(pObj);
|
|
}
|
|
return PR_FALSE;
|
|
}
|
|
|
|
PRUint32
|
|
CacheObject_Write(void* pThis, const char* i_buffer, const PRUint32 i_length)
|
|
{
|
|
if (pThis)
|
|
{
|
|
nsCacheObject* pObj = (nsCacheObject*) pThis;
|
|
return pObj->Write(i_buffer, i_length);
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
/* CachePref functions */
|
|
PRUint32
|
|
CachePref_GetDiskCacheSize(void)
|
|
{
|
|
return nsCachePref::GetInstance()->DiskCacheSize();
|
|
}
|
|
|
|
PRBool
|
|
CachePref_GetDiskCacheSSL(void)
|
|
{
|
|
return nsCachePref::GetInstance()->DiskCacheSSL();
|
|
}
|
|
|
|
PRUint32
|
|
CachePref_GetMemCacheSize(void)
|
|
{
|
|
return nsCachePref::GetInstance()->MemCacheSize();
|
|
}
|
|
|
|
void
|
|
CachePref_SetDiskCacheSize(const PRUint32 i_Size)
|
|
{
|
|
nsCachePref::GetInstance()->DiskCacheSize(i_Size);
|
|
}
|
|
|
|
void
|
|
CachePref_SetDiskCacheSSL(PRBool bSet)
|
|
{
|
|
nsCachePref::GetInstance()->DiskCacheSSL(bSet);
|
|
}
|
|
|
|
void
|
|
CachePref_SetMemCacheSize(const PRUint32 i_Size)
|
|
{
|
|
nsCachePref::GetInstance()->MemCacheSize(i_Size);
|
|
}
|
|
|
|
/* CacheTrace functions */
|
|
void
|
|
CacheTrace_Enable(PRBool bEnable)
|
|
{
|
|
nsCacheTrace::Enable(bEnable);
|
|
}
|
|
|
|
PRBool
|
|
CacheTrace_IsEnabled(void)
|
|
{
|
|
return nsCacheTrace::IsEnabled();
|
|
}
|
|
|
|
/* DiskModule functions */
|
|
#define DISKMOD nsCacheManager::GetInstance()->GetDiskModule()
|
|
|
|
PRBool
|
|
DiskModule_AddObject(void* pObject)
|
|
{
|
|
return DISKMOD->AddObject((nsCacheObject*)pObject);
|
|
}
|
|
|
|
PRBool
|
|
DiskModule_Contains(const char* i_url)
|
|
{
|
|
return DISKMOD->Contains(i_url);
|
|
}
|
|
|
|
PRUint32
|
|
DiskModule_Entries(void)
|
|
{
|
|
return DISKMOD->Entries();
|
|
}
|
|
|
|
PRUint32
|
|
DiskModule_GetSize(void)
|
|
{
|
|
return DISKMOD->Size();
|
|
}
|
|
|
|
PRUint32
|
|
DiskModule_GetSizeInUse(void)
|
|
{
|
|
return DISKMOD->SizeInUse();
|
|
}
|
|
|
|
PRBool
|
|
DiskModule_IsEnabled(void)
|
|
{
|
|
return DISKMOD->IsEnabled();
|
|
}
|
|
|
|
PRBool
|
|
DiskModule_Remove(const char* i_url)
|
|
{
|
|
return DISKMOD->Remove(i_url);
|
|
}
|
|
|
|
PRBool
|
|
DiskModule_RemoveAll(void)
|
|
{
|
|
return DISKMOD->RemoveAll();
|
|
}
|
|
|
|
void
|
|
DiskModule_SetSize(PRUint32 i_Size)
|
|
{
|
|
DISKMOD->SetSize(i_Size);
|
|
}
|
|
|
|
/* MemModule functions */
|
|
#define MEMMOD nsCacheManager::GetInstance()->GetMemModule()
|
|
|
|
PRBool
|
|
MemModule_AddObject(void* pObject)
|
|
{
|
|
return MEMMOD->AddObject((nsCacheObject*)pObject);
|
|
}
|
|
|
|
PRBool
|
|
MemModule_Contains(const char* i_url)
|
|
{
|
|
return MEMMOD->Contains(i_url);
|
|
}
|
|
|
|
PRUint32
|
|
MemModule_Entries(void)
|
|
{
|
|
return MEMMOD->Entries();
|
|
}
|
|
|
|
PRUint32
|
|
MemModule_GetSize(void)
|
|
{
|
|
return MEMMOD->Size();
|
|
}
|
|
|
|
PRUint32
|
|
MemModule_GetSizeInUse(void)
|
|
{
|
|
return MEMMOD->SizeInUse() ;
|
|
}
|
|
|
|
PRBool
|
|
MemModule_IsEnabled(void)
|
|
{
|
|
return MEMMOD->IsEnabled();
|
|
}
|
|
|
|
PRBool
|
|
MemModule_Remove(const char* i_url)
|
|
{
|
|
return MEMMOD->Remove(i_url);
|
|
}
|
|
|
|
PRBool
|
|
MemModule_RemoveAll(void)
|
|
{
|
|
return MEMMOD->RemoveAll();
|
|
}
|
|
|
|
void
|
|
MemModule_SetSize(PRUint32 i_Size)
|
|
{
|
|
MEMMOD->SetSize(i_Size);
|
|
}
|
|
|
|
#undef MEMMOD
|
|
#undef DISKMOD
|
|
#undef CACHEMGR
|