Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/3rdparty.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'aws/aws-crt-php/ext/logging.c')
-rw-r--r--aws/aws-crt-php/ext/logging.c65
1 files changed, 65 insertions, 0 deletions
diff --git a/aws/aws-crt-php/ext/logging.c b/aws/aws-crt-php/ext/logging.c
new file mode 100644
index 00000000..15fdadef
--- /dev/null
+++ b/aws/aws-crt-php/ext/logging.c
@@ -0,0 +1,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);
+}