1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Add GetIDInRange API in idm package

Thanks @aboch

Signed-off-by: Madhu Venugopal <madhu@docker.com>
This commit is contained in:
Madhu Venugopal 2016-11-09 14:07:32 -08:00
parent 1b8698e148
commit cbe520b62c

View file

@ -54,6 +54,19 @@ func (i *Idm) GetSpecificID(id uint64) error {
return i.handle.Set(id - i.start) return i.handle.Set(id - i.start)
} }
// GetIDInRange returns the first available id in the set within a range
func (i *Idm) GetIDInRange(start, end uint64) (uint64, error) {
if i.handle == nil {
return 0, fmt.Errorf("ID set is not initialized")
}
if start < i.start || end > i.end {
return 0, fmt.Errorf("Requested range does not belong to the set")
}
return i.handle.SetAnyInRange(start, end-start)
}
// Release releases the specified id // Release releases the specified id
func (i *Idm) Release(id uint64) { func (i *Idm) Release(id uint64) {
i.handle.Unset(id - i.start) i.handle.Unset(id - i.start)