apr
1.7.0
About:
APR
(Apache Portable Runtime) project offers software libraries that provide a predictable and consistent interface to underlying platform-specific implementations (APR core library).
Fossies
Dox
:
apr-1.7.0.tar.bz2
("inofficial" and yet experimental doxygen-generated source code documentation)
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_file_t::buffer
char * buffer
Definition:
apr_arch_file_io.h:113
apr_file_t::bufpos
apr_size_t bufpos
Definition:
apr_arch_file_io.h:114
apr_file_t::buffered
int buffered
Definition:
apr_arch_file_io.h:105
APR_DECLARE
APR_DECLARE(apr_status_t)
Definition:
buffer.c:20
apr_file_t::bufsize
apr_size_t bufsize
Definition:
apr_arch_file_io.h:115
buffer
char * buffer
Definition:
apr_file_io.h:696
apr_file_t::dataRead
apr_off_t dataRead
Definition:
apr_arch_file_io.h:116
apr_file_t
Definition:
apr_arch_file_io.h:97
apr_status_t
int apr_status_t
Definition:
apr_errno.h:44
APR_SUCCESS
#define APR_SUCCESS
Definition:
apr_errno.h:225
bufsize
char apr_size_t bufsize
Definition:
apr_errno.h:52
file
const char apr_file_t * file
Definition:
apr_file_io.h:851
apr_file_t::direction
int direction
Definition:
apr_arch_file_io.h:117
apr_file_t::mutex
apr_thread_mutex_t * mutex
Definition:
apr_arch_file_io.h:57
apr_thread_mutex.h
APR Thread Mutex Routines.
file_io
os2
buffer.c
Generated by
1.8.16