---
source: varnish-macros/src/tests.rs
---
VMOD_JSON_SPEC
[
[
"$VMOD",
"2.0",
"task",
"Vmod_vmod_task_Func",
"d3254ccf9860c2c9a8db4e739800906db26805bc168f4b8f497e3685770707e1",
"Varnish (version) (hash)",
"0",
"0"
],
[
"$CPROTO",
"
struct vmod_task_PerVcl;
typedef VCL_VOID td_vmod_task_per_vcl_val(
VRT_CTX,
struct vmod_priv *
);
struct arg_vmod_task_per_vcl_opt {
struct vmod_priv * vcl;
char valid_op;
VCL_INT op;
};
typedef VCL_VOID td_vmod_task_per_vcl_opt(
VRT_CTX,
struct arg_vmod_task_per_vcl_opt *
);
typedef VCL_VOID td_vmod_task_per_tsk_val(
VRT_CTX,
struct vmod_priv *
);
struct arg_vmod_task_per_tsk_opt {
struct vmod_priv * tsk;
char valid_op;
VCL_INT op;
};
typedef VCL_VOID td_vmod_task_per_tsk_opt(
VRT_CTX,
struct arg_vmod_task_per_tsk_opt *
);
typedef VCL_VOID td_vmod_task_PerVcl__init(
VRT_CTX,
struct vmod_task_PerVcl **,
const char *,
struct vmod_priv *
);
typedef VCL_VOID td_vmod_task_PerVcl__fini(
struct vmod_task_PerVcl **
);
typedef VCL_VOID td_vmod_task_PerVcl_both(
VRT_CTX,
struct vmod_task_PerVcl *,
struct vmod_priv *,
struct vmod_priv *
);
typedef VCL_VOID td_vmod_task_PerVcl_both_pos(
VRT_CTX,
struct vmod_task_PerVcl *,
struct vmod_priv *,
struct vmod_priv *,
VCL_INT
);
struct arg_vmod_task_PerVcl_both_opt {
struct vmod_priv * tsk;
struct vmod_priv * vcl;
char valid_opt;
VCL_INT opt;
};
typedef VCL_VOID td_vmod_task_PerVcl_both_opt(
VRT_CTX,
struct vmod_task_PerVcl *,
struct arg_vmod_task_PerVcl_both_opt *
);
struct Vmod_vmod_task_Func {
vmod_event_f *f_on_event;
td_vmod_task_per_vcl_val *f_per_vcl_val;
td_vmod_task_per_vcl_opt *f_per_vcl_opt;
td_vmod_task_per_tsk_val *f_per_tsk_val;
td_vmod_task_per_tsk_opt *f_per_tsk_opt;
td_vmod_task_PerVcl__init *f_PerVcl__init;
td_vmod_task_PerVcl__fini *f_PerVcl__fini;
td_vmod_task_PerVcl_both *f_PerVcl_both;
td_vmod_task_PerVcl_both_pos *f_PerVcl_both_pos;
td_vmod_task_PerVcl_both_opt *f_PerVcl_both_opt;
};
static struct Vmod_vmod_task_Func Vmod_vmod_task_Func;"
],
[
"$EVENT",
"Vmod_vmod_task_Func.f_on_event"
],
[
"$FUNC",
"per_vcl_val",
[
[
"VOID"
],
"Vmod_vmod_task_Func.f_per_vcl_val",
"",
[
"PRIV_VCL",
"vcl",
"vcl"
]
]
],
[
"$FUNC",
"per_vcl_opt",
[
[
"VOID"
],
"Vmod_vmod_task_Func.f_per_vcl_opt",
"struct arg_vmod_task_per_vcl_opt",
[
"PRIV_VCL",
"vcl",
"vcl"
],
[
"INT",
"op",
"op",
null,
null,
true
]
]
],
[
"$FUNC",
"per_tsk_val",
[
[
"VOID"
],
"Vmod_vmod_task_Func.f_per_tsk_val",
"",
[
"PRIV_TASK",
"tsk",
"tsk"
]
]
],
[
"$FUNC",
"per_tsk_opt",
[
[
"VOID"
],
"Vmod_vmod_task_Func.f_per_tsk_opt",
"struct arg_vmod_task_per_tsk_opt",
[
"PRIV_TASK",
"tsk",
"tsk"
],
[
"INT",
"op",
"op",
null,
null,
true
]
]
],
[
"$OBJ",
"PerVcl",
{
"NULL_OK": false
},
"struct vmod_task_PerVcl",
[
"$INIT",
[
[
"VOID"
],
"Vmod_vmod_task_Func.f_PerVcl__init",
"",
[
"PRIV_VCL",
"__vp",
"__vp"
]
]
],
[
"$FINI",
[
[
"VOID"
],
"Vmod_vmod_task_Func.f_PerVcl__fini",
""
]
],
[
"$METHOD",
"both",
[
[
"VOID"
],
"Vmod_vmod_task_Func.f_PerVcl_both",
"",
[
"PRIV_TASK",
"tsk",
"tsk"
],
[
"PRIV_VCL",
"vcl",
"vcl"
]
]
],
[
"$METHOD",
"both_pos",
[
[
"VOID"
],
"Vmod_vmod_task_Func.f_PerVcl_both_pos",
"",
[
"PRIV_TASK",
"tsk",
"tsk"
],
[
"PRIV_VCL",
"vcl",
"vcl"
],
[
"INT",
"val",
"val"
]
]
],
[
"$METHOD",
"both_opt",
[
[
"VOID"
],
"Vmod_vmod_task_Func.f_PerVcl_both_opt",
"struct arg_vmod_task_PerVcl_both_opt",
[
"PRIV_TASK",
"tsk",
"tsk"
],
[
"PRIV_VCL",
"vcl",
"vcl"
],
[
"INT",
"opt",
"opt",
null,
null,
true
]
]
]
]
]