Skip to content
Snippets Groups Projects
binary_c_python.h 2.5 KiB
Newer Older
#pragma once
#ifndef BINARY_C_PYTHON_H
#define BINARY_C_PYTHON_H

/*
 * Include binary_C's API
 */
//#include "binary_c_API.h"
//#include "binary_c_API_prototypes.h"
int run_system(char * argstring,
               long int custom_logging_func_memaddr,
               long int store_memaddr,
               long int persistent_data_memaddr,
               char ** const buffer,
               char ** const error_buffer,
               size_t * const nbytes);

/* =================================================================== */
/* Functions to call other API functionality like help and arglines    */
/* =================================================================== */

David Hendriks's avatar
David Hendriks committed
int return_arglines(char ** const outstring,
                char ** const errorstring,
David Hendriks's avatar
David Hendriks committed
                size_t * const nbytes);
int return_help_info(char * argstring,
                char ** const outstring,
                char ** const errorstring,
                size_t * const nbytes);

int return_help_all_info(char ** const outstring,
                char ** const errorstring,
                size_t * const nbytes);
int return_version_info(char ** const outstring,
                char ** const errorstring,
                size_t * const nbytes);

/* =================================================================== */
/* Functions to call other functionality                               */
/* =================================================================== */

long int return_store_memaddr(char ** const buffer,
               char ** const error_buffer,
               size_t * const nbytes);

long int return_persistent_data_memaddr(char ** const buffer,
               char ** const error_buffer,
               size_t * const nbytes);

int free_persistent_data_memaddr_and_return_json_output(long int persistent_data_memaddr,
               char ** const buffer,
               char ** const error_buffer,
               size_t * const nbytes);
int free_store_memaddr(long int store_memaddr,
               char ** const buffer,
               char ** const error_buffer,
               size_t * const nbytes);


/* C macros */
#define BINARY_C_APITEST_VERSION 0.1
#define APIprint(...) APIprintf(__VA_ARGS__);
#define NO_OUTPUT

  #define debug_printf(fmt, ...)  printf(fmt, ##__VA_ARGS__);
#else
  #define debug_printf(fmt, ...)    /* Do nothing */
#endif