Skip to content
Snippets Groups Projects
binary_c_python.h 2.54 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"

/* Binary_c's python API prototypes */
int run_binary(char * argstring,
                char ** const outstring,
                char ** const errorstring,
                size_t * const nbytes);
int run_binary_with_logfile(char * argstring,
David Hendriks's avatar
David Hendriks committed
                char ** const outstring,
                char ** const errorstring,
                size_t * const nbytes);
David Hendriks's avatar
David Hendriks committed
int run_binary_custom_logging(char * argstring,
David Hendriks's avatar
David Hendriks committed
               char ** const buffer,
               char ** const error_buffer,
               size_t * const nbytes);
int run_population(char * argstring,
               long int custom_logging_func_memaddr,
               long int store_memaddr,
               char ** const buffer,
               char ** const error_buffer,
               size_t * const nbytes);

int run_system(char * argstring,
               long int custom_logging_func_memaddr,
               long int store_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,  
                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(char * argstring, // can we do this without argstring?
               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

#endif // BINARY_C_C_PYTHON_H