Class: Tensorflow::Status

Inherits:
Object
  • Object
show all
Defined in:
lib/tensorflow/status.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeStatus

Returns a new instance of Status.



19
20
21
22
# File 'lib/tensorflow/status.rb', line 19

def initialize
  @pointer = FFI.TF_NewStatus
  ObjectSpace.define_finalizer(self, self.class.finalize(@pointer))
end

Class Method Details

.checkObject



11
12
13
14
15
16
17
# File 'lib/tensorflow/status.rb', line 11

def self.check
  status = Status.new
  result = yield status
  status.check
  status = nil
  result
end

.finalize(pointer) ⇒ Object



5
6
7
8
9
# File 'lib/tensorflow/status.rb', line 5

def self.finalize(pointer)
  proc do
    FFI::TF_DeleteStatus(pointer)
  end
end

Instance Method Details

#checkObject



40
41
42
43
44
45
46
47
# File 'lib/tensorflow/status.rb', line 40

def check
  if self.code != :tf_ok
    camel_case = self.code[3..-1].capitalize
    camel_case.gsub!(/(?:_|(\/))([a-z\d]*)/i) {"#{$1}#{$2.capitalize}"}
    error_klass = Tensorflow::Error.const_get("#{camel_case}Error")
    raise(error_klass, self.message)
  end
end

#codeObject



28
29
30
# File 'lib/tensorflow/status.rb', line 28

def code
  FFI.TF_GetCode(self)
end

#messageObject



32
33
34
# File 'lib/tensorflow/status.rb', line 32

def message
  FFI.TF_Message(self)
end

#set(code, message) ⇒ Object



36
37
38
# File 'lib/tensorflow/status.rb', line 36

def set(code, message)
  FFI.TF_SetStatus(self, code, message)
end

#to_ptrObject



24
25
26
# File 'lib/tensorflow/status.rb', line 24

def to_ptr
  @pointer
end