TL; DR
Скажем, я реализую класс, который реализует API, который возвращает HANDLE
.Скажем, мой класс является владельцем HANDLE
и несет ответственность за его создание, обновление и закрытие.
Как запретить вызывающим программам моего API закрывать мой дескриптор и нарушать мой дизайн?
BACKGROUND
CreateToolhelp32Snapshot
- это дорогостоящий вызов, и его следует использовать с умом.У меня много проектов в моем решении, и каждый из них небрежно вызывает CreateToolhelp32Snapshot
.
Я хочу реализовать класс-обертку, который обеспечивает «умный» доступ к CreateToolhelp32Snapshot
.
Мой класс будет владельцем HADNLE
, возвращаемого CreateToolhelp32Snapshot
, и обновит его(повторно вызывайте CreateToolhelp32Snapshot
), когда это необходимо (еще не полностью определите, когда это необходимо).
Для простоты давайте предположим, что мое приложение представляет собой один процесс и поток, а мой класс имеет только один экземпляр.