private void CheckSelf(cef_server_handler_t *self) { if (_self != self) { throw ExceptionBuilder.InvalidSelfReference(); } }
protected CefServerHandler() { _self = cef_server_handler_t.Alloc(); _ds0 = new cef_server_handler_t.add_ref_delegate(add_ref); _self->_base._add_ref = Marshal.GetFunctionPointerForDelegate(_ds0); _ds1 = new cef_server_handler_t.release_delegate(release); _self->_base._release = Marshal.GetFunctionPointerForDelegate(_ds1); _ds2 = new cef_server_handler_t.has_one_ref_delegate(has_one_ref); _self->_base._has_one_ref = Marshal.GetFunctionPointerForDelegate(_ds2); _ds3 = new cef_server_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_server_handler_t.on_server_created_delegate(on_server_created); _self->_on_server_created = Marshal.GetFunctionPointerForDelegate(_ds4); _ds5 = new cef_server_handler_t.on_server_destroyed_delegate(on_server_destroyed); _self->_on_server_destroyed = Marshal.GetFunctionPointerForDelegate(_ds5); _ds6 = new cef_server_handler_t.on_client_connected_delegate(on_client_connected); _self->_on_client_connected = Marshal.GetFunctionPointerForDelegate(_ds6); _ds7 = new cef_server_handler_t.on_client_disconnected_delegate(on_client_disconnected); _self->_on_client_disconnected = Marshal.GetFunctionPointerForDelegate(_ds7); _ds8 = new cef_server_handler_t.on_http_request_delegate(on_http_request); _self->_on_http_request = Marshal.GetFunctionPointerForDelegate(_ds8); _ds9 = new cef_server_handler_t.on_web_socket_request_delegate(on_web_socket_request); _self->_on_web_socket_request = Marshal.GetFunctionPointerForDelegate(_ds9); _dsa = new cef_server_handler_t.on_web_socket_connected_delegate(on_web_socket_connected); _self->_on_web_socket_connected = Marshal.GetFunctionPointerForDelegate(_dsa); _dsb = new cef_server_handler_t.on_web_socket_message_delegate(on_web_socket_message); _self->_on_web_socket_message = Marshal.GetFunctionPointerForDelegate(_dsb); }
private void on_web_socket_connected(cef_server_handler_t *self, cef_server_t *server, int connection_id) { CheckSelf(self); var mServer = CefServer.FromNative(server); OnWebSocketConnected(mServer, connection_id); }
protected virtual void Dispose(bool disposing) { if (_self != null) { cef_server_handler_t.Free(_self); _self = null; } }
private void on_client_disconnected(cef_server_handler_t *self, cef_server_t *server, int connection_id) { CheckSelf(self); var mServer = CefServer.FromNative(server); OnClientDisconnected(mServer, connection_id); }
private void on_server_destroyed(cef_server_handler_t *self, cef_server_t *server) { CheckSelf(self); var mServer = CefServer.FromNative(server); OnServerDestroyed(mServer); }
private void on_http_request(cef_server_handler_t *self, cef_server_t *server, int connection_id, cef_string_t *client_address, cef_request_t *request) { CheckSelf(self); var mServer = CefServer.FromNative(server); var mClientAddress = cef_string_t.ToString(client_address); var mRequest = CefRequest.FromNative(request); OnHttpRequest(mServer, connection_id, mClientAddress, mRequest); }
private void on_web_socket_message(cef_server_handler_t *self, cef_server_t *server, int connection_id, void *data, UIntPtr data_size) { CheckSelf(self); var mServer = CefServer.FromNative(server); var mData = (IntPtr)data; var mDataSize = checked ((long)data_size); OnWebSocketMessage(mServer, connection_id, mData, mDataSize); }
private void on_web_socket_request(cef_server_handler_t *self, cef_server_t *server, int connection_id, cef_string_t *client_address, cef_request_t *request, cef_callback_t *callback) { CheckSelf(self); var mServer = CefServer.FromNative(server); var mClientAddress = cef_string_t.ToString(client_address); var mRequest = CefRequest.FromNative(request); var mCallback = CefCallback.FromNative(callback); OnWebSocketRequest(mServer, connection_id, mClientAddress, mRequest, mCallback); }
private static unsafe void OnWebSocketConnectedImpl(cef_server_handler_t *self, cef_server_t *server, int connection_id) { var instance = GetInstance((IntPtr)self) as CefServerHandler; if (instance == null || ((ICefServerHandlerPrivate)instance).AvoidOnWebSocketConnected()) { ReleaseIfNonNull((cef_base_ref_counted_t *)server); return; } instance.OnWebSocketConnected(CefServer.Wrap(CefServer.Create, server), connection_id); }
private static unsafe void OnWebSocketMessageImpl(cef_server_handler_t *self, cef_server_t *server, int connection_id, void *data, UIntPtr data_size) { var instance = GetInstance((IntPtr)self) as CefServerHandler; if (instance == null || ((ICefServerHandlerPrivate)instance).AvoidOnWebSocketMessage()) { ReleaseIfNonNull((cef_base_ref_counted_t *)server); return; } instance.OnWebSocketMessage(CefServer.Wrap(CefServer.Create, server), connection_id, unchecked ((IntPtr)data), (long)data_size); }
private void add_ref(cef_server_handler_t *self) { lock (SyncRoot) { var result = ++_refct; if (result == 1) { lock (_roots) { _roots.Add((IntPtr)_self, this); } } } }
private static unsafe void OnHttpRequestImpl(cef_server_handler_t *self, cef_server_t *server, int connection_id, cef_string_t *client_address, cef_request_t *request) { var instance = GetInstance((IntPtr)self) as CefServerHandler; if (instance == null || ((ICefServerHandlerPrivate)instance).AvoidOnHttpRequest()) { ReleaseIfNonNull((cef_base_ref_counted_t *)server); ReleaseIfNonNull((cef_base_ref_counted_t *)request); return; } instance.OnHttpRequest(CefServer.Wrap(CefServer.Create, server), connection_id, CefString.Read(client_address), CefRequest.Wrap(CefRequest.Create, request)); }
private int release(cef_server_handler_t *self) { lock (SyncRoot) { var result = --_refct; if (result == 0) { lock (_roots) { _roots.Remove((IntPtr)_self); } return(1); } return(0); } }
public CefServerHandler() { cef_server_handler_t *self = this.NativeInstance; self->on_server_created = (void *)Marshal.GetFunctionPointerForDelegate(fnOnServerCreated); self->on_server_destroyed = (void *)Marshal.GetFunctionPointerForDelegate(fnOnServerDestroyed); self->on_client_connected = (void *)Marshal.GetFunctionPointerForDelegate(fnOnClientConnected); self->on_client_disconnected = (void *)Marshal.GetFunctionPointerForDelegate(fnOnClientDisconnected); self->on_http_request = (void *)Marshal.GetFunctionPointerForDelegate(fnOnHttpRequest); self->on_web_socket_request = (void *)Marshal.GetFunctionPointerForDelegate(fnOnWebSocketRequest); self->on_web_socket_connected = (void *)Marshal.GetFunctionPointerForDelegate(fnOnWebSocketConnected); self->on_web_socket_message = (void *)Marshal.GetFunctionPointerForDelegate(fnOnWebSocketMessage); }
public CefServerHandler() { cef_server_handler_t *self = this.NativeInstance; #if NET_LESS_5_0 self->on_server_created = (void *)Marshal.GetFunctionPointerForDelegate(fnOnServerCreated); self->on_server_destroyed = (void *)Marshal.GetFunctionPointerForDelegate(fnOnServerDestroyed); self->on_client_connected = (void *)Marshal.GetFunctionPointerForDelegate(fnOnClientConnected); self->on_client_disconnected = (void *)Marshal.GetFunctionPointerForDelegate(fnOnClientDisconnected); self->on_http_request = (void *)Marshal.GetFunctionPointerForDelegate(fnOnHttpRequest); self->on_web_socket_request = (void *)Marshal.GetFunctionPointerForDelegate(fnOnWebSocketRequest); self->on_web_socket_connected = (void *)Marshal.GetFunctionPointerForDelegate(fnOnWebSocketConnected); self->on_web_socket_message = (void *)Marshal.GetFunctionPointerForDelegate(fnOnWebSocketMessage); #else self->on_server_created = (delegate * unmanaged[Stdcall] < cef_server_handler_t *, cef_server_t *, void >) & OnServerCreatedImpl; self->on_server_destroyed = (delegate * unmanaged[Stdcall] < cef_server_handler_t *, cef_server_t *, void >) & OnServerDestroyedImpl; self->on_client_connected = (delegate * unmanaged[Stdcall] < cef_server_handler_t *, cef_server_t *, int, void >) & OnClientConnectedImpl; self->on_client_disconnected = (delegate * unmanaged[Stdcall] < cef_server_handler_t *, cef_server_t *, int, void >) & OnClientDisconnectedImpl; self->on_http_request = (delegate * unmanaged[Stdcall] < cef_server_handler_t *, cef_server_t *, int, cef_string_t *, cef_request_t *, void >) & OnHttpRequestImpl; self->on_web_socket_request = (delegate * unmanaged[Stdcall] < cef_server_handler_t *, cef_server_t *, int, cef_string_t *, cef_request_t *, cef_callback_t *, void >) & OnWebSocketRequestImpl; self->on_web_socket_connected = (delegate * unmanaged[Stdcall] < cef_server_handler_t *, cef_server_t *, int, void >) & OnWebSocketConnectedImpl; self->on_web_socket_message = (delegate * unmanaged[Stdcall] < cef_server_handler_t *, cef_server_t *, int, void *, UIntPtr, void >) & OnWebSocketMessageImpl; #endif }
internal static void Free(cef_server_handler_t *ptr) { Marshal.FreeHGlobal((IntPtr)ptr); }
public CefServerHandler(cef_server_handler_t *instance) : base((cef_base_ref_counted_t *)instance) { }
public static extern void create(cef_string_t *address, ushort port, int backlog, cef_server_handler_t *handler);
private int has_one_ref(cef_server_handler_t *self) { lock (SyncRoot) { return(_refct == 1 ? 1 : 0); } }
private int has_at_least_one_ref(cef_server_handler_t *self) { lock (SyncRoot) { return(_refct != 0 ? 1 : 0); } }