[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/orionrobots/cefpython/master/cefpython/python_callback_cef1.pyx [Back]  [Original]

# Copyright (c) 2012-2014 The CEF Python authors. All rights reserved.
# License: New BSD License.
# Website: http://code.google.com/p/cefpython/

cdef dict g_PythonCallbacks = {}
# Next callbackId.
cdef int g_PythonCallbackCount = 0

cpdef int PutPythonCallback(
        object pythonCallback
        ) except *:
    # Called from v8utils.pyx > PyToV8Value().
    global g_PythonCallbacks
    global g_PythonCallbackCount
    g_PythonCallbackCount += 1
    callbackId = g_PythonCallbackCount
    g_PythonCallbacks[callbackId] = pythonCallback
    return callbackId

cpdef object GetPythonCallback(int callbackId):
    global g_PythonCallbacks
    if callbackId not in g_PythonCallbacks:
        raise Exception("GetPythonCallback() failed: invalid callbackId: %s" % callbackId)
    return g_PythonCallbacks[callbackId]

cdef void RemovePythonCallback(
        int callbackId
        ) except * with gil:
    # Called from v8function_handler.h > ~V8FunctionHandler().
    # Added "with gil" as it's called from C++.
    global g_PythonCallbacks
    del g_PythonCallbacks[callbackId]

Web Proxy Viewer  |  New URL  |  Original Page