.. _program_listing_file_include_cimba.h: Program Listing for File cimba.h ================================ |exhale_lsh| :ref:`Return to documentation for file ` (``include/cimba.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: c /* * Copyright (c) Asbjørn M. Bonvik 1994, 1995, 2025-26. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef CIMBA_CIMBA_H #define CIMBA_CIMBA_H #define CIMBA_VERSION_MAJOR 3 #define CIMBA_VERSION_MINOR 0 #define CIMBA_VERSION_PATCH 0 #define CIMBA_VERSION_PRE_RELEASE beta #define CMI_STRINGIFY(x) #x #define CMI_TOSTRING(A, B, C, D) CMI_STRINGIFY(A) "." CMI_STRINGIFY(B) "." \ CMI_STRINGIFY(C) "-" CMI_STRINGIFY(D) #define CIMBA_VERSION CMI_TOSTRING(CIMBA_VERSION_MAJOR, \ CIMBA_VERSION_MINOR, \ CIMBA_VERSION_PATCH, \ CIMBA_VERSION_PRE_RELEASE) extern const char *cimba_version(void); /* * Declarations of the different "classes" and functions provided by Cimba */ #include "cmb_assert.h" #include "cmb_buffer.h" #include "cmb_condition.h" #include "cmb_dataset.h" #include "cmb_datasummary.h" #include "cmb_event.h" #include "cmb_logger.h" #include "cmb_objectqueue.h" #include "cmb_process.h" #include "cmb_random.h" #include "cmb_resource.h" #include "cmb_resourceguard.h" #include "cmb_resourcepool.h" #include "cmb_timeseries.h" #include "cmb_wtdsummary.h" typedef void (cimba_trial_func)(void *trial_struct); extern uint64_t cimba_run(void *your_experiment_array, uint64_t num_trials, size_t trial_struct_size, cimba_trial_func *your_trial_func); /* Wrapper for deprecated long form */ [[maybe_unused]] static inline void cimba_run_experiment(void *your_experiment_array, uint64_t num_trials, size_t trial_struct_size, cimba_trial_func *your_trial_func) { cimba_run(your_experiment_array,num_trials,trial_struct_size, your_trial_func); } typedef void *(cimba_thread_init_func)(void *usrarg, uint64_t tid); typedef void (cimba_thread_exit_func)(void *thrctx); extern void cimba_thread_hooks_set(cimba_thread_init_func *initfunc, void *usrarg, cimba_thread_exit_func *exitfunc); extern void *cimba_thread_context(void); extern uint64_t cimba_thread_id(void); extern uint32_t cimba_threads_num(void); extern uint32_t cimba_threads_use(uint32_t n_threads); extern uint64_t cimba_trials_total(void); extern uint64_t cimba_trials_remaining(void); extern uint64_t cimba_trial_index(void); #endif // CIMBA_CIMBA_H