Method: LS4::GatewayService#rpc_read_impl

Defined in:
lib/ls4/service/gateway.rb

#rpc_read_impl(version, key, offset, size) ⇒ Object



135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
# File 'lib/ls4/service/gateway.rb', line 135

def rpc_read_impl(version, key, offset, size)
	ar = MessagePack::RPC::AsyncResult.new
	CachedMDSBus.get_okey(key, version) {|okey,error|
		if error
			$log.warn("failed to get a key from MDS: key=#{key.inspect}: #{error}")
			$log.debug_backtrace error.backtrace if error.is_a?(Exception)
			ar.error(error.to_s)
		elsif okey
			DataClientBus.read(okey, offset, size, true) {|data,error|
				if error
					$log.warn("failed to get data from DS: key=#{key.inspect}: #{error} rsid=#{okey.rsid}")
					$log.debug_backtrace error.backtrace if error.is_a?(Exception)
				end
				#data ||= ""
				ar.result(data)
			}
		else
			ar.result(nil)
		end
	}
	ar
end