using System; using System.Collections.Generic; using System.Text; namespace Tensorflow { /// /// TF_Status holds error information. It either has an OK code, or /// else an error code with an associated error message. /// public class Status { private readonly IntPtr _handle; /// /// Error message /// public string Message => c_api.StringPiece(c_api.TF_Message(_handle)); /// /// Error code /// public TF_Code Code => c_api.TF_GetCode(_handle); public Status() { _handle = c_api.TF_NewStatus(); } public void SetStatus(TF_Code code, string msg) { c_api.TF_SetStatus(_handle, code, msg); } /// /// Check status /// Throw exception with error message if code != TF_OK /// public void Check() { if(Code != TF_Code.TF_OK) { Console.WriteLine(Message); // throw new Exception(Message); } } public static implicit operator IntPtr(Status status) { return status._handle; } public void Dispose() { c_api.TF_DeleteStatus(_handle); } } }