Source

cy-cxxfwk / cy / cyfwk.pyx

cimport cyfwk
cimport cpython.ref as cpy_ref
#cimport cpython.cobject as cpy_cobj

cdef class AlgBase:
    cdef CyAlgBase* alg
    def __init__(self):
        print("--> AlgBase.init")
        self.alg = new CyAlgBase(
            <cpy_ref.PyObject*>self,
            <RunFct>cy_run_fct)
    def run(self):
        self.alg.run()
        pass
    def run_impl(self):
        pass

cdef void cy_run_fct(void *ptr):
    cdef AlgBase alg = <AlgBase>(ptr)
    print("--> cy_run_fct...")
    alg.run_impl()
    print("--> cy_run_fct...[done]")

cdef class MyAlg(AlgBase):
    cdef int i
    def __init__(self, i=-1):
        self.i = i
        AlgBase.__init__(self)
        print("--- self.i: %i" % self.i)
    cdef void run_impl(self):
        print("--- myalg.run => %i" % self.i)

cdef public api IAlg* cy_create_alg():
    cdef AlgBase cyalg = MyAlg(42)
    return <IAlg*>(cyalg.alg)

print("==> cyfwk module imported")



    
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.