Struct libvnc_sys::rfb::_rfbClientRec

source ·
#[repr(C)]
pub struct _rfbClientRec {
Show 97 fields pub screen: rfbScreenInfoPtr, pub scaledScreen: rfbScreenInfoPtr, pub PalmVNC: rfbBool, pub clientData: *mut c_void, pub clientGoneHook: ClientGoneHookPtr, pub sock: c_int, pub host: *mut c_char, pub protocolMajorVersion: c_int, pub protocolMinorVersion: c_int, pub client_thread: pthread_t, pub state: _rfbClientRec__bindgen_ty_1, pub reverseConnection: rfbBool, pub onHold: rfbBool, pub readyForSetColourMapEntries: rfbBool, pub useCopyRect: rfbBool, pub preferredEncoding: c_int, pub correMaxWidth: c_int, pub correMaxHeight: c_int, pub viewOnly: rfbBool, pub authChallenge: [u8; 16], pub copyRegion: sraRegionPtr, pub copyDX: c_int, pub copyDY: c_int, pub modifiedRegion: sraRegionPtr, pub requestedRegion: sraRegionPtr, pub startDeferring: timeval, pub startPtrDeferring: timeval, pub lastPtrX: c_int, pub lastPtrY: c_int, pub lastPtrButtons: c_int, pub translateFn: rfbTranslateFnType, pub translateLookupTable: *mut c_char, pub format: rfbPixelFormat, pub updateBuf: [c_char; 30000], pub ublen: c_int, pub statEncList: *mut _rfbStatList, pub statMsgList: *mut _rfbStatList, pub rawBytesEquivalent: c_int, pub bytesSent: c_int, pub compStream: z_stream_s, pub compStreamInited: rfbBool, pub zlibCompressLevel: u32, pub tightQualityLevel: c_int, pub zsStruct: [z_stream; 4], pub zsActive: [rfbBool; 4], pub zsLevel: [c_int; 4], pub tightCompressLevel: c_int, pub compStreamInitedLZO: rfbBool, pub lzoWrkMem: *mut c_char, pub fileTransfer: rfbFileTransferData, pub lastKeyboardLedState: c_int, pub enableSupportedMessages: rfbBool, pub enableSupportedEncodings: rfbBool, pub enableServerIdentity: rfbBool, pub enableKeyboardLedState: rfbBool, pub enableLastRectEncoding: rfbBool, pub enableCursorShapeUpdates: rfbBool, pub enableCursorPosUpdates: rfbBool, pub useRichCursorEncoding: rfbBool, pub cursorWasChanged: rfbBool, pub cursorWasMoved: rfbBool, pub cursorX: c_int, pub cursorY: c_int, pub useNewFBSize: rfbBool, pub newFBSizePending: rfbBool, pub prev: *mut _rfbClientRec, pub next: *mut _rfbClientRec, pub refCount: c_int, pub refCountMutex: pthread_mutex_t, pub deleteCond: pthread_cond_t, pub outputMutex: pthread_mutex_t, pub updateMutex: pthread_mutex_t, pub updateCond: pthread_cond_t, pub zrleData: *mut c_void, pub zywrleLevel: c_int, pub zywrleBuf: [c_int; 4096], pub progressiveSliceY: c_int, pub extensions: *mut rfbExtensionData, pub zrleBeforeBuf: *mut c_char, pub paletteHelper: *mut c_void, pub sendMutex: pthread_mutex_t, pub beforeEncBuf: *mut c_char, pub beforeEncBufSize: c_int, pub afterEncBuf: *mut c_char, pub afterEncBufSize: c_int, pub afterEncBufLen: c_int, pub tightEncoding: u32, pub turboSubsampLevel: c_int, pub turboQualityLevel: c_int, pub sslctx: *mut rfbSslCtx, pub wsctx: *mut wsCtx, pub wspath: *mut c_char, pub pipe_notify_client_thread: [c_int; 2], pub clientFramebufferUpdateRequestHook: ClientFramebufferUpdateRequestHookPtr, pub useExtDesktopSize: rfbBool, pub requestedDesktopSizeChange: c_int, pub lastDesktopSizeChangeError: c_int,
}

Fields§

§screen: rfbScreenInfoPtr

back pointer to the screen

§scaledScreen: rfbScreenInfoPtr

points to a scaled version of the screen buffer in cl->scaledScreenList

§PalmVNC: rfbBool

how did the client tell us it wanted the screen changed? Ultra style or palm style?

§clientData: *mut c_void

private data. You should put any application client specific data into a struct and let clientData point to it. Don’t forget to free the struct via clientGoneHook!

This is useful if the IO functions have to behave client specific.

§clientGoneHook: ClientGoneHookPtr§sock: c_int§host: *mut c_char§protocolMajorVersion: c_int§protocolMinorVersion: c_int§client_thread: pthread_t§state: _rfbClientRec__bindgen_ty_1§reverseConnection: rfbBool§onHold: rfbBool§readyForSetColourMapEntries: rfbBool§useCopyRect: rfbBool§preferredEncoding: c_int§correMaxWidth: c_int§correMaxHeight: c_int§viewOnly: rfbBool§authChallenge: [u8; 16]§copyRegion: sraRegionPtr

