class_docstr: Attach SmartCache logic to the engine in Ignite.
  Mainly include the `start`, `update_cache`, and `shutdown` functions of SmartCacheDataset.
class_docstr_tok: ["Attach","SmartCache","logic","to","the","engine","in","Ignite",".","Mainly","include","the","`","start","`",",","`","update_cache","`",",","and","`","shutdown","`","functions","of","SmartCacheDataset","."]
docstr: Callback for train or validation/evaluation started Event.
  Start the replacement thread of SmartCacheDataset.
  
  Args:
      engine: Ignite Engine, it can be a trainer, validator or evaluator.
docstr_tok: ["Callback","for","train","or","validation\/evaluation","started","Event",".","Start","the","replacement","thread","of","SmartCacheDataset",".","Args",":","engine",":","Ignite","Engine",",","it","can","be","a","trainer",",","validator","or","evaluator","."]
code: def started(self, engine: Engine) -> None:
      """Callback for train or validation/evaluation started Event.
      Start the replacement thread of SmartCacheDataset.
  
      Args:
          engine: Ignite Engine, it can be a trainer, validator or evaluator.
      """
      self.smartcacher.start()
  
file_path: MONAI/monai/handlers/smartcache_handler.py
imports: from __future__ import annotations
  from typing import TYPE_CHECKING
  from monai.config import IgniteInfo
  from monai.data import SmartCacheDataset
  from monai.utils import min_version, optional_import
label_desc: Use image node_id 3 for calling the SmartCacheHandler obj's underlying member method code with example usage: obj.started(engine) without return types