Skip to content

Commit b8decb3

Browse files
authored
[ISSUE #2190]💫Add MappedFileRefactor trait🍻 (#2191)
1 parent fb16dc9 commit b8decb3

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

rocketmq-store/src/log_file/mapped_file.rs

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ use crate::base::compaction_append_msg_callback::CompactionAppendMsgCallback;
2929
use crate::base::message_result::AppendMessageResult;
3030
use crate::base::put_message_context::PutMessageContext;
3131
use crate::base::select_result::SelectMappedBufferResult;
32+
use crate::base::transient_store_pool::TransientStorePool;
3233
use crate::config::flush_disk_type::FlushDiskType;
3334

3435
pub mod default_mapped_file_impl;
@@ -597,3 +598,76 @@ pub trait MappedFile {
597598
/// `true` if the specified range is loaded into memory; `false` otherwise.
598599
fn is_loaded(&self, position: i64, size: usize) -> bool;
599600
}
601+
602+
pub trait MappedFileRefactor {
603+
fn get_file_name(&self) -> &CheetahString;
604+
fn rename_to(&self, file_name: &CheetahString) -> bool;
605+
fn get_file_size(&self) -> usize;
606+
//fn get_file_channel(&self) -> &File;
607+
fn is_full(&self) -> bool;
608+
fn is_available(&self) -> bool;
609+
610+
fn append_message<AMC: AppendMessageCallback>(
611+
&self,
612+
message: &MessageExtBrokerInner,
613+
message_callback: AMC,
614+
put_message_context: &PutMessageContext,
615+
) -> AppendMessageResult;
616+
617+
fn append_messages<AMC: AppendMessageCallback>(
618+
&self,
619+
message: &MessageExtBatch,
620+
message_callback: AMC,
621+
put_message_context: &PutMessageContext,
622+
) -> AppendMessageResult;
623+
624+
fn append_message_with_callback(
625+
&self,
626+
byte_buffer_msg: &[u8],
627+
cb: &dyn CompactionAppendMsgCallback,
628+
) -> AppendMessageResult;
629+
630+
fn append_message_bytes(&self, data: &[u8]) -> bool;
631+
fn append_message_with_offset(&self, data: &[u8], offset: usize, length: usize) -> bool;
632+
fn get_file_from_offset(&self) -> u64;
633+
fn flush(&self, flush_least_pages: usize) -> usize;
634+
fn commit(&self, commit_least_pages: usize) -> usize;
635+
fn select_mapped_buffer(&self, pos: usize, size: usize) -> Option<SelectMappedBufferResult>;
636+
fn select_mapped_buffer_with_position(&self, pos: usize) -> Option<SelectMappedBufferResult>;
637+
fn get_mapped_byte_buffer(&self) -> &[u8];
638+
fn slice_byte_buffer(&self) -> &[u8];
639+
fn get_store_timestamp(&self) -> u64;
640+
fn get_last_modified_timestamp(&self) -> u64;
641+
fn get_data(&self, pos: usize, size: usize, byte_buffer: &mut [u8]) -> bool;
642+
fn destroy(&self, interval_forcibly: u64) -> bool;
643+
fn shutdown(&self, interval_forcibly: u64);
644+
fn release(&self);
645+
fn hold(&self) -> bool;
646+
fn is_first_create_in_queue(&self) -> bool;
647+
fn set_first_create_in_queue(&self, first_create_in_queue: bool);
648+
fn get_flushed_position(&self) -> usize;
649+
fn set_flushed_position(&self, flushed_position: usize);
650+
fn get_wrote_position(&self) -> usize;
651+
fn set_wrote_position(&self, wrote_position: usize);
652+
fn get_read_position(&self) -> usize;
653+
fn set_committed_position(&self, committed_position: usize);
654+
fn m_lock(&self);
655+
fn m_unlock(&self);
656+
fn warm_mapped_file(&self, type_: FlushDiskType, pages: usize);
657+
fn swap_map(&self) -> bool;
658+
fn clean_swapped_map(&self, force: bool);
659+
fn get_recent_swap_map_time(&self) -> u64;
660+
fn get_mapped_byte_buffer_access_count_since_last_swap(&self) -> u64;
661+
fn get_file(&self) -> &File;
662+
fn rename_to_delete(&mut self);
663+
fn move_to_parent(&self) -> io::Result<()>;
664+
fn get_last_flush_time(&self) -> u64;
665+
fn init(
666+
&self,
667+
file_name: &str,
668+
file_size: usize,
669+
transient_store_pool: &TransientStorePool,
670+
) -> io::Result<()>;
671+
fn iterator(&self, pos: usize) -> Box<dyn Iterator<Item = SelectMappedBufferResult>>;
672+
fn is_loaded(&self, position: u64, size: usize) -> bool;
673+
}

0 commit comments

Comments
 (0)