typedef enum {
    aclType_user,
    aclType_ip,
    aclType_group,
    aclType_all,
    aclType_none,
    aclType_known
} aclType_t;

typedef enum {
    aclAccess_chacl =	0x001,
    aclAccess_racl =	0x002,
    aclAccess_head =	0x010,
    aclAccess_get =	0x020,
    aclAccess_put =	0x040,
    aclAccess_post =	0x080,
    aclAccess_delete =	0x100,
    aclAccess_connect =	0x200,
    aclAccess_options =	0x400,
    aclAccess_trace =	0x800,
    aclAccess_full =	0xFF3
} aclAccess_t;

extern const char * const AclAccessNames[];

typedef int metaPack_generator_t (apr_bucket_brigade *b, apr_off_t *pLength, request_rec *r, aclType_t type, const char * const name, aclAccess_t access, const char * const uri);
typedef int metaPack_ACLquery_t(apr_bucket_brigade *b, apr_off_t *pLength, request_rec * r, void * context, metaPack_generator_t * generator);

void metaPack_register_query (apr_pool_t *p, const char * const key, metaPack_ACLquery_t * queryFunc);

