FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
TensorFlow.NET/src/TensorFlowNET.Core/Status/Status.cs at master · murmansoft/TensorFlow.NET · GitHub
murmansoft
/
TensorFlow.NET
Public
forked from
SciSharp/TensorFlow.NET
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
TensorFlow.NET
/
src
/
TensorFlowNET.Core
/
Status
/
Status.cs
Copy path
More file actions
More file actions
Latest commit
History
History
History
105 lines (90 loc) · 3.19 KB
Breadcrumbs
TensorFlow.NET
/
src
/
TensorFlowNET.Core
/
Status
/
Status.cs
Copy path
File metadata and controls
105 lines (90 loc) · 3.19 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/*****************************************************************************
Copyright 2018 The TensorFlow.NET Authors. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
******************************************************************************/
using
System
;
using
System
.
Diagnostics
;
using
System
.
Runtime
.
CompilerServices
;
using
Tensorflow
.
Util
;
using
static
Tensorflow
.
c_api
;
namespace
Tensorflow
{
/// <summary>
/// TF_Status holds error information. It either has an OK code, or
/// else an error code with an associated error message.
/// </summary>
public
sealed
class
Status
{
/// <summary>
/// Error message
/// </summary>
public
string
Message
{
get
{
using
(
_handle
.
Lease
(
)
)
{
return
StringPiece
(
TF_Message
(
_handle
)
)
;
}
}
}
/// <summary>
/// Error code
/// </summary>
public
TF_Code
Code
=>
TF_GetCode
(
_handle
)
;
SafeStatusHandle
_handle
{
get
;
}
public
Status
(
)
{
_handle
=
TF_NewStatus
(
)
;
}
public
Status
(
SafeStatusHandle
handle
)
{
_handle
=
handle
??
throw
new
ArgumentNullException
(
nameof
(
handle
)
)
;
}
public
void
SetStatus
(
TF_Code
code
,
string
msg
)
{
TF_SetStatus
(
_handle
,
code
,
msg
)
;
}
public
bool
ok
(
)
=>
Code
==
TF_Code
.
TF_OK
;
/// <summary>
/// Check status
/// Throw exception with error message if code != TF_OK
/// </summary>
/// <exception cref="TensorflowException">When the returned check is not TF_Code.TF_OK</exception>
[
MethodImpl
(
MethodImplOptions
.
AggressiveInlining
)
]
[
DebuggerHidden
]
public
void
Check
(
bool
throwException
=
false
)
{
if
(
Code
!=
TF_Code
.
TF_OK
)
{
var
message
=
Message
;
if
(
throwException
)
{
switch
(
Code
)
{
case
TF_Code
.
TF_OUT_OF_RANGE
:
throw
new
OutOfRangeError
(
message
)
;
case
TF_Code
.
TF_INVALID_ARGUMENT
:
throw
new
InvalidArgumentError
(
message
)
;
default
:
throw
new
TensorflowException
(
message
)
;
}
}
}
}
public
override
string
ToString
(
)
=>
$
"
{
Code
}
0x
{
_handle
.
DangerousGetHandle
(
)
:
x16
}
"
;
public
static
implicit
operator
SafeStatusHandle
(
Status
status
)
{
return
status
.
_handle
;
}
}
}
Back
|
FazBrowse Home
|
New Git URL