Commit 223fd735 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Move the oc default methods and HSH_Object() into stevedore.c where

it belongs (more)



git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@5555 d4fa192b-c00b-0410-8231-f00ffab90ce4
parent c1ca3b41
...@@ -634,7 +634,7 @@ cnt_fetch(struct sess *sp) ...@@ -634,7 +634,7 @@ cnt_fetch(struct sess *sp)
} }
if (sp->wrk->cacheable) if (sp->wrk->cacheable)
HSH_Object(sp); STV_Object(sp);
if (sp->wrk->do_esi) if (sp->wrk->do_esi)
ESI_Parse(sp); ESI_Parse(sp);
......
...@@ -71,42 +71,6 @@ SVNID("$Id$") ...@@ -71,42 +71,6 @@ SVNID("$Id$")
static const struct hash_slinger *hash; static const struct hash_slinger *hash;
/*---------------------------------------------------------------------
* Default objcore methods
*/
static struct object * __match_proto__(getobj_f)
default_oc_getobj(struct worker *wrk, struct objcore *oc)
{
struct object *o;
(void)wrk;
if (oc->priv == NULL)
return (NULL);
CAST_OBJ_NOTNULL(o, oc->priv, OBJECT_MAGIC);
return (o);
}
static void
default_oc_freeobj(struct objcore *oc)
{
struct object *o;
CAST_OBJ_NOTNULL(o, oc->priv, OBJECT_MAGIC);
oc->priv = NULL;
HSH_Freestore(o);
if (o->objstore != NULL)
STV_free(o->objstore);
else
FREE_OBJ(o);
}
struct objcore_methods default_oc_methods = {
.getobj = default_oc_getobj,
.freeobj = default_oc_freeobj,
};
/*---------------------------------------------------------------------*/ /*---------------------------------------------------------------------*/
double double
HSH_Grace(double g) HSH_Grace(double g)
...@@ -116,22 +80,6 @@ HSH_Grace(double g) ...@@ -116,22 +80,6 @@ HSH_Grace(double g)
return (g); return (g);
} }
/*
* XXX: this should vector through stevedore.c instead of calling the
* XXX: member function directly.
*/
void
HSH_Object(const struct sess *sp)
{
CHECK_OBJ_NOTNULL(sp->obj, OBJECT_MAGIC);
CHECK_OBJ_NOTNULL(sp->obj->objstore, STORAGE_MAGIC);
CHECK_OBJ_NOTNULL(sp->obj->objstore->stevedore, STEVEDORE_MAGIC);
AssertObjBusy(sp->obj);
if (sp->obj->objstore->stevedore->object != NULL)
sp->obj->objstore->stevedore->object(sp);
}
/* Precreate an objhead and object for later use */ /* Precreate an objhead and object for later use */
void void
HSH_Prealloc(const struct sess *sp) HSH_Prealloc(const struct sess *sp)
......
...@@ -50,7 +50,6 @@ struct hash_slinger { ...@@ -50,7 +50,6 @@ struct hash_slinger {
}; };
/* cache_hash.c */ /* cache_hash.c */
void HSH_Object(const struct sess *sp);
void HSH_Prealloc(const struct sess *sp); void HSH_Prealloc(const struct sess *sp);
void HSH_Cleanup(struct worker *w); void HSH_Cleanup(struct worker *w);
void HSH_Freestore(struct object *o); void HSH_Freestore(struct object *o);
......
...@@ -43,6 +43,7 @@ SVNID("$Id$") ...@@ -43,6 +43,7 @@ SVNID("$Id$")
#include "cache.h" #include "cache.h"
#include "stevedore.h" #include "stevedore.h"
#include "hash_slinger.h"
#include "cli_priv.h" #include "cli_priv.h"
#define TRANSIENT_NAME "Transient" #define TRANSIENT_NAME "Transient"
...@@ -194,6 +195,53 @@ STV_NewObject(const struct sess *sp, unsigned wsl, double ttl, unsigned nhttp) ...@@ -194,6 +195,53 @@ STV_NewObject(const struct sess *sp, unsigned wsl, double ttl, unsigned nhttp)
return (o); return (o);
} }
/*---------------------------------------------------------------------
* Default objcore methods
*/
static struct object * __match_proto__(getobj_f)
default_oc_getobj(struct worker *wrk, struct objcore *oc)
{
struct object *o;
(void)wrk;
if (oc->priv == NULL)
return (NULL);
CAST_OBJ_NOTNULL(o, oc->priv, OBJECT_MAGIC);
return (o);
}
static void
default_oc_freeobj(struct objcore *oc)
{
struct object *o;
CAST_OBJ_NOTNULL(o, oc->priv, OBJECT_MAGIC);
oc->priv = NULL;
HSH_Freestore(o);
if (o->objstore != NULL)
STV_free(o->objstore);
else
FREE_OBJ(o);
}
struct objcore_methods default_oc_methods = {
.getobj = default_oc_getobj,
.freeobj = default_oc_freeobj,
};
void
STV_Object(const struct sess *sp)
{
CHECK_OBJ_NOTNULL(sp->obj, OBJECT_MAGIC);
CHECK_OBJ_NOTNULL(sp->obj->objstore, STORAGE_MAGIC);
CHECK_OBJ_NOTNULL(sp->obj->objstore->stevedore, STEVEDORE_MAGIC);
AssertObjBusy(sp->obj);
if (sp->obj->objstore->stevedore->object != NULL)
sp->obj->objstore->stevedore->object(sp);
}
/*********************************************************************/ /*********************************************************************/
struct storage * struct storage *
......
...@@ -77,6 +77,7 @@ void STV_close(void); ...@@ -77,6 +77,7 @@ void STV_close(void);
struct lru *STV_lru(const struct storage *st); struct lru *STV_lru(const struct storage *st);
void STV_Config(const char *spec); void STV_Config(const char *spec);
void STV_Config_Transient(void); void STV_Config_Transient(void);
void STV_Object(const struct sess *sp);
struct lru *LRU_Alloc(void); struct lru *LRU_Alloc(void);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment