feat: Added translation unit for synced enforcer #93
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Signed-off-by: Yash Pandey (YP) yash.btech.cs19@iiitranchi.ac.in
This PR fixes #38
Reference: #90
Description
Most of the functions of SyncedEnforcer were straight-forward to implement but the AutoLoadPolicy needed a workaround since it utilized GoLang's ticker from the "time" module and concurrency. For this, I created a custom concurrent ticker that takes in the duration and a function<void()> for a callback. Then passed in the following to callback of ticker which is called at every tick:
Note that
n
is anatomic_int
which is thread-safe.When StopAutoLoad() is called, the ticker stops all worker threads deployed by the ticker. However, this won't destroy the instance of the ticker. I also created test files to verify everything is implemented correctly. (The test policy won't change in real-time during a test)
Tasks remaining
BatchEnforcer
,BatchWithMatcher
yet to be implemented inEnforcer
.UpdatePolicy
,UpdateNamedPolicy
,UpdatePolicies
andUpdateNamedPolicies
yet to be implemented inEnforcer
.UpdateGroupingPolicy
,UpdateNamedGroupingPolicy
yet to be implemented inEnforcer
.I'll implement this in another PR.