1339228Speter/* Licensed to the Apache Software Foundation (ASF) under one or more
2339228Speter * contributor license agreements.  See the NOTICE file distributed with
3339228Speter * this work for additional information regarding copyright ownership.
4339228Speter * The ASF licenses this file to You under the Apache License, Version 2.0
5339228Speter * (the "License"); you may not use this file except in compliance with
6339228Speter * the License.  You may obtain a copy of the License at
7339228Speter *
8339228Speter *     http://www.apache.org/licenses/LICENSE-2.0
9339228Speter *
10339228Speter * Unless required by applicable law or agreed to in writing, software
11339228Speter * distributed under the License is distributed on an "AS IS" BASIS,
12339228Speter * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13339228Speter * See the License for the specific language governing permissions and
14339228Speter * limitations under the License.
15339228Speter */
16339228Speter
17339228Speter#ifndef APR_PERMS_SET_H
18339228Speter#define APR_PERMS_SET_H
19339228Speter
20339228Speter/**
21339228Speter * @file apr_perms_set.h
22339228Speter * @brief APR Process Locking Routines
23339228Speter */
24339228Speter
25339228Speter#include "apr.h"
26339228Speter#include "apr_pools.h"
27339228Speter#include "apr_errno.h"
28339228Speter#include "apr_user.h"
29339228Speter#include "apr_file_info.h"
30339228Speter
31339228Speter#ifdef __cplusplus
32339228Speterextern "C" {
33339228Speter#endif /* __cplusplus */
34339228Speter
35339228Speter/**
36339228Speter * @defgroup apr_perms_set Object permission set functions
37339228Speter * @ingroup APR
38339228Speter * @{
39339228Speter */
40339228Speter
41339228Speter/** Permission set callback function. */
42339228Spetertypedef apr_status_t (apr_perms_setfn_t)(void *object, apr_fileperms_t perms,
43339228Speter                                         apr_uid_t uid, apr_gid_t gid);
44339228Speter
45339228Speter#define APR_PERMS_SET_IMPLEMENT(type) \
46339228Speter    APR_DECLARE(apr_status_t) apr_##type##_perms_set \
47339228Speter        (void *the##type, apr_fileperms_t perms, \
48339228Speter         apr_uid_t uid, apr_gid_t gid)
49339228Speter
50339228Speter#define APR_PERMS_SET_ENOTIMPL(type) \
51339228Speter    APR_DECLARE(apr_status_t) apr_##type##_perms_set \
52339228Speter        (void *the##type, apr_fileperms_t perms, \
53339228Speter         apr_uid_t uid, apr_gid_t gid) \
54339228Speter        { return APR_ENOTIMPL ; }
55339228Speter
56339228Speter#define APR_PERMS_SET_FN(type) apr_##type##_perms_set
57339228Speter
58339228Speter
59339228Speter/** @} */
60339228Speter
61339228Speter#ifdef __cplusplus
62339228Speter}
63339228Speter#endif
64339228Speter
65339228Speter#endif  /* ! APR_PERMS_SET */
66