private void CheckSelf(cef_write_handler_t *self) { if (_self != self) { throw ExceptionBuilder.InvalidSelfReference(); } }
protected virtual void Dispose(bool disposing) { if (_self != null) { cef_write_handler_t.Free(_self); _self = null; } }
public CefWriteHandler() { cef_write_handler_t *self = this.NativeInstance; self->write = (void *)Marshal.GetFunctionPointerForDelegate(fnWrite); self->seek = (void *)Marshal.GetFunctionPointerForDelegate(fnSeek); self->tell = (void *)Marshal.GetFunctionPointerForDelegate(fnTell); self->flush = (void *)Marshal.GetFunctionPointerForDelegate(fnFlush); self->may_block = (void *)Marshal.GetFunctionPointerForDelegate(fnMayBlock); }
private void add_ref(cef_write_handler_t *self) { lock (SyncRoot) { var result = ++_refct; if (result == 1) { lock (_roots) { _roots.Add((IntPtr)_self, this); } } } }
/// <summary> /// Write raw binary data. /// </summary> private int write(cef_write_handler_t *self, /*const*/ void *ptr, int size, int n) { ThrowIfObjectDisposed(); long length = size * n; using (var m_stream = new UnmanagedMemoryStream((byte *)ptr, size * n, size * n, FileAccess.Read)) { return(this.Write(m_stream, size, n)); } }
private UIntPtr write(cef_write_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)Write(stream, length)); } }
private int release(cef_write_handler_t *self) { lock (SyncRoot) { var result = --_refct; if (result == 0) { lock (_roots) { _roots.Remove((IntPtr)_self); } } return(result); } }
public CefWriteHandler() { cef_write_handler_t *self = this.NativeInstance; #if NET_LESS_5_0 self->write = (void *)Marshal.GetFunctionPointerForDelegate(fnWrite); self->seek = (void *)Marshal.GetFunctionPointerForDelegate(fnSeek); self->tell = (void *)Marshal.GetFunctionPointerForDelegate(fnTell); self->flush = (void *)Marshal.GetFunctionPointerForDelegate(fnFlush); self->may_block = (void *)Marshal.GetFunctionPointerForDelegate(fnMayBlock); #else self->write = (delegate * unmanaged[Stdcall] < cef_write_handler_t *, void *, UIntPtr, UIntPtr, UIntPtr >) & WriteImpl; self->seek = (delegate * unmanaged[Stdcall] < cef_write_handler_t *, long, int, int >) & SeekImpl; self->tell = (delegate * unmanaged[Stdcall] < cef_write_handler_t *, long >) & TellImpl; self->flush = (delegate * unmanaged[Stdcall] < cef_write_handler_t *, int >) & FlushImpl; self->may_block = (delegate * unmanaged[Stdcall] < cef_write_handler_t *, int >) & MayBlockImpl; #endif }
protected CefWriteHandler() { _self = cef_write_handler_t.Alloc(); _ds0 = new cef_write_handler_t.add_ref_delegate(add_ref); _self->_base._add_ref = Marshal.GetFunctionPointerForDelegate(_ds0); _ds1 = new cef_write_handler_t.release_delegate(release); _self->_base._release = Marshal.GetFunctionPointerForDelegate(_ds1); _ds2 = new cef_write_handler_t.get_refct_delegate(get_refct); _self->_base._get_refct = Marshal.GetFunctionPointerForDelegate(_ds2); _ds3 = new cef_write_handler_t.write_delegate(write); _self->_write = Marshal.GetFunctionPointerForDelegate(_ds3); _ds4 = new cef_write_handler_t.seek_delegate(seek); _self->_seek = Marshal.GetFunctionPointerForDelegate(_ds4); _ds5 = new cef_write_handler_t.tell_delegate(tell); _self->_tell = Marshal.GetFunctionPointerForDelegate(_ds5); _ds6 = new cef_write_handler_t.flush_delegate(flush); _self->_flush = Marshal.GetFunctionPointerForDelegate(_ds6); }
protected CefWriteHandler() { _self = cef_write_handler_t.Alloc(); _ds0 = new cef_write_handler_t.add_ref_delegate(add_ref); _self->_base._add_ref = Marshal.GetFunctionPointerForDelegate(_ds0); _ds1 = new cef_write_handler_t.release_delegate(release); _self->_base._release = Marshal.GetFunctionPointerForDelegate(_ds1); _ds2 = new cef_write_handler_t.has_one_ref_delegate(has_one_ref); _self->_base._has_one_ref = Marshal.GetFunctionPointerForDelegate(_ds2); _ds3 = new cef_write_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_write_handler_t.write_delegate(write); _self->_write = Marshal.GetFunctionPointerForDelegate(_ds4); _ds5 = new cef_write_handler_t.seek_delegate(seek); _self->_seek = Marshal.GetFunctionPointerForDelegate(_ds5); _ds6 = new cef_write_handler_t.tell_delegate(tell); _self->_tell = Marshal.GetFunctionPointerForDelegate(_ds6); _ds7 = new cef_write_handler_t.flush_delegate(flush); _self->_flush = Marshal.GetFunctionPointerForDelegate(_ds7); _ds8 = new cef_write_handler_t.may_block_delegate(may_block); _self->_may_block = Marshal.GetFunctionPointerForDelegate(_ds8); }
public static extern cef_stream_writer_t *create_for_handler(cef_write_handler_t *handler);
/// <summary> /// Flush the stream. /// </summary> // protected abstract int Flush(); private int may_block(cef_write_handler_t *self) { CheckSelf(self); throw new NotImplementedException(); // TODO: CefWriteHandler.MayBlock }
/// <summary> /// Return the current offset position. /// </summary> // protected abstract long Tell(); private int flush(cef_write_handler_t *self) { CheckSelf(self); throw new NotImplementedException(); // TODO: CefWriteHandler.Flush }
/// <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_write_handler_t *self) { CheckSelf(self); throw new NotImplementedException(); // TODO: CefWriteHandler.Tell }
/// <summary> /// Write raw binary data. /// </summary> // protected abstract UIntPtr Write(void* ptr, UIntPtr size, UIntPtr n); private int seek(cef_write_handler_t *self, long offset, int whence) { CheckSelf(self); throw new NotImplementedException(); // TODO: CefWriteHandler.Seek }
private UIntPtr write(cef_write_handler_t *self, void *ptr, UIntPtr size, UIntPtr n) { CheckSelf(self); throw new NotImplementedException(); // TODO: CefWriteHandler.Write }
private int get_refct(cef_write_handler_t *self) { return(_refct); }
private int flush(cef_write_handler_t *self) { CheckSelf(self); return(Flush() ? 0 : -1); }
private int seek(cef_write_handler_t *self, long offset, int whence) { CheckSelf(self); return(Seek(offset, (SeekOrigin)whence) ? 0 : -1); }
private int has_at_least_one_ref(cef_write_handler_t *self) { lock (SyncRoot) { return(_refct != 0 ? 1 : 0); } }
/// <summary> /// Flush the stream. /// </summary> private int flush(cef_write_handler_t *self) { ThrowIfObjectDisposed(); return(this.Flush() ? 0 : 1); }
private long tell(cef_write_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_write_handler_t *self, long offset, int whence) { ThrowIfObjectDisposed(); return(this.Seek(offset, (SeekOrigin)whence) ? 0 : 1); }
private int may_block(cef_write_handler_t *self) { CheckSelf(self); return(MayBlock() ? 1 : 0); }
/// <summary> /// Return the current offset position. /// </summary> private long tell(cef_write_handler_t *self) { ThrowIfObjectDisposed(); return(this.Tell()); }
public CefWriteHandler(cef_write_handler_t *instance) : base((cef_base_ref_counted_t *)instance) { }
private int has_one_ref(cef_write_handler_t *self) { lock (SyncRoot) { return(_refct == 1 ? 1 : 0); } }
internal static void Free(cef_write_handler_t *ptr) { Marshal.FreeHGlobal((IntPtr)ptr); }
/// <summary> /// Create a new CefStreamWriter object for a custom handler. /// </summary> public static cef_stream_writer_t *CreateForHandler(cef_write_handler_t *handler) { throw new NotImplementedException(); // TODO: CefStreamWriter.CreateForHandler }