perobs 3.0.1 → 3.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/perobs/Array.rb +3 -3
- data/lib/perobs/BTreeBlob.rb +10 -10
- data/lib/perobs/BTreeDB.rb +6 -6
- data/lib/perobs/Cache.rb +2 -2
- data/lib/perobs/ClassMap.rb +2 -2
- data/lib/perobs/DynamoDB.rb +5 -5
- data/lib/perobs/EquiBlobsFile.rb +14 -7
- data/lib/perobs/FlatFile.rb +29 -7
- data/lib/perobs/FlatFileBlobHeader.rb +7 -12
- data/lib/perobs/FlatFileDB.rb +6 -6
- data/lib/perobs/Hash.rb +2 -2
- data/lib/perobs/Object.rb +2 -2
- data/lib/perobs/ObjectBase.rb +1 -1
- data/lib/perobs/SpaceTree.rb +47 -42
- data/lib/perobs/SpaceTreeNode.rb +89 -69
- data/lib/perobs/SpaceTreeNodeCache.rb +84 -11
- data/lib/perobs/SpaceTreeNodeLink.rb +1 -1
- data/lib/perobs/StackFile.rb +1 -1
- data/lib/perobs/Store.rb +14 -14
- data/lib/perobs/TreeDB.rb +7 -7
- data/lib/perobs/version.rb +1 -1
- data/test/Array_spec.rb +4 -4
- data/test/BTreeDB_spec.rb +2 -2
- data/test/SpaceTree_spec.rb +23 -8
- data/test/Store_spec.rb +3 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 985e62db6b84f509a3b390ce11ac96f4215de5ea
|
4
|
+
data.tar.gz: f6747e42300df5c9b55c1a5bbc6adf9822165b7b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ed1499555741de10e6810f62041ffc879a738f488f5ce09860bddae21ed12cf999a8d4303361227a3798f3f389bd6cb9584e71e809b26d0f82fa7cdc6a28544
|
7
|
+
data.tar.gz: 2c56287162c7ae376ecdc091e55655fd37e4985e22914a4e21d74f28eb0c3e054ca543fb7092485ea09605b8a0ad4cc33f13dc96fa19ffcdf5137921c5b145ae
|
data/lib/perobs/Array.rb
CHANGED
@@ -81,7 +81,7 @@ module PEROBS
|
|
81
81
|
# PEROBS users should never call this method or equivalents of derived
|
82
82
|
# methods directly.
|
83
83
|
# @param p [PEROBS::Handle] PEROBS handle
|
84
|
-
# @param size [
|
84
|
+
# @param size [Integer] The requested size of the Array
|
85
85
|
# @param default [Any] The default value that is returned when no value is
|
86
86
|
# stored for a specific key.
|
87
87
|
def initialize(p, size = 0, default = nil)
|
@@ -94,7 +94,7 @@ module PEROBS
|
|
94
94
|
|
95
95
|
# Return a list of all object IDs of all persistend objects that this Array
|
96
96
|
# is referencing.
|
97
|
-
# @return [Array of
|
97
|
+
# @return [Array of Integer] IDs of referenced objects
|
98
98
|
def _referenced_object_ids
|
99
99
|
@data.each.select do |v|
|
100
100
|
v && v.respond_to?(:is_poxreference?)
|
@@ -103,7 +103,7 @@ module PEROBS
|
|
103
103
|
|
104
104
|
# This method should only be used during store repair operations. It will
|
105
105
|
# delete all references to the given object ID.
|
106
|
-
# @param id [
|
106
|
+
# @param id [Integer] targeted object ID
|
107
107
|
def _delete_reference_to_id(id)
|
108
108
|
@data.delete_if do |v|
|
109
109
|
v && v.respond_to?(:is_poxreference?) && v.id == id
|
data/lib/perobs/BTreeBlob.rb
CHANGED
@@ -65,7 +65,7 @@ module PEROBS
|
|
65
65
|
end
|
66
66
|
|
67
67
|
# Write the given bytes with the given ID into the DB.
|
68
|
-
# @param id [
|
68
|
+
# @param id [Integer] ID
|
69
69
|
# @param raw [String] sequence of bytes
|
70
70
|
def write_object(id, raw)
|
71
71
|
if @entries.length > @btreedb.max_blob_size
|
@@ -87,7 +87,7 @@ module PEROBS
|
|
87
87
|
end
|
88
88
|
|
89
89
|
# Read the entry for the given ID and return it as bytes.
|
90
|
-
# @param id [
|
90
|
+
# @param id [Integer] ID
|
91
91
|
# @return [String] sequence of bytes or nil if ID is unknown
|
92
92
|
def read_object(id)
|
93
93
|
return nil unless (index_entry = find(id))
|
@@ -95,7 +95,7 @@ module PEROBS
|
|
95
95
|
end
|
96
96
|
|
97
97
|
# Find the data for the object with given id.
|
98
|
-
# @param id [
|
98
|
+
# @param id [Integer] Object ID
|
99
99
|
# @return [Array] Returns an Array that represents the index entry for the
|
100
100
|
# given object.
|
101
101
|
def find(id)
|
@@ -109,7 +109,7 @@ module PEROBS
|
|
109
109
|
end
|
110
110
|
|
111
111
|
# Set a mark on the entry with the given ID.
|
112
|
-
# @param id [
|
112
|
+
# @param id [Integer] ID of the entry
|
113
113
|
def mark(id)
|
114
114
|
found = false
|
115
115
|
@entries.each do |entry|
|
@@ -129,7 +129,7 @@ module PEROBS
|
|
129
129
|
end
|
130
130
|
|
131
131
|
# Check if the entry for a given ID is marked.
|
132
|
-
# @param id [
|
132
|
+
# @param id [Integer] ID of the entry
|
133
133
|
# @param ignore_errors [Boolean] If set to true no errors will be raised
|
134
134
|
# for non-existing objects.
|
135
135
|
# @return [TrueClass or FalseClass] true if marked, false otherwise
|
@@ -205,8 +205,8 @@ module PEROBS
|
|
205
205
|
|
206
206
|
# Write a string of bytes into the file at the given address.
|
207
207
|
# @param raw [String] bytes to write
|
208
|
-
# @param address [
|
209
|
-
# @return [
|
208
|
+
# @param address [Integer] offset in the file
|
209
|
+
# @return [Integer] number of bytes written
|
210
210
|
def write_to_blobs_file(raw, address)
|
211
211
|
begin
|
212
212
|
File.write(@blobs_file_name, raw, address)
|
@@ -236,9 +236,9 @@ module PEROBS
|
|
236
236
|
|
237
237
|
# Reserve the bytes needed for the specified number of bytes with the
|
238
238
|
# given ID.
|
239
|
-
# @param id [
|
240
|
-
# @param bytes [
|
241
|
-
# @return [
|
239
|
+
# @param id [Integer] ID of the entry
|
240
|
+
# @param bytes [Integer] number of bytes for this entry
|
241
|
+
# @return [Integer] the start address of the reserved blob
|
242
242
|
def reserve_bytes(id, bytes, crc32)
|
243
243
|
# index of first blob after the last seen entry
|
244
244
|
end_of_last_entry = 0
|
data/lib/perobs/BTreeDB.rb
CHANGED
@@ -103,7 +103,7 @@ module PEROBS
|
|
103
103
|
end
|
104
104
|
|
105
105
|
# Return true if the object with given ID exists
|
106
|
-
# @param id [
|
106
|
+
# @param id [Integer]
|
107
107
|
def include?(id)
|
108
108
|
!(blob = find_blob(id)).nil? && !blob.find(id).nil?
|
109
109
|
end
|
@@ -143,7 +143,7 @@ module PEROBS
|
|
143
143
|
end
|
144
144
|
|
145
145
|
# Load the given object from the filesystem.
|
146
|
-
# @param id [
|
146
|
+
# @param id [Integer] object ID
|
147
147
|
# @return [Hash] Object as defined by PEROBS::ObjectBase or nil if ID does
|
148
148
|
# not exist
|
149
149
|
def get_object(id)
|
@@ -166,13 +166,13 @@ module PEROBS
|
|
166
166
|
end
|
167
167
|
|
168
168
|
# Mark an object.
|
169
|
-
# @param id [
|
169
|
+
# @param id [Integer] ID of the object to mark
|
170
170
|
def mark(id)
|
171
171
|
(blob = find_blob(id)) && blob.mark(id)
|
172
172
|
end
|
173
173
|
|
174
174
|
# Check if the object is marked.
|
175
|
-
# @param id [
|
175
|
+
# @param id [Integer] ID of the object to check
|
176
176
|
# @param ignore_errors [Boolean] If set to true no errors will be raised
|
177
177
|
# for non-existing objects.
|
178
178
|
def is_marked?(id, ignore_errors = false)
|
@@ -189,7 +189,7 @@ module PEROBS
|
|
189
189
|
end
|
190
190
|
|
191
191
|
# Check if the stored object is syntactically correct.
|
192
|
-
# @param id [
|
192
|
+
# @param id [Integer] Object ID
|
193
193
|
# @param repair [TrueClass/FalseClass] True if an repair attempt should be
|
194
194
|
# made.
|
195
195
|
# @return [TrueClass/FalseClass] True if the object is OK, otherwise
|
@@ -208,7 +208,7 @@ module PEROBS
|
|
208
208
|
# Store the given serialized object into the cluster files. This method is
|
209
209
|
# for internal use only!
|
210
210
|
# @param raw [String] Serialized Object as defined by PEROBS::ObjectBase
|
211
|
-
# @param id [
|
211
|
+
# @param id [Integer] Object ID
|
212
212
|
def put_raw_object(raw, id)
|
213
213
|
find_blob(id, true).write_object(id, raw)
|
214
214
|
end
|
data/lib/perobs/Cache.rb
CHANGED
@@ -37,7 +37,7 @@ module PEROBS
|
|
37
37
|
class Cache
|
38
38
|
|
39
39
|
# Create a new Cache object.
|
40
|
-
# @param bits [
|
40
|
+
# @param bits [Integer] Number of bits for the cache index. This parameter
|
41
41
|
# heavilty affects the performance and memory consumption of the
|
42
42
|
# cache.
|
43
43
|
def initialize(bits = 16)
|
@@ -94,7 +94,7 @@ module PEROBS
|
|
94
94
|
end
|
95
95
|
|
96
96
|
# Return the PEROBS::Object with the specified ID or nil if not found.
|
97
|
-
# @param id [
|
97
|
+
# @param id [Integer] ID of the cached PEROBS::ObjectBase
|
98
98
|
#def object_by_id(id)
|
99
99
|
# idx = id & @mask
|
100
100
|
# # The index is just a hash. We still need to check if the object IDs are
|
data/lib/perobs/ClassMap.rb
CHANGED
@@ -47,14 +47,14 @@ module PEROBS
|
|
47
47
|
|
48
48
|
# Get the ID for a given class.
|
49
49
|
# @param klass [String] Class
|
50
|
-
# @return [
|
50
|
+
# @return [Integer] ID. If klass is not yet known a new ID will be
|
51
51
|
# allocated.
|
52
52
|
def class_to_id(klass)
|
53
53
|
@by_class[klass] || new_id(klass)
|
54
54
|
end
|
55
55
|
|
56
56
|
# Get the klass for a given ID.
|
57
|
-
# @param id [
|
57
|
+
# @param id [Integer]
|
58
58
|
# @return [String] String version of the class
|
59
59
|
def id_to_class(id)
|
60
60
|
@by_id[id]
|
data/lib/perobs/DynamoDB.rb
CHANGED
@@ -85,7 +85,7 @@ module PEROBS
|
|
85
85
|
end
|
86
86
|
|
87
87
|
# Return true if the object with given ID exists
|
88
|
-
# @param id [
|
88
|
+
# @param id [Integer]
|
89
89
|
def include?(id)
|
90
90
|
!dynamo_get_item(id.to_s).nil?
|
91
91
|
end
|
@@ -116,7 +116,7 @@ module PEROBS
|
|
116
116
|
end
|
117
117
|
|
118
118
|
# Load the given object from the filesystem.
|
119
|
-
# @param id [
|
119
|
+
# @param id [Integer] object ID
|
120
120
|
# @return [Hash] Object as defined by PEROBS::ObjectBase or nil if ID does
|
121
121
|
# not exist
|
122
122
|
def get_object(id)
|
@@ -148,13 +148,13 @@ module PEROBS
|
|
148
148
|
end
|
149
149
|
|
150
150
|
# Mark an object.
|
151
|
-
# @param id [
|
151
|
+
# @param id [Integer] ID of the object to mark
|
152
152
|
def mark(id)
|
153
153
|
dynamo_mark_item(id.to_s, true)
|
154
154
|
end
|
155
155
|
|
156
156
|
# Check if the object is marked.
|
157
|
-
# @param id [
|
157
|
+
# @param id [Integer] ID of the object to check
|
158
158
|
def is_marked?(id)
|
159
159
|
dynamo_is_marked?(id.to_s)
|
160
160
|
end
|
@@ -167,7 +167,7 @@ module PEROBS
|
|
167
167
|
end
|
168
168
|
|
169
169
|
# Check if the stored object is syntactically correct.
|
170
|
-
# @param id [
|
170
|
+
# @param id [Integer] Object ID
|
171
171
|
# @param repair [TrueClass/FalseClass] True if an repair attempt should be
|
172
172
|
# made.
|
173
173
|
# @return [TrueClass/FalseClass] True if the object is OK, otherwise
|
data/lib/perobs/EquiBlobsFile.rb
CHANGED
@@ -45,13 +45,13 @@ module PEROBS
|
|
45
45
|
FIRST_SPACE_OFFSET = 3 * 8
|
46
46
|
HEADER_SIZE = 4 * 8
|
47
47
|
|
48
|
-
attr_reader :total_entries, :total_spaces, :file_name
|
49
|
-
attr_accessor :first_entry
|
48
|
+
attr_reader :total_entries, :total_spaces, :file_name, :first_entry
|
50
49
|
|
51
50
|
# Create a new stack file in the given directory with the given file name.
|
52
51
|
# @param dir [String] Directory
|
53
52
|
# @param name [String] File name
|
54
|
-
# @param entry_bytes [
|
53
|
+
# @param entry_bytes [Integer] Number of bytes each entry must have
|
54
|
+
# @param first_entry_default [Integer] Default address of the first blob
|
55
55
|
def initialize(dir, name, entry_bytes, first_entry_default = 0)
|
56
56
|
@file_name = File.join(dir, name + '.blobs')
|
57
57
|
if entry_bytes < 8
|
@@ -125,9 +125,16 @@ module PEROBS
|
|
125
125
|
write_header
|
126
126
|
end
|
127
127
|
|
128
|
+
# Change the address of the first blob.
|
129
|
+
# @param address [Integer] New address
|
130
|
+
def first_entry=(address)
|
131
|
+
@first_entry = address
|
132
|
+
write_header
|
133
|
+
end
|
134
|
+
|
128
135
|
# Return the address of a free blob storage space. Addresses start at 0
|
129
136
|
# and increase linearly.
|
130
|
-
# @return [
|
137
|
+
# @return [Integer] address of a free blob space
|
131
138
|
def free_address
|
132
139
|
if @first_space == 0
|
133
140
|
# There is currently no free entry. Create a new reserved entry at the
|
@@ -170,7 +177,7 @@ module PEROBS
|
|
170
177
|
|
171
178
|
# Store the given byte blob at the specified address. If the blob space is
|
172
179
|
# already in use the content will be overwritten.
|
173
|
-
# @param address [
|
180
|
+
# @param address [Integer] Address to store the blob
|
174
181
|
# @param bytes [String] bytes to store
|
175
182
|
def store_blob(address, bytes)
|
176
183
|
unless address >= 0
|
@@ -217,7 +224,7 @@ module PEROBS
|
|
217
224
|
end
|
218
225
|
|
219
226
|
# Retrieve a blob from the given address.
|
220
|
-
# @param address [
|
227
|
+
# @param address [Integer] Address to store the blob
|
221
228
|
# @return [String] blob bytes
|
222
229
|
def retrieve_blob(address)
|
223
230
|
unless address > 0
|
@@ -248,7 +255,7 @@ module PEROBS
|
|
248
255
|
end
|
249
256
|
|
250
257
|
# Delete the blob at the given address.
|
251
|
-
# @param address [
|
258
|
+
# @param address [Integer] Address of blob to delete
|
252
259
|
def delete_blob(address)
|
253
260
|
unless address >= 0
|
254
261
|
PEROBS.log.fatal "Blob address must be larger than 0, " +
|
data/lib/perobs/FlatFile.rb
CHANGED
@@ -116,6 +116,7 @@ module PEROBS
|
|
116
116
|
PEROBS.log.fatal "Cannot sync flat file database: #{e.message}"
|
117
117
|
end
|
118
118
|
@index.sync
|
119
|
+
@space_list.sync
|
119
120
|
end
|
120
121
|
|
121
122
|
# Delete the blob for the specified ID.
|
@@ -195,18 +196,25 @@ module PEROBS
|
|
195
196
|
header = FlatFileBlobHeader.read_at(@f, addr)
|
196
197
|
if header.length != length
|
197
198
|
PEROBS.log.fatal "Length in free list (#{length}) and header " +
|
198
|
-
"(#{header.length}) don't match."
|
199
|
+
"(#{header.length}) for address #{addr} don't match."
|
199
200
|
end
|
200
201
|
if raw_obj.length > header.length
|
201
202
|
PEROBS.log.fatal "Object (#{raw_obj.length}) is longer than " +
|
202
203
|
"blob space (#{header.length})."
|
203
204
|
end
|
204
205
|
if header.is_valid?
|
205
|
-
PEROBS.log.fatal "Entry
|
206
|
+
PEROBS.log.fatal "Entry at address #{addr} with flags: " +
|
207
|
+
"#{header.flags} is already used for ID #{header.id}."
|
206
208
|
end
|
207
209
|
end
|
208
210
|
flags = 1 << FlatFileBlobHeader::VALID_FLAG_BIT
|
209
211
|
flags |= (1 << FlatFileBlobHeader::COMPRESSED_FLAG_BIT) if compressed
|
212
|
+
if old_addr && old_header.is_marked?
|
213
|
+
# This method might be called in the middle of an operation that
|
214
|
+
# uses the mark flag. We must ensure that the flag is carried over
|
215
|
+
# to the new header.
|
216
|
+
flags |= (1 << FlatFileBlobHeader::MARK_FLAG_BIT)
|
217
|
+
end
|
210
218
|
FlatFileBlobHeader.new(@f, addr, flags, raw_obj.length, id, crc).write
|
211
219
|
@f.write(raw_obj)
|
212
220
|
if length != -1 && raw_obj.length < length
|
@@ -225,15 +233,19 @@ module PEROBS
|
|
225
233
|
# Register the new space with the space list.
|
226
234
|
@space_list.add_space(space_address, space_length) if space_length > 0
|
227
235
|
end
|
236
|
+
|
237
|
+
# Once the blob has been written we can update the index as well.
|
238
|
+
@index.insert(id, addr)
|
239
|
+
|
228
240
|
if old_addr
|
229
241
|
# If we had an existing object stored for the ID we have to mark
|
230
242
|
# this entry as deleted now.
|
231
243
|
old_header.clear_flags
|
244
|
+
# And register the newly freed space with the space list.
|
245
|
+
@space_list.add_space(old_addr, old_header.length)
|
232
246
|
else
|
233
247
|
@f.flush
|
234
248
|
end
|
235
|
-
# Once the blob has been written we can update the index as well.
|
236
|
-
@index.insert(id, addr)
|
237
249
|
rescue IOError => e
|
238
250
|
PEROBS.log.fatal "Cannot write blob for ID #{id} to FlatFileDB: " +
|
239
251
|
e.message
|
@@ -549,21 +561,31 @@ module PEROBS
|
|
549
561
|
|
550
562
|
each_blob_header do |pos, header|
|
551
563
|
if header.is_valid?
|
552
|
-
@index.
|
564
|
+
if (duplicate_pos = @index.get(header.id))
|
565
|
+
PEROBS.log.error "FlatFile contains multiple blobs for ID " +
|
566
|
+
"#{header.id}. First blob is at address #{duplicate_pos}. " +
|
567
|
+
"Other blob found at address #{pos}."
|
568
|
+
@space_list.add_space(pos, header.length) if header.length > 0
|
569
|
+
discard_damaged_blob(header)
|
570
|
+
else
|
571
|
+
@index.insert(header.id, pos)
|
572
|
+
end
|
553
573
|
else
|
554
574
|
@space_list.add_space(pos, header.length) if header.length > 0
|
555
575
|
end
|
556
576
|
end
|
577
|
+
|
578
|
+
sync
|
557
579
|
end
|
558
580
|
|
559
581
|
def has_space?(address, size)
|
560
582
|
header = FlatFileBlobHeader.read_at(@f, address)
|
561
|
-
header.length == size
|
583
|
+
!header.is_valid? && header.length == size
|
562
584
|
end
|
563
585
|
|
564
586
|
def has_id_at?(id, address)
|
565
587
|
header = FlatFileBlobHeader.read_at(@f, address)
|
566
|
-
header.id == id
|
588
|
+
header.is_valid? && header.id == id
|
567
589
|
end
|
568
590
|
|
569
591
|
def inspect
|
@@ -59,10 +59,10 @@ module PEROBS
|
|
59
59
|
# Create a new FlatFileBlobHeader with the given flags, length, id and crc.
|
60
60
|
# @param file [File] the FlatFile that contains the header
|
61
61
|
# @param addr [Integer] the offset address of the header in the file
|
62
|
-
# @param flags [
|
63
|
-
# @param length [
|
62
|
+
# @param flags [Integer] 8 bit number, see above
|
63
|
+
# @param length [Integer] length of the header in bytes
|
64
64
|
# @param id [Integer] ID of the blob entry
|
65
|
-
# @param crc [
|
65
|
+
# @param crc [Integer] CRC32 checksum of the blob entry
|
66
66
|
def initialize(file, addr, flags, length, id, crc)
|
67
67
|
@file = file
|
68
68
|
@addr = addr
|
@@ -116,7 +116,8 @@ module PEROBS
|
|
116
116
|
header = FlatFileBlobHeader.new(file, addr, *buf.unpack(FORMAT))
|
117
117
|
if id && header.id != id
|
118
118
|
PEROBS.log.fatal "Mismatch between FlatFile index and blob file " +
|
119
|
-
"found
|
119
|
+
"found. FlatFile has entry with ID #{header.id} at address " +
|
120
|
+
"#{addr}. Index has ID #{id} for this address."
|
120
121
|
end
|
121
122
|
|
122
123
|
return header
|
@@ -138,14 +139,8 @@ module PEROBS
|
|
138
139
|
# @param file [File] The file handle of the blob file.
|
139
140
|
# @param addr [Integer] The address of the header
|
140
141
|
def clear_flags
|
141
|
-
|
142
|
-
|
143
|
-
@file.write([ 0 ].pack('C'))
|
144
|
-
@file.flush
|
145
|
-
rescue IOError => e
|
146
|
-
PEROBS.log.fatal "Clearing flags of FlatFileBlobHeader with ID " +
|
147
|
-
"#{@id} failed: #{e.message}"
|
148
|
-
end
|
142
|
+
@flags = 0
|
143
|
+
write_flags
|
149
144
|
end
|
150
145
|
|
151
146
|
# Return true if the header is for a non-empty blob.
|
data/lib/perobs/FlatFileDB.rb
CHANGED
@@ -91,7 +91,7 @@ module PEROBS
|
|
91
91
|
end
|
92
92
|
|
93
93
|
# Return true if the object with given ID exists
|
94
|
-
# @param id [
|
94
|
+
# @param id [Integer]
|
95
95
|
def include?(id)
|
96
96
|
!@flat_file.find_obj_addr_by_id(id).nil?
|
97
97
|
end
|
@@ -131,7 +131,7 @@ module PEROBS
|
|
131
131
|
end
|
132
132
|
|
133
133
|
# Load the given object from the filesystem.
|
134
|
-
# @param id [
|
134
|
+
# @param id [Integer] object ID
|
135
135
|
# @return [Hash] Object as defined by PEROBS::ObjectBase or nil if ID does
|
136
136
|
# not exist
|
137
137
|
def get_object(id)
|
@@ -155,13 +155,13 @@ module PEROBS
|
|
155
155
|
end
|
156
156
|
|
157
157
|
# Mark an object.
|
158
|
-
# @param id [
|
158
|
+
# @param id [Integer] ID of the object to mark
|
159
159
|
def mark(id)
|
160
160
|
@flat_file.mark_obj_by_id(id)
|
161
161
|
end
|
162
162
|
|
163
163
|
# Check if the object is marked.
|
164
|
-
# @param id [
|
164
|
+
# @param id [Integer] ID of the object to check
|
165
165
|
# @param ignore_errors [Boolean] If set to true no errors will be raised
|
166
166
|
# for non-existing objects.
|
167
167
|
def is_marked?(id, ignore_errors = false)
|
@@ -177,7 +177,7 @@ module PEROBS
|
|
177
177
|
end
|
178
178
|
|
179
179
|
# Check if the stored object is syntactically correct.
|
180
|
-
# @param id [
|
180
|
+
# @param id [Integer] Object ID
|
181
181
|
# @param repair [TrueClass/FalseClass] True if an repair attempt should be
|
182
182
|
# made.
|
183
183
|
# @return [TrueClass/FalseClass] True if the object is OK, otherwise
|
@@ -202,7 +202,7 @@ module PEROBS
|
|
202
202
|
# Store the given serialized object into the cluster files. This method is
|
203
203
|
# for internal use only!
|
204
204
|
# @param raw [String] Serialized Object as defined by PEROBS::ObjectBase
|
205
|
-
# @param id [
|
205
|
+
# @param id [Integer] Object ID
|
206
206
|
def put_raw_object(raw, id)
|
207
207
|
@flat_file.write_obj_by_id(id, raw)
|
208
208
|
end
|