use libc::*;
use crate::simulation::Point;
use crate::simulation::utils::byte_vec::ByteVecRepr;
pub type OutputMessageQueue = c_void;
#[cfg(all(feature="cons_mode", not(feature="cons_core_mode")))]
#[cfg_attr(windows, link(name = "dvcompute_core_cons.dll"))]
#[cfg_attr(not(windows), link(name = "dvcompute_core_cons"))]
extern {
#[doc(hidden)]
pub fn create_extern_output_message_queue() -> *mut OutputMessageQueue;
#[doc(hidden)]
pub fn delete_extern_output_message_queue(queue: *mut OutputMessageQueue);
#[doc(hidden)]
pub fn extern_send(receiver_id: c_int, receive_time: f64, vec: ByteVecRepr, p: *const Point);
}
#[cfg(all(feature="cons_mode", feature="cons_core_mode"))]
extern {
#[doc(hidden)]
pub fn create_extern_output_message_queue() -> *mut OutputMessageQueue;
#[doc(hidden)]
pub fn delete_extern_output_message_queue(queue: *mut OutputMessageQueue);
#[doc(hidden)]
pub fn extern_send(receiver_id: c_int, receive_time: f64, vec: ByteVecRepr, p: *const Point);
}