Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Method to get the name of the Callback registered in the Task #169

Open
georgevbsantiago opened this issue Jul 10, 2023 · 7 comments
Open

Comments

@georgevbsantiago
Copy link

Hello @arkhipenko

First of all, THANK YOU SO MUCH for this fantastic library!!!

A doubt. Is there a method to get the current callback name of the task?
In this case, when we use Task as a finite state machine, it would be interesting to know which Callback is registered in Task.

Ex:

void function_01 () { ... }

void function_02 () { ... }

void function_03 () { ... }

task.setCallback(&function_01);
...
task.setCallback(&function_02);
....
task.setCallback(&function_03);
....
    if( equal(task.getCallback(), &function_02) ) {
    
    ....
    }
@arkhipenko
Copy link
Owner

I never needed this functionality and it was not asked for until now, hence it does not exist in the current version.

@georgevbsantiago
Copy link
Author

I'm using Task as a finite state machine to manage the messages on the 20x04 Display.
The need to know which Callback is registered in the Task arose from the need to know which message was being viewed on the Display.
If a 'getCallback' method is made available in a future version, it would be possible to identify the current Callback registered in the Task.

Thanks.

@georgevbsantiago
Copy link
Author

I got this idea (to use the Task to visualize the messages on the 20x04 Display) after reading this example from the documentation.
2. "Native" support for finite state machine
https://github.com/arkhipenko/TaskScheduler/wiki/Implementation-scenarios-and-ideas/#2-native-support-for-finite-state-machine

@arkhipenko
Copy link
Owner

If a 'getCallback' method is made available in a future version, it would be possible to identify the current Callback registered in the Task.

The callback is a piece of code, not an object, so it can not really hold a "name". I can have Tasks return a pointer to the current callbacks, and you would need to compare to known pointers to figure out which one is assigned.
Would that satisfy your requirement?

@georgevbsantiago
Copy link
Author

Hi, I believe so.

What would be the proper approach to purchasing the 'getCallback' method with the compared function pointer?
Something like? : task.getCallback() == &function_02

@arkhipenko
Copy link
Owner

Yes, something like that I guess.

@georgevbsantiago
Copy link
Author

I'm a beginner in C++, but maybe this post can help:
https://stackoverflow.com/questions/12898227/comparing-function-pointers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants