Class: ContentData::DynamicContentData
- Inherits:
-
Object
- Object
- ContentData::DynamicContentData
- Defined in:
- lib/content_data/dynamic_content_data.rb
Overview
TODO(kolman): When content data is immutable, remove the clones (waste).
Class Method Summary collapse
Instance Method Summary collapse
- #add_instance(checksum, size, server_name, path, modification_time) ⇒ Object
- #each_instance(&block) ⇒ Object
- #exists?(checksum) ⇒ Boolean
-
#initialize ⇒ DynamicContentData
constructor
A new instance of DynamicContentData.
- #last_content_data ⇒ Object
- #remove_instance(location, checksum = nil) ⇒ Object
- #stats_by_location(location) ⇒ Object
- #update(content_data) ⇒ Object
Constructor Details
#initialize ⇒ DynamicContentData
Returns a new instance of DynamicContentData.
10 11 12 13 14 15 16 17 18 |
# File 'lib/content_data/dynamic_content_data.rb', line 10 def initialize() ObjectSpace.define_finalizer(self, self.class.method(:finalize).to_proc) if Params['enable_monitoring'] ::ContentServer::Globals.process_vars.inc('obj add DynamicContentData') end @last_content_data = nil @last_content_data_available_mutex = Mutex.new end |
Class Method Details
.finalize(id) ⇒ Object
20 21 22 23 24 |
# File 'lib/content_data/dynamic_content_data.rb', line 20 def self.finalize(id) if Params['enable_monitoring'] ::ContentServer::Globals.process_vars.inc('obj rem DynamicContentData') end end |
Instance Method Details
#add_instance(checksum, size, server_name, path, modification_time) ⇒ Object
50 51 52 53 54 |
# File 'lib/content_data/dynamic_content_data.rb', line 50 def add_instance(checksum, size, server_name, path, modification_time) @last_content_data_available_mutex.synchronize { @last_content_data.add_instance(checksum, size, server_name, path, modification_time) } end |
#each_instance(&block) ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/content_data/dynamic_content_data.rb', line 42 def each_instance(&block) ref = nil @last_content_data_available_mutex.synchronize { ref = @last_content_data } ref.each_instance(&block) end |
#exists?(checksum) ⇒ Boolean
33 34 35 36 37 38 39 40 |
# File 'lib/content_data/dynamic_content_data.rb', line 33 def exists?(checksum) ref = nil @last_content_data_available_mutex.synchronize { ref = @last_content_data } return ref.content_exists(checksum) if ref != nil false end |
#last_content_data ⇒ Object
70 71 72 73 74 75 76 |
# File 'lib/content_data/dynamic_content_data.rb', line 70 def last_content_data ref = nil @last_content_data_available_mutex.synchronize { ref = @last_content_data } return ref end |
#remove_instance(location, checksum = nil) ⇒ Object
56 57 58 59 60 |
# File 'lib/content_data/dynamic_content_data.rb', line 56 def remove_instance(location, checksum=nil) @last_content_data_available_mutex.synchronize { @last_content_data.remove_instance(location, checksum) } end |
#stats_by_location(location) ⇒ Object
62 63 64 65 66 67 68 |
# File 'lib/content_data/dynamic_content_data.rb', line 62 def stats_by_location(location) ref = nil @last_content_data_available_mutex.synchronize { ref = @last_content_data } return ref.stats_by_location(location) end |
#update(content_data) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/content_data/dynamic_content_data.rb', line 26 def update(content_data) @last_content_data_available_mutex.synchronize { @last_content_data = content_data Log.debug2("updating last content data:#{@last_content_data}\n") } end |