Ejemplo n.º 1
0
// PoolPlugin Response.create(Event ev);
static KMETHOD Response_create(KonohaContext *kctx, KonohaStack *sfp)
{
	struct pool_plugin_response *p = POOL_PLUGIN_CLONE(pool_plugin_response);
	kRawPtr *ret = (kRawPtr *) KLIB new_kObject(kctx, O_ct(sfp[K_RTNIDX].o), (uintptr_t)p);
	kRawPtr *ev = (kRawPtr *) sfp[1].asObject;
	p->bev = ev->rawptr;
	RETURN_(ret);
}
Ejemplo n.º 2
0
// PoolPlugin React.create(String traceName, String key);
static KMETHOD React_create(KonohaContext *kctx, KonohaStack *sfp)
{
	struct pool_plugin_react *p = POOL_PLUGIN_CLONE(pool_plugin_react);
	kRawPtr *ret = (kRawPtr *) KLIB new_kObject(kctx, O_ct(sfp[K_RTNIDX].o), (uintptr_t)p);
	p->conf.traceName = copy_string(kctx, sfp[1].asString);
	p->conf.key       = copy_string(kctx, sfp[2].s);
	RETURN_(ret);
}
Ejemplo n.º 3
0
// PoolPlugin KeyFilter.create(String key);
static KMETHOD KeyFilter_create(KonohaContext *kctx, KonohaStack *sfp)
{
	struct pool_plugin_key_filter *p = POOL_PLUGIN_CLONE(pool_plugin_key_filter);
	kRawPtr *ret = (kRawPtr *) KLIB new_kObject(kctx, O_ct(sfp[K_RTNIDX].o), (uintptr_t)p);
	p->klen = S_size(sfp[1].asString);
	p->key  = copy_string(kctx, sfp[2].s);
	RETURN_(ret);
}
Ejemplo n.º 4
0
// PoolPlugin Statics.create(Func initFo, Func exitFo, Func func);
static KMETHOD Statics_create(KonohaContext *kctx, KonohaStack *sfp)
{
	struct pool_plugin_statics *p = POOL_PLUGIN_CLONE(pool_plugin_statics);
	kRawPtr *ret = (kRawPtr *) KLIB new_kObject(kctx, O_ct(sfp[K_RTNIDX].o), (uintptr_t)p);
	p->context = (uintptr_t)statics_init(kctx, sfp[1].asFunc, sfp[2].asFunc, sfp[3].asFunc);
	p->finit = p_init;
	p->fexit = p_exit;
	p->function = p_func;
	RETURN_(ret);
}
Ejemplo n.º 5
0
// PoolPlugin Timer.create(int timer, int startFlat, int contFlat, int finFlag);
static KMETHOD Timer_create(KonohaContext *kctx, KonohaStack *sfp)
{
	struct pool_plugin_timer *p = POOL_PLUGIN_CLONE(pool_plugin_timer);
	kRawPtr *ret = (kRawPtr *) KLIB new_kObject(kctx, O_ct(sfp[K_RTNIDX].o), (uintptr_t)p);
	p->timer = sfp[1].intValue;
	p->flag_start  = sfp[2].intValue;
	p->flag_cont   = sfp[3].intValue;
	p->flag_finish = sfp[4].intValue;
	RETURN_(ret);
}
Ejemplo n.º 6
0
// PoolPlugin ValFilter.create(String key, String val, String op);
static KMETHOD ValFilter_create(KonohaContext *kctx, KonohaStack *sfp)
{
	struct pool_plugin_val_filter *p = POOL_PLUGIN_CLONE(pool_plugin_val_filter);
	kRawPtr *ret = (kRawPtr *) KLIB new_kObject(kctx, O_ct(sfp[K_RTNIDX].o), (uintptr_t)p);
	p->klen = S_size(sfp[1].asString);
	p->key  = copy_string(kctx, sfp[1].asString);
	p->vlen = S_size(sfp[2].s);
	p->val  = copy_string(kctx, sfp[2].s);
	if (strncmp(S_text(sfp[3].s), "eq", 2) == 0) {
		p->val_cmp = val_eq;
	} else {
		assert(0 && "TODO");
	}
	RETURN_(ret);
}
Ejemplo n.º 7
0
struct pool_plugin *tid_usage_init(struct bufferevent *bev)
{
    struct pool_plugin_print *p0 = POOL_PLUGIN_CLONE(pool_plugin_print);
    struct pool_plugin_val_filter *p1 = POOL_PLUGIN_CLONE(pool_plugin_val_filter);
    struct pool_plugin_copy    *p2 = POOL_PLUGIN_CLONE(pool_plugin_copy);
    struct pool_plugin_react   *p3 = POOL_PLUGIN_CLONE(pool_plugin_react);
    struct pool_plugin_timer   *p4 = POOL_PLUGIN_CLONE(pool_plugin_timer);
    struct pool_plugin_statics *p5 = POOL_PLUGIN_CLONE(pool_plugin_statics);
    struct pool_plugin_response *p6 = POOL_PLUGIN_CLONE(pool_plugin_response);
    p0->base.apply  = &p1->base;
    p1->base.apply  = &p2->base;
    p2->base.apply  = &p3->base;
    p3->base.apply  = &p4->base;
    p3->base.failed = &p4->base;
    p4->base.apply  = &p5->base;
    p5->base.apply  = &p6->base;
    {
        p1->key = "TraceID";
        p1->klen = strlen("TraceID");
        p1->val = "event";
        p1->vlen = strlen("event");
        p1->val_cmp = val_eq;
    }
    {
        p3->conf.traceName = "event";
        p3->conf.key = "tid";
    }
    {
        p4->timer = 100;
        p4->flag_start = 0;
        p4->flag_cont = 1;
        p4->flag_finish = 2;
    }
    {
        p5->finit = p5_init;
        p5->fexit = p5_exit;
        p5->function = p5_func;
    }
    {
        p6->bev = bev;
    }
    return pool_plugin_init((struct pool_plugin *) p0);
}
Ejemplo n.º 8
0
// PoolPlugin Copy.create();
static KMETHOD Copy_create(KonohaContext *kctx, KonohaStack *sfp)
{
	struct pool_plugin_copy *p = POOL_PLUGIN_CLONE(pool_plugin_copy);
	kRawPtr *ret = (kRawPtr *) KLIB new_kObject(kctx, O_ct(sfp[K_RTNIDX].o), (uintptr_t)p);
	RETURN_(ret);
}