开发者

Implementing a timer for an auto-logoff feature in an embedded system (Java)

开发者 https://www.devze.com 2023-04-10 09:30 出处:网络
I\'ll try my best to explain the situation at hand. I\'m developing an auto-logoff feature for an authentication application that runs in an embedded system and should work cooperatively with its own

I'll try my best to explain the situation at hand. I'm developing an auto-logoff feature for an authentication application that runs in an embedded system and should work cooperatively with its own internal auto-logout system. First I'll briefly explain the native auto logoff. If I set it to 60 seconds and I'm in one of the system's screens, it will monitor and reset the timer upon user interaction. After being idle for 60 seconds, the system will call the Java authentication application and it logs off. This is easily done. Once an user logs in, the application starts a thread that just waits. When the application is brought back (upon timeout), a call for the notify() method is made, releasing the thread and executing the logout proccess. Relatively simple, right?

Now things get ugly. This embedded system supports multiple Java applications, as it is expected. But the system built-in auto logout will only keep track of things should the user be interacting with one of the system's native screens, if he's using another Java application, it will do nothing. So, in order to counter that, I need to come up with some way to implement an internal timer that works in conjunction with the workings described above.

In other words, should the system be in "Java mode" I need to use a coded timer, anything else I use the timer described in the first paragraph. The system itself doesn't help much, since there's no support to check in which state the machine is, so I'm pretty much left with only Java to do the job.

I've given it a lot of thought today but I'm just stuck. Any fresh ideas?

BTW, it su开发者_开发技巧pports only Java up to 1.4 so no advanced concurrency classes for me.

Edit: I forgot to mention that I can't just code a regular timer, since I can't capture native events from the system (I can capture events from other Java applications though) and a Java timer overrides the native timer function. That's why I need some "coordinate work" between them.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号