Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions include/c_api/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
cmake_minimum_required(VERSION 3.19)

project(c_headers)

set(SRC_DIR "${PROJECT_SOURCE_DIR}")
add_library(${PROJECT_NAME} INTERFACE ${SPEECH_C_API_HEADERS})
target_include_directories(${PROJECT_NAME} INTERFACE ${PROJECT_SOURCE_DIR})
set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER api)
79 changes: 79 additions & 0 deletions include/c_api/azac_api_c_common.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
//
// Copyright (c) Microsoft. All rights reserved.
// See https://aka.ms/azai/license202106 for the full license information.
//

#pragma once

#include <stdbool.h>
#include <azac_error.h>

#ifdef __cplusplus
#define AZAC_EXTERN_C extern "C"
#else
#define AZAC_EXTERN_C
#endif

#ifdef _WIN32
#define AZAC_DLL_EXPORT __declspec(dllexport)
#define AZAC_DLL_IMPORT __declspec(dllimport)
#define AZAC_API_NOTHROW __declspec(nothrow)
#define AZAC_API_RESULTTYPE AZACHR
#define AZAC_API_CALLTYPE __stdcall
#define AZAC_API_VCALLTYPE __cdecl
#else
#define AZAC_DLL_EXPORT __attribute__ ((__visibility__("default")))
#define AZAC_DLL_IMPORT
#define AZAC_API_NOTHROW __attribute__((nothrow))
#define AZAC_API_RESULTTYPE AZACHR
#define AZAC_API_CALLTYPE
#define AZAC_API_VCALLTYPE __attribute__((cdecl))
#endif

#ifdef AZAC_CONFIG_EXPORTAPIS
#define AZAC_API_EXPORT AZAC_DLL_EXPORT
#endif
#ifdef AZAC_CONFIG_IMPORTAPIS
#define AZAC_API_EXPORT AZAC_DLL_IMPORT
#endif
#ifdef AZAC_CONFIG_STATIC_LINK_APIS
#define AZAC_API_EXPORT
#endif
#ifndef AZAC_API_EXPORT
#define AZAC_API_EXPORT AZAC_DLL_IMPORT
#endif

#define AZAC_API AZAC_EXTERN_C AZAC_API_EXPORT AZAC_API_RESULTTYPE AZAC_API_NOTHROW AZAC_API_CALLTYPE
#define AZAC_API_(type) AZAC_EXTERN_C AZAC_API_EXPORT type AZAC_API_NOTHROW AZAC_API_CALLTYPE
#define AZAC_API__(type) AZAC_EXTERN_C AZAC_API_EXPORT AZAC_API_NOTHROW type AZAC_API_CALLTYPE
#define AZAC_APIV AZAC_EXTERN_C AZAC_API_EXPORT AZAC_API_NOTHROW AZAC_API_RESULTTYPE AZAC_API_VCALLTYPE
#define AZAC_APIV_(type) AZAC_EXTERN_C AZAC_API_EXPORT AZAC_API_NOTHROW type AZAC_API_VCALLTYPE
#define AZAC_API_PRIVATE AZAC_EXTERN_C AZAC_API_RESULTTYPE AZAC_API_NOTHROW AZAC_API_CALLTYPE
#define AZAC_API_PRIVATE_(type) AZAC_EXTERN_C type AZAC_API_NOTHROW AZAC_API_CALLTYPE

struct _azac_empty {};
typedef struct _azac_empty* _azachandle;
typedef _azachandle AZAC_HANDLE;

#define AZAC_HANDLE_INVALID ((AZAC_HANDLE)-1)
#define AZAC_HANDLE_RESERVED1 ((AZAC_HANDLE)+1)

#ifndef AZAC_SUPPRESS_DIAGNOSTICS_INCLUDE_FROM_COMMON
#define AZAC_SUPPRESS_COMMON_INCLUDE_FROM_DIAGNOSTICS
#include <azac_api_c_diagnostics.h>
#undef AZAC_SUPPRESS_COMMON_INCLUDE_FROM_DIAGNOSTICS
#endif

#ifndef AZAC_SUPPRESS_ERROR_INCLUDE_FROM_COMMON
#define AZAC_SUPPRESS_COMMON_INCLUDE_FROM_ERROR
#include <azac_api_c_error.h>
#undef AZAC_SUPPRESS_COMMON_INCLUDE_FROM_ERROR
#endif

#ifndef AZAC_SUPPRESS_DEBUG_INCLUDE_FROM_COMMON
#define AZAC_SUPPRESS_COMMON_INCLUDE_FROM_DEBUG
#include <azac_debug.h>
#undef AZAC_SUPPRESS_COMMON_INCLUDE_FROM_DEBUG
#endif

#define AZACPROPERTYBAGHANDLE AZAC_HANDLE
90 changes: 90 additions & 0 deletions include/c_api/azac_api_c_diagnostics.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
//
// Copyright (c) Microsoft. All rights reserved.
// See https://aka.ms/azai/license202106 for the full license information.
//

#pragma once

#ifndef AZAC_SUPPRESS_COMMON_INCLUDE_FROM_DIAGNOSTICS
#define AZAC_SUPPRESS_DIAGNOSTICS_INCLUDE_FROM_COMMON
#include <azac_api_c_common.h>
#undef AZAC_SUPPRESS_DIAGNOSTICS_INCLUDE_FROM_COMMON
#endif

