1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#include "php_aws_crt.h"
PHP_FUNCTION(aws_crt_log_to_stdout) {
aws_php_parse_parameters_none();
aws_crt_log_to_stdout();
}
PHP_FUNCTION(aws_crt_log_to_stderr) {
aws_php_parse_parameters_none();
aws_crt_log_to_stderr();
}
PHP_FUNCTION(aws_crt_log_to_file) {
const char *filename = NULL;
size_t filename_len = 0;
/* read the filename as a path, which guarantees no NUL bytes */
aws_php_parse_parameters("p", &filename, &filename_len);
aws_crt_log_to_file(filename);
}
static void php_crt_log(const char *message, size_t len, void *user_data) {
php_stream *stream = user_data;
php_stream_write(stream, message, len);
php_stream_flush(stream);
}
PHP_FUNCTION(aws_crt_log_to_stream) {
zval *php_log_stream = NULL;
aws_php_parse_parameters("r", &php_log_stream);
if (php_log_stream) {
php_stream *stream = NULL;
Z_ADDREF(*php_log_stream);
AWS_PHP_STREAM_FROM_ZVAL(stream, php_log_stream);
aws_crt_log_to_callback((aws_crt_log_callback *)php_crt_log, stream);
} else {
aws_crt_log_to_callback(NULL, NULL);
}
}
PHP_FUNCTION(aws_crt_log_set_level) {
zend_ulong log_level = 0;
aws_php_parse_parameters("l", &log_level);
aws_crt_log_set_level((aws_crt_log_level)log_level);
}
PHP_FUNCTION(aws_crt_log_stop) {
aws_php_parse_parameters_none();
aws_crt_log_stop();
}
PHP_FUNCTION(aws_crt_log_message) {
zend_ulong log_level = 0;
const char *message = NULL;
size_t message_len = 0;
aws_php_parse_parameters("ls", &log_level, &message, &message_len);
aws_crt_log_message((aws_crt_log_level)log_level, (const uint8_t *)message, message_len);
}
|