< the destination region of the copy

§copyDX: c_int

< the translation by which the copy happens

§copyDY: c_int

< the translation by which the copy happens

§modifiedRegion: sraRegionPtr§requestedRegion: sraRegionPtr

As part of the FramebufferUpdateRequest, a client can express interest in a subrectangle of the whole framebuffer. This is stored in the requestedRegion member. In the normal case this is the whole framebuffer if the client is ready, empty if it’s not.

§startDeferring: timeval

The following member represents the state of the “deferred update” timer

  • when the framebuffer is modified and the client is ready, in most cases it is more efficient to defer sending the update by a few milliseconds so that several changes to the framebuffer can be combined into a single update.
§startPtrDeferring: timeval§lastPtrX: c_int§lastPtrY: c_int§lastPtrButtons: c_int§translateFn: rfbTranslateFnType

translateFn points to the translation function which is used to copy and translate a rectangle from the framebuffer to an output buffer.

§translateLookupTable: *mut c_char§format: rfbPixelFormat§updateBuf: [c_char; 30000]§ublen: c_int§statEncList: *mut _rfbStatList§statMsgList: *mut _rfbStatList§rawBytesEquivalent: c_int§bytesSent: c_int§compStream: z_stream_s§compStreamInited: rfbBool§zlibCompressLevel: u32§tightQualityLevel: c_int

the quality level is also used by ZYWRLE and TightPng

§zsStruct: [z_stream; 4]§zsActive: [rfbBool; 4]§zsLevel: [c_int; 4]§tightCompressLevel: c_int§compStreamInitedLZO: rfbBool§lzoWrkMem: *mut c_char§fileTransfer: rfbFileTransferData§lastKeyboardLedState: c_int

< keep track of last value so we can send change events

§enableSupportedMessages: rfbBool

< client supports SupportedMessages encoding

§enableSupportedEncodings: rfbBool

< client supports SupportedEncodings encoding

§enableServerIdentity: rfbBool

< client supports ServerIdentity encoding

§enableKeyboardLedState: rfbBool

< client supports KeyboardState encoding

§enableLastRectEncoding: rfbBool

< client supports LastRect encoding

§enableCursorShapeUpdates: rfbBool

< client supports cursor shape updates

§enableCursorPosUpdates: rfbBool

< client supports cursor position updates

§useRichCursorEncoding: rfbBool

< rfbEncodingRichCursor is preferred

§cursorWasChanged: rfbBool

< cursor shape update should be sent

§cursorWasMoved: rfbBool

< cursor position update should be sent

§cursorX: c_int

< the coordinates of the cursor, if enableCursorShapeUpdates = FALSE

§cursorY: c_int

< the coordinates of the cursor, if enableCursorShapeUpdates = FALSE

§useNewFBSize: rfbBool

< client supports NewFBSize encoding

§newFBSizePending: rfbBool

< framebuffer size was changed

§prev: *mut _rfbClientRec§next: *mut _rfbClientRec§refCount: c_int

whenever a client is referenced, the refCount has to be incremented and afterwards decremented, so that the client is not cleaned up while being referenced. Use the functions rfbIncrClientRef(cl) and rfbDecrClientRef(cl);

§refCountMutex: pthread_mutex_t§deleteCond: pthread_cond_t§outputMutex: pthread_mutex_t§updateMutex: pthread_mutex_t§updateCond: pthread_cond_t§zrleData: *mut c_void§zywrleLevel: c_int§zywrleBuf: [c_int; 4096]§progressiveSliceY: c_int

if progressive updating is on, this variable holds the current y coordinate of the progressive slice.

§extensions: *mut rfbExtensionData§zrleBeforeBuf: *mut c_char

for threaded zrle

§paletteHelper: *mut c_void§sendMutex: pthread_mutex_t§beforeEncBuf: *mut c_char§beforeEncBufSize: c_int§afterEncBuf: *mut c_char§afterEncBufSize: c_int§afterEncBufLen: c_int§tightEncoding: u32§turboSubsampLevel: c_int§turboQualityLevel: c_int§sslctx: *mut rfbSslCtx§wsctx: *mut wsCtx§wspath: *mut c_char§pipe_notify_client_thread: [c_int; 2]§clientFramebufferUpdateRequestHook: ClientFramebufferUpdateRequestHookPtr

clientFramebufferUpdateRequestHook is called when a client requests a frame buffer update.

§useExtDesktopSize: rfbBool§requestedDesktopSizeChange: c_int§lastDesktopSizeChangeError: c_int

Trait Implementations§

source§

impl Clone for _rfbClientRec

source§

fn clone(&self) -> _rfbClientRec

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Copy for _rfbClientRec

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.