You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

SafeLLamaHandleBase.cs 924 B

123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. using System.Runtime.InteropServices;
  3. namespace LLama.Native
  4. {
  5. /// <summary>
  6. /// Base class for all llama handles to native resources
  7. /// </summary>
  8. public abstract class SafeLLamaHandleBase
  9. : SafeHandle
  10. {
  11. private protected SafeLLamaHandleBase()
  12. : base(IntPtr.Zero, ownsHandle: true)
  13. {
  14. }
  15. private protected SafeLLamaHandleBase(IntPtr handle)
  16. : base(IntPtr.Zero, ownsHandle: true)
  17. {
  18. SetHandle(handle);
  19. }
  20. private protected SafeLLamaHandleBase(IntPtr handle, bool ownsHandle)
  21. : base(IntPtr.Zero, ownsHandle)
  22. {
  23. SetHandle(handle);
  24. }
  25. /// <inheritdoc />
  26. public override bool IsInvalid => handle == IntPtr.Zero;
  27. /// <inheritdoc />
  28. public override string ToString()
  29. => $"0x{handle.ToString("x16")}";
  30. }
  31. }