private void CheckSelf(cef_read_handler_t *self) { if (_self != self) { throw ExceptionBuilder.InvalidSelfReference(); } }
protected virtual void Dispose(bool disposing) { if (_self != null) { cef_read_handler_t.Free(_self); _self = null; } }
public CefReadHandler() { cef_read_handler_t *self = this.NativeInstance; self->read = (void *)Marshal.GetFunctionPointerForDelegate(fnRead); self->seek = (void *)Marshal.GetFunctionPointerForDelegate(fnSeek); self->tell = (void *)Marshal.GetFunctionPointerForDelegate(fnTell); self->eof = (void *)Marshal.GetFunctionPointerForDelegate(fnEof); self->may_block = (void *)Marshal.GetFunctionPointerForDelegate(fnMayBlock); }
private UIntPtr read(cef_read_handler_t *self, void *ptr, UIntPtr size, UIntPtr n) { CheckSelf(self); var length = (long)size * (long)n; using (var stream = new UnmanagedMemoryStream((byte *)ptr, length, length, FileAccess.Write)) { return((UIntPtr)Read(stream, length)); } }
private void add_ref(cef_read_handler_t *self) { lock (SyncRoot) { var result = ++_refct; if (result == 1) { lock (_roots) { _roots.Add((IntPtr)_self, this); } } } }
/// <summary> /// Read raw binary data. /// </summary> private int read(cef_read_handler_t *self, void *ptr, int size, int n) { ThrowIfObjectDisposed(); long length = size * n; using (var m_stream = new UnmanagedMemoryStream((byte *)ptr, length, length, FileAccess.Write)) { return(this.Read(m_stream, size, n)); } }
private int release(cef_read_handler_t *self) { lock (SyncRoot) { var result = --_refct; if (result == 0) { lock (_roots) { _roots.Remove((IntPtr)_self); } } return(result); } }
public CefReadHandler() { cef_read_handler_t *self = this.NativeInstance; #if NET_LESS_5_0 self->read = (void *)Marshal.GetFunctionPointerForDelegate(fnRead); self->seek = (void *)Marshal.GetFunctionPointerForDelegate(fnSeek); self->tell = (void *)Marshal.GetFunctionPointerForDelegate(fnTell); self->eof = (void *)Marshal.GetFunctionPointerForDelegate(fnEof); self->may_block = (void *)Marshal.GetFunctionPointerForDelegate(fnMayBlock); #else self->read = (delegate * unmanaged[Stdcall] < cef_read_handler_t *, void *, UIntPtr, UIntPtr, UIntPtr >) & ReadImpl; self->seek = (delegate * unmanaged[Stdcall] < cef_read_handler_t *, long, int, int >) & SeekImpl; self->tell = (delegate * unmanaged[Stdcall] < cef_read_handler_t *, long >) & TellImpl; self->eof = (delegate * unmanaged[Stdcall] < cef_read_handler_t *, int >) & EofImpl; self->may_block = (delegate * unmanaged[Stdcall] < cef_read_handler_t *, int >) & MayBlockImpl; #endif }
protected CefReadHandler() { _self = cef_read_handler_t.Alloc(); _ds0 = new cef_read_handler_t.add_ref_delegate(add_ref); _self->_base._add_ref = Marshal.GetFunctionPointerForDelegate(_ds0); _ds1 = new cef_read_handler_t.release_delegate(release); _self->_base._release = Marshal.GetFunctionPointerForDelegate(_ds1); _ds2 = new cef_read_handler_t.get_refct_delegate(get_refct); _self->_base._get_refct = Marshal.GetFunctionPointerForDelegate(_ds2); _ds3 = new cef_read_handler_t.read_delegate(read); _self->_read = Marshal.GetFunctionPointerForDelegate(_ds3); _ds4 = new cef_read_handler_t.seek_delegate(seek); _self->_seek = Marshal.GetFunctionPointerForDelegate(_ds4); _ds5 = new cef_read_handler_t.tell_delegate(tell); _self->_tell = Marshal.GetFunctionPointerForDelegate(_ds5); _ds6 = new cef_read_handler_t.eof_delegate(eof); _self->_eof = Marshal.GetFunctionPointerForDelegate(_ds6); }
protected CefReadHandler() { _self = cef_read_handler_t.Alloc(); _ds0 = new cef_read_handler_t.add_ref_delegate(add_ref); _self->_base._add_ref = Marshal.GetFunctionPointerForDelegate(_ds0); _ds1 = new cef_read_handler_t.release_delegate(release); _self->_base._release = Marshal.GetFunctionPointerForDelegate(_ds1); _ds2 = new cef_read_handler_t.has_one_ref_delegate(has_one_ref); _self->_base._has_one_ref = Marshal.GetFunctionPointerForDelegate(_ds2); _ds3 = new cef_read_handler_t.has_at_least_one_ref_delegate(has_at_least_one_ref); _self->_base._has_at_least_one_ref = Marshal.GetFunctionPointerForDelegate(_ds3); _ds4 = new cef_read_handler_t.read_delegate(read); _self->_read = Marshal.GetFunctionPointerForDelegate(_ds4); _ds5 = new cef_read_handler_t.seek_delegate(seek); _self->_seek = Marshal.GetFunctionPointerForDelegate(_ds5); _ds6 = new cef_read_handler_t.tell_delegate(tell); _self->_tell = Marshal.GetFunctionPointerForDelegate(_ds6); _ds7 = new cef_read_handler_t.eof_delegate(eof); _self->_eof = Marshal.GetFunctionPointerForDelegate(_ds7); _ds8 = new cef_read_handler_t.may_block_delegate(may_block); _self->_may_block = Marshal.GetFunctionPointerForDelegate(_ds8); }
internal static void Free(cef_read_handler_t *ptr) { Marshal.FreeHGlobal((IntPtr)ptr); }
private int get_refct(cef_read_handler_t *self) { return(_refct); }
private int may_block(cef_read_handler_t *self) { CheckSelf(self); return(MayBlock() ? 1 : 0); }
/// <summary> /// Seek to the specified offset position. |whence| may be any one of /// SEEK_CUR, SEEK_END or SEEK_SET. Return zero on success and non-zero on /// failure. /// </summary> // protected abstract int Seek(long offset, int whence); private long tell(cef_read_handler_t *self) { CheckSelf(self); throw new NotImplementedException(); // TODO: CefReadHandler.Tell }
public CefReadHandler(cef_read_handler_t *instance) : base((cef_base_ref_counted_t *)instance) { }
public static extern cef_stream_reader_t *create_for_handler(cef_read_handler_t *handler);
/// <summary> /// Return the current offset position. /// </summary> // protected abstract long Tell(); private int eof(cef_read_handler_t *self) { CheckSelf(self); throw new NotImplementedException(); // TODO: CefReadHandler.Eof }
private int has_at_least_one_ref(cef_read_handler_t *self) { lock (SyncRoot) { return(_refct != 0 ? 1 : 0); } }
/// <summary> /// Return the current offset position. /// </summary> private long tell(cef_read_handler_t *self) { ThrowIfObjectDisposed(); return(this.Tell()); }
/// <summary> /// Read raw binary data. /// </summary> // protected abstract UIntPtr Read(void* ptr, UIntPtr size, UIntPtr n); private int seek(cef_read_handler_t *self, long offset, int whence) { CheckSelf(self); throw new NotImplementedException(); // TODO: CefReadHandler.Seek }
private UIntPtr read(cef_read_handler_t *self, void *ptr, UIntPtr size, UIntPtr n) { CheckSelf(self); throw new NotImplementedException(); // TODO: CefReadHandler.Read }
private int seek(cef_read_handler_t *self, long offset, int whence) { CheckSelf(self); return(Seek(offset, (SeekOrigin)whence) ? 0 : -1); }
/// <summary> /// Return non-zero if at end of file. /// </summary> // protected abstract int Eof(); private int may_block(cef_read_handler_t *self) { CheckSelf(self); throw new NotImplementedException(); // TODO: CefReadHandler.MayBlock }
private int has_one_ref(cef_read_handler_t *self) { lock (SyncRoot) { return(_refct == 1 ? 1 : 0); } }
private long tell(cef_read_handler_t *self) { CheckSelf(self); return(Tell()); }
/// <summary> /// Seek to the specified offset position. |whence| may be any one of /// SEEK_CUR, SEEK_END or SEEK_SET. /// </summary> private int seek(cef_read_handler_t *self, long offset, int whence) { ThrowIfObjectDisposed(); return(this.Seek(offset, (SeekOrigin)whence) ? 0 : 1); }
private int eof(cef_read_handler_t *self) { CheckSelf(self); return(Eof() ? 1 : 0); }
/// <summary> /// Return non-zero if at end of file. /// </summary> private int eof(cef_read_handler_t *self) { ThrowIfObjectDisposed(); return(this.Eof() ? 1 : 0); }
/// <summary> /// Create a new CefStreamReader object from a custom handler. /// </summary> public static cef_stream_reader_t *CreateForHandler(cef_read_handler_t *handler) { throw new NotImplementedException(); // TODO: CefStreamReader.CreateForHandler }