pub struct FbStream { /* private fields */ }Expand description
A conexão enquadrada com um servidor Firebird.
Implementations§
Source§impl FbStream
impl FbStream
pub fn new(sock: TcpStream) -> Self
Sourcepub fn mark_broken(&mut self)
pub fn mark_broken(&mut self)
Marca o stream como inutilizável (erro de I/O ou desync de protocolo).
Sourcepub fn is_broken(&self) -> bool
pub fn is_broken(&self) -> bool
Se o stream sofreu um erro de I/O ou desync e não deve ser reutilizado.
Sourcepub fn enable_encryption(
&mut self,
read: Box<dyn Cipher>,
write: Box<dyn Cipher>,
)
pub fn enable_encryption( &mut self, read: Box<dyn Cipher>, write: Box<dyn Cipher>, )
Instala as cifras de wire negociadas. Chamado uma vez, logo após o handshake de crypt; todo o tráfego a partir deste ponto é criptografado.
pub fn is_encrypted(&self) -> bool
Sourcepub fn peer_ip(&self) -> Option<IpAddr>
pub fn peer_ip(&self) -> Option<IpAddr>
O IP do servidor (peer) deste socket. Usado para abrir o canal auxiliar de eventos no mesmo host.
Sourcepub fn enqueue(&mut self, w: &XdrWriter)
pub fn enqueue(&mut self, w: &XdrWriter)
Anexa uma operação construída em XDR ao buffer de envio. Use Self::flush
para empurrá-la ao socket. A maioria dos chamadores usa Self::send.
Sourcepub fn flush(&mut self) -> Result<()>
pub fn flush(&mut self) -> Result<()>
Descarrega (flush) toda a saida em buffer, criptografando se uma cifra estiver instalada.
Sourcepub fn send(&mut self, w: &XdrWriter) -> Result<()>
pub fn send(&mut self, w: &XdrWriter) -> Result<()>
Enfileira e imediatamente descarrega (flush) uma operação.
Sourcepub fn read_raw(&mut self, n: usize) -> Result<Vec<u8>>
pub fn read_raw(&mut self, n: usize) -> Result<Vec<u8>>
Consome n bytes do cursor de leitura (sem preenchimento (padding) XDR).
pub fn read_i32(&mut self) -> Result<i32>
pub fn read_i64(&mut self) -> Result<i64>
pub fn read_f64(&mut self) -> Result<f64>
Sourcepub fn read_pad(&mut self, data_len: usize) -> Result<()>
pub fn read_pad(&mut self, data_len: usize) -> Result<()>
Pula o preenchimento (padding) XDR para que o deslocamento absoluto de bytes desde o início do
fluxo (stream) caia em um limite de 4 bytes. Rastreamos o alinhamento via data_len, não rpos,
então o chamador passa o comprimento do campo de dados recém-lido.
Sourcepub fn read_bytes(&mut self) -> Result<Vec<u8>>
pub fn read_bytes(&mut self) -> Result<Vec<u8>>
Lê um buffer opaco com prefixo de comprimento, alinhado em 4 bytes.