pub fn shm_writer<D: DataFormat>(
root_path: &Path,
header: &Header,
df: D,
) -> Result<ShmWriter<D>, ChannelError>Expand description
Creates a file backed memory mapped kekbit channel and a writer associate with it.
Returns a ready to use writer to the new created channel or an error if the operation fails.
§Arguments
root_path- The path to the folder where all the channels will be stored grouped by writers id.header- a structure of type Header which contains the complete information required to create a channel.
§Errors
Various errors may occur if the operation fails.
§Examples
use kekbit_core::tick::TickUnit::Nanos;
use kekbit_core::shm::*;
use kekbit_core::header::Header;
use kekbit_core::api::Writer;
use kekbit_codecs::codecs::raw::RawBinDataFormat;
const FOREVER: u64 = 99_999_999_999;
let writer_id = 1850;
let channel_id = 42;
let capacity = 3000;
let max_msg_len = 100;
let header = Header::new(writer_id, channel_id, capacity, max_msg_len, FOREVER, Nanos);
let test_tmp_dir = tempdir::TempDir::new("kektest").unwrap();
let mut writer = shm_writer(&test_tmp_dir.path(), &header, RawBinDataFormat).unwrap();
writer.heartbeat().unwrap();