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);
}
}
}