#include <stdarg.h>
#include <stddef.h>

//
// APIs to manage logging to file
//
AZAC_API diagnostics_log_start_logging(AZAC_HANDLE hpropbag, void* reserved);
AZAC_API diagnostics_log_apply_properties(AZAC_HANDLE hpropbag, void* reserved);
AZAC_API diagnostics_log_stop_logging();

//
// APIs to manage logging events
//
typedef void(*DIAGNOSTICS_CALLBACK_FUNC)(const char *logLine);
AZAC_API diagnostics_logmessage_set_callback(DIAGNOSTICS_CALLBACK_FUNC callback);
AZAC_API diagnostics_logmessage_set_filters(const char* filters);

//
// APIs to managed eventSource events
//
typedef void(*DIAGNOSTICS_EVENTSOURCE_CALLBACK_FUNC)(const char *logLine, const int level);
AZAC_API diagnostics_eventsource_logmessage_set_callback(DIAGNOSTICS_EVENTSOURCE_CALLBACK_FUNC callback);
AZAC_API diagnostics_eventsource_logmessage_set_filters(const char* filters);

//
// APIs to manage logging to memory
//
AZAC_API_(void) diagnostics_log_memory_start_logging();
AZAC_API_(void) diagnostics_log_memory_stop_logging();
AZAC_API_(void) diagnostics_log_memory_set_filters(const char* filters);

// The binding layers use these to implement a dump to vector of strings or an output stream
AZAC_API_(size_t) diagnostics_log_memory_get_line_num_oldest();
AZAC_API_(size_t) diagnostics_log_memory_get_line_num_newest();
AZAC_API__(const char*) diagnostics_log_memory_get_line(size_t lineNum);

// Dump to file, std out or std err with optional prefix string
AZAC_API diagnostics_log_memory_dump_to_stderr(); // This calls diagnostics_log_memory_dump(nullptr, nullptr, false, true)
AZAC_API diagnostics_log_memory_dump(const char* filename, const char* linePrefix, bool emitToStdOut, bool emitToStdErr);
AZAC_API diagnostics_log_memory_dump_on_exit(const char* filename, const char* linePrefix, bool emitToStdOut, bool emitToStdErr);

//
// APIs to manage logging to the console
//
AZAC_API_(void) diagnostics_log_console_start_logging(bool logToStderr);
AZAC_API_(void) diagnostics_log_console_stop_logging();
AZAC_API_(void) diagnostics_log_console_set_filters(const char* filters);

//
// APIs to log a string
//
AZAC_API_(void) diagnostics_log_format_message(char* buffer, size_t bufferSize, int level, const char* pszTitle, const char* fileName, const int lineNumber, const char* pszFormat, va_list argptr);
AZAC_API_(void) diagnostics_log_trace_string(int level, const char* pszTitle, const char* fileName, const int lineNumber, const char* psz);
AZAC_API_(void) diagnostics_log_trace_message(int level, const char* pszTitle, const char* fileName, const int lineNumber,
#ifdef _MSC_VER
_Printf_format_string_
#endif
const char* pszFormat, ...)
#if defined(__GNUC__) || defined(__clang__)
__attribute__((format(printf, 5, 6)))
#endif
;
AZAC_API_(void) diagnostics_log_trace_message2(int level, const char* pszTitle, const char* fileName, const int lineNumber,
#ifdef _MSC_VER
_Printf_format_string_
#endif
const char* pszFormat, va_list argptr);

AZAC_API_(void) diagnostics_set_log_level(const char * logger, const char * level);
AZAC_API_(bool) diagnostics_is_log_level_enabled(int level);

//
// Memory tracking API's
//
AZAC_API_(size_t) diagnostics_get_handle_count();
AZAC_API__(const char*) diagnostics_get_handle_info();
AZAC_API diagnostics_free_string(const char* value);
22 changes: 22 additions & 0 deletions include/c_api/azac_api_c_error.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
//
// Copyright (c) Microsoft. All rights reserved.
// See https://aka.ms/azai/license202106 for the full license information.
//

#pragma once

#ifndef AZAC_SUPPRESS_COMMON_INCLUDE_FROM_ERROR
#define AZAC_SUPPRESS_ERROR_INCLUDE_FROM_COMMON
#include <azac_api_c_common.h>
#undef AZAC_SUPPRESS_ERROR_INCLUDE_FROM_COMMON
#endif

typedef const char * const_char_ptr;

AZAC_API_(const_char_ptr) error_get_message(AZAC_HANDLE errorHandle);

AZAC_API_(const_char_ptr) error_get_call_stack(AZAC_HANDLE errorHandle);

AZAC_API error_get_error_code(AZAC_HANDLE errorHandle);

AZAC_API error_release(AZAC_HANDLE errorHandle);
11 changes: 11 additions & 0 deletions include/c_api/azac_api_c_pal.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
//
// Copyright (c) Microsoft. All rights reserved.
// See https://aka.ms/azai/license202106 for the full license information.
//

#pragma once

#include "azac_api_c_common.h"

AZAC_API_(size_t) pal_wstring_to_string(char * dst, const wchar_t * src, size_t dstSize);
AZAC_API_(size_t) pal_string_to_wstring(wchar_t * dst, const char * src, size_t dstSize);
Loading
Loading