Class: Droonga::BufferedTCPSocket::Chunk
- Inherits:
-
Object
- Object
- Droonga::BufferedTCPSocket::Chunk
- Defined in:
- lib/droonga/buffered_tcp_socket.rb
Constant Summary collapse
- SUFFIX =
".chunk"
- WRITING_SUFFIX =
".writing"
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Returns the value of attribute data.
-
#time_stamp ⇒ Object
readonly
Returns the value of attribute time_stamp.
Class Method Summary collapse
Instance Method Summary collapse
- #buffering ⇒ Object
- #failed ⇒ Object
-
#initialize(params) ⇒ Chunk
constructor
A new instance of Chunk.
- #writing ⇒ Object
- #writing? ⇒ Boolean
- #written ⇒ Object
- #written_partial(size) ⇒ Object
Constructor Details
#initialize(params) ⇒ Chunk
Returns a new instance of Chunk.
150 151 152 153 154 155 156 |
# File 'lib/droonga/buffered_tcp_socket.rb', line 150 def initialize(params) @data_directory = params[:directory] @data = params[:data] @time_stamp = params[:time_stamp] || Time.now @uniqueness = params[:uniqueness] @revision = params[:revision] || 0 end |
Instance Attribute Details
#data ⇒ Object (readonly)
Returns the value of attribute data.
149 150 151 |
# File 'lib/droonga/buffered_tcp_socket.rb', line 149 def data @data end |
#time_stamp ⇒ Object (readonly)
Returns the value of attribute time_stamp.
149 150 151 |
# File 'lib/droonga/buffered_tcp_socket.rb', line 149 def time_stamp @time_stamp end |
Class Method Details
.load(path) ⇒ Object
135 136 137 138 139 140 141 142 143 144 145 146 |
# File 'lib/droonga/buffered_tcp_socket.rb', line 135 def load(path) data_directory = path.dirname time_stamp1, time_stamp2, uniqueness, revision, = path.basename.to_s.split(".", 5) data = path.open("rb") {|file| file.read} time_stamp = Time.iso8601("#{time_stamp1}.#{time_stamp2}") revision = Integer(revision) new(:directory => data_directory, :data => data, :time_stamp => time_stamp, :uniqueness => uniqueness, :revision => revision) end |
Instance Method Details
#buffering ⇒ Object
158 159 160 161 162 |
# File 'lib/droonga/buffered_tcp_socket.rb', line 158 def buffering path.open("wb") do |file| file.write(@data) end end |
#failed ⇒ Object
173 174 175 176 |
# File 'lib/droonga/buffered_tcp_socket.rb', line 173 def failed return unless writing? FileUtils.mv(writing_path.to_s, path.to_s) end |
#writing ⇒ Object
164 165 166 167 |
# File 'lib/droonga/buffered_tcp_socket.rb', line 164 def writing raise AlreadyInWritingByOthers.new if writing? FileUtils.mv(path.to_s, writing_path.to_s) end |
#writing? ⇒ Boolean
169 170 171 |
# File 'lib/droonga/buffered_tcp_socket.rb', line 169 def writing? not path.exist? end |
#written ⇒ Object
178 179 180 181 |
# File 'lib/droonga/buffered_tcp_socket.rb', line 178 def written FileUtils.rm_f(path.to_s) FileUtils.rm_f(writing_path.to_s) end |
#written_partial(size) ⇒ Object
183 184 185 186 187 188 |
# File 'lib/droonga/buffered_tcp_socket.rb', line 183 def written_partial(size) written @data = data[size..-1] @revision += 1 buffering end |