| -- Licensed to the Apache Software Foundation (ASF) under one | |
| -- or more contributor license agreements. See the NOTICE file | |
| -- distributed with this work for additional information | |
| -- regarding copyright ownership. The ASF licenses this file | |
| -- to you under the Apache License, Version 2.0 (the | |
| -- "License"); you may not use this file except in compliance | |
| -- with the License. You may obtain a copy of the License at | |
| -- | |
| -- https://www.apache.org/licenses/LICENSE-2.0 | |
| -- | |
| -- Unless required by applicable law or agreed to in writing, | |
| -- software distributed under the License is distributed on an | |
| -- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| -- KIND, either express or implied. See the License for the | |
| -- specific language governing permissions and limitations | |
| -- under the License. | |
| local Watcher = {} | |
| Watcher.__index = Watcher | |
| -- setUpdateCallback sets the callback function that the watcher will call | |
| -- when the policy in DB has been changed by other instances. | |
| -- A classic callback is Enforcer:loadPolicy(). | |
| function Watcher:setUpdateCallback(func) | |
| end | |
| -- update calls the update callback of other instances to synchronize their policy. | |
| -- It is usually called after changing the policy in DB, like Enforcer:savePolicy(), | |
| -- Enforcer:AddPolicy(), Enforcer:RemovePolicy(), etc. | |
| function Watcher:update() | |
| end | |
| -- close stops and releases the watcher, the callback function will not be called any more. | |
| function Watcher:close() | |
| end | |
| return Watcher |