Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
ca-c-api.cc File Reference

Phase 25 — implementation of the flat C ABI declared in ca-c-api.h. More...

#include "ca-c-api.h"
#include <new>
#include <string>
#include <ca-engine-utils.H>
#include <tpl_ca_engine.H>
#include <tpl_ca_lattice.H>
#include <tpl_ca_neighborhood.H>
#include <tpl_ca_rule.H>
#include <tpl_ca_storage.H>
Include dependency graph for ca-c-api.cc:

Go to the source code of this file.

Classes

struct  aleph_ca_engine
 

Macros

#define ALEPH_CA_C_API_BUILD   1
 

Functions

uint32_t aleph_ca_api_version_v1 (void)
 
int aleph_ca_last_error_v1 (void)
 
const char * aleph_ca_error_message_v1 (void)
 
aleph_ca_engine_t * aleph_ca_create_gol_engine_v1 (size_t rows, size_t cols)
 
void aleph_ca_destroy_engine_v1 (aleph_ca_engine_t *engine)
 
int aleph_ca_extents_v1 (const aleph_ca_engine_t *engine, size_t *rows, size_t *cols)
 
int aleph_ca_set_cell_v1 (aleph_ca_engine_t *engine, size_t row, size_t col, int32_t value)
 
int aleph_ca_get_cell_v1 (const aleph_ca_engine_t *engine, size_t row, size_t col, int32_t *out)
 
int aleph_ca_step_v1 (aleph_ca_engine_t *engine)
 
int aleph_ca_run_v1 (aleph_ca_engine_t *engine, size_t steps)
 
int aleph_ca_copy_frame_v1 (const aleph_ca_engine_t *engine, int32_t *out, size_t out_len)
 
size_t aleph_ca_steps_run_v1 (const aleph_ca_engine_t *engine)
 

Detailed Description

Phase 25 — implementation of the flat C ABI declared in ca-c-api.h.

Each entry point wraps the C++ engine in a try/catch so that no C++ exception ever crosses the extern "C" boundary; failures are reported through thread-local error state instead.

Definition in file ca-c-api.cc.

Macro Definition Documentation

◆ ALEPH_CA_C_API_BUILD

#define ALEPH_CA_C_API_BUILD   1

Definition at line 39 of file ca-c-api.cc.

Function Documentation

◆ aleph_ca_api_version_v1()

uint32_t aleph_ca_api_version_v1 ( void  )

◆ aleph_ca_copy_frame_v1()

int aleph_ca_copy_frame_v1 ( const aleph_ca_engine_t *  engine,
int32_t *  out,
size_t  out_len 
)

◆ aleph_ca_create_gol_engine_v1()

aleph_ca_engine_t * aleph_ca_create_gol_engine_v1 ( size_t  rows,
size_t  cols 
)

◆ aleph_ca_destroy_engine_v1()

void aleph_ca_destroy_engine_v1 ( aleph_ca_engine_t *  engine)

Definition at line 138 of file ca-c-api.cc.

References engine.

Referenced by main().

◆ aleph_ca_error_message_v1()

const char * aleph_ca_error_message_v1 ( void  )

Definition at line 103 of file ca-c-api.cc.

References Aleph::blossom_maximum_cardinality_matching().

◆ aleph_ca_extents_v1()

int aleph_ca_extents_v1 ( const aleph_ca_engine_t *  engine,
size_t *  rows,
size_t *  cols 
)

Definition at line 143 of file ca-c-api.cc.

References ALEPH_CA_ERR_NULL, ALEPH_CA_OK, Aleph::blossom_maximum_cardinality_matching(), cols, engine, and rows.

Referenced by main().

◆ aleph_ca_get_cell_v1()

int aleph_ca_get_cell_v1 ( const aleph_ca_engine_t *  engine,
size_t  row,
size_t  col,
int32_t *  out 
)

◆ aleph_ca_last_error_v1()

int aleph_ca_last_error_v1 ( void  )

Definition at line 98 of file ca-c-api.cc.

References Aleph::blossom_maximum_cardinality_matching().

Referenced by main().

◆ aleph_ca_run_v1()

int aleph_ca_run_v1 ( aleph_ca_engine_t *  engine,
size_t  steps 
)

◆ aleph_ca_set_cell_v1()

int aleph_ca_set_cell_v1 ( aleph_ca_engine_t *  engine,
size_t  row,
size_t  col,
int32_t  value 
)

◆ aleph_ca_step_v1()

int aleph_ca_step_v1 ( aleph_ca_engine_t *  engine)

◆ aleph_ca_steps_run_v1()

size_t aleph_ca_steps_run_v1 ( const aleph_ca_engine_t *  engine)

Definition at line 272 of file ca-c-api.cc.

References engine.

Referenced by main().