Apache HTTPD
framework
httpd-2.4.62
srclib
apr
file_io
os2
buffer.c
Go to the documentation of this file.
1
/* Licensed to the Apache Software Foundation (ASF) under one or more
2
* contributor license agreements. See the NOTICE file distributed with
3
* this work for additional information regarding copyright ownership.
4
* The ASF licenses this file to You under the Apache License, Version 2.0
5
* (the "License"); you may not use this file except in compliance with
6
* the License. You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
17
#include "apr_arch_file_io.h"
18
#include "
apr_thread_mutex.h
"
19
20
APR_DECLARE
(
apr_status_t
)
apr_file_buffer_set
(
apr_file_t
*
file
,
21
char
*
buffer
,
22
apr_size_t
bufsize
)
23
{
24
apr_status_t
rv;
25
26
apr_thread_mutex_lock
(
file
->
mutex
);
27
28
if
(
file
->
buffered
) {
29
/* Flush the existing buffer */
30
rv =
apr_file_flush
(
file
);
31
if
(rv !=
APR_SUCCESS
) {
32
apr_thread_mutex_unlock
(
file
->
mutex
);
33
return
rv;
34
}
35
}
36
37
file
->
buffer
=
buffer
;
38
file
->
bufsize
=
bufsize
;
39
file
->
buffered
= 1;
40
file
->
bufpos
= 0;
41
file
->
direction
= 0;
42
file
->
dataRead
= 0;
43
44
if
(
file
->
bufsize
== 0) {
45
/* Setting the buffer size to zero is equivalent to turning
46
* buffering off.
47
*/
48
file
->
buffered
= 0;
49
}
50
51
apr_thread_mutex_unlock
(
file
->
mutex
);
52
53
return
APR_SUCCESS
;
54
}
55
56
APR_DECLARE
(
apr_size_t
)
apr_file_buffer_size_get
(
apr_file_t
*
file
)
57
{
58
return
file
->
bufsize
;
59
}
apr_thread_mutex.h
APR Thread Mutex Routines.
APR_DECLARE
const void apr_status_t(*) apr_status_t(* APR_DECLARE)(void) apr_pool_pre_cleanup_register(apr_pool_t *p
Definition
apr_pools.h:646
size
apr_size_t size
Definition
apr_allocator.h:115
APR_SUCCESS
#define APR_SUCCESS
Definition
apr_errno.h:225
bufsize
char apr_size_t bufsize
Definition
apr_errno.h:53
apr_status_t
int apr_status_t
Definition
apr_errno.h:44
file
const char apr_file_t * file
Definition
apr_file_io.h:823
buffer
char * buffer
Definition
apr_file_io.h:667
apr_file_t
Definition
apr_arch_file_io.h:97
apr_file_t::direction
int direction
Definition
apr_arch_file_io.h:117
apr_file_t::bufpos
apr_size_t bufpos
Definition
apr_arch_file_io.h:114
apr_file_t::mutex
apr_thread_mutex_t * mutex
Definition
apr_arch_file_io.h:57
apr_file_t::dataRead
apr_off_t dataRead
Definition
apr_arch_file_io.h:116
apr_file_t::buffer
char * buffer
Definition
apr_arch_file_io.h:113
apr_file_t::buffered
int buffered
Definition
apr_arch_file_io.h:105
apr_file_t::bufsize
apr_size_t bufsize
Definition
apr_arch_file_io.h:115
Generated by
1.9.8