Esempio n. 1
0
 private void CheckSelf(cef_server_handler_t *self)
 {
     if (_self != self)
     {
         throw ExceptionBuilder.InvalidSelfReference();
     }
 }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
 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);
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
 private void add_ref(cef_server_handler_t *self)
 {
     lock (SyncRoot)
     {
         var result = ++_refct;
         if (result == 1)
         {
             lock (_roots) { _roots.Add((IntPtr)_self, this); }
         }
     }
 }
Esempio n. 13
0
        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));
        }
Esempio n. 14
0
 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);
     }
 }
Esempio n. 15
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);
        }
Esempio n. 16
0
        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
        }
Esempio n. 17
0
 internal static void Free(cef_server_handler_t *ptr)
 {
     Marshal.FreeHGlobal((IntPtr)ptr);
 }
Esempio n. 18
0
 public CefServerHandler(cef_server_handler_t *instance)
     : base((cef_base_ref_counted_t *)instance)
 {
 }
Esempio n. 19
0
 public static extern void create(cef_string_t *address, ushort port, int backlog, cef_server_handler_t *handler);
Esempio n. 20
0
 private int has_one_ref(cef_server_handler_t *self)
 {
     lock (SyncRoot) { return(_refct == 1 ? 1 : 0); }
 }
Esempio n. 21
0
 private int has_at_least_one_ref(cef_server_handler_t *self)
 {
     lock (SyncRoot) { return(_refct != 0 ? 1 : 0); }
 }