IOServiceAddMatchingNotification issue

977 views Asked by At

void functions::start() {

io_iterator_t enumerator;

...some code...

result = IOServiceAddMatchingNotification(
            mNotifyPort,
                                        kIOMatchedNotification,
                                        IOServiceMatching( "IOFireWireLocalNode" ),
                                        serviceMatchingCallback, 
                                        (void *)0x1234,
                                        &enumerator  );    <=====
}

functions.cpp:83: error: argument of type 'void (functions::)(void*, io_iterator_t)' does not match 'void ()(void, io_iterator_t)'


does anyone know what this error mean? I am calling start() from main() through an object of functions ( eg, f->start(); )

i am using xcode and it highlights the line where the arrow points.

Thank you.

1

There are 1 answers

0
lyricat On BEST ANSWER

What is serviceMatchingCallback? Judging by the error, it seems to be a member function. You can't pass a member function as a callback in this manner. See this recent discussion on calling a class member function from a callback.