class ZSTDS::Dictionary

ZSTDS::Dictionary class.

Constants

FINALIZE_DEFAULTS

Current finalize defaults.

FINALIZE_DICTIONARY_DEFAULTS

Current finalize dictionary defaults.

TRAIN_DEFAULTS

Current train defaults.

Attributes

buffer[R]

Reads current buffer binary data.

Public Class Methods

finalize(content, samples, options = {}) click to toggle source

Finalizes dictionary. Uses content binary data. Uses samples list of binary datas. Uses options options hash. Option gvl is global interpreter lock enabled. Option max_size max size of dictionary buffer. Option dictionary_options standard dictionary options hash. Returns dictionary based on new buffer.

# File lib/zstds/dictionary.rb, line 75
def self.finalize(content, samples, options = {})
  Validation.validate_string content
  raise ValidateError, "content should not be empty" if content.empty?

  validate_samples samples

  Validation.validate_hash options

  options = FINALIZE_DEFAULTS.merge options

  Validation.validate_bool                 options[:gvl]
  Validation.validate_not_negative_integer options[:max_size]
  Validation.validate_hash                 options[:dictionary_options]

  dictionary_options = FINALIZE_DICTIONARY_DEFAULTS.merge options[:dictionary_options]

  compression_level = dictionary_options[:compression_level]
  Validation.validate_integer compression_level
  raise ValidateError, "invalid compression level" if
    compression_level < Option::MIN_COMPRESSION_LEVEL || compression_level > Option::MAX_COMPRESSION_LEVEL

  Validation.validate_not_negative_integer dictionary_options[:notification_level]
  Validation.validate_not_negative_integer dictionary_options[:dictionary_id]

  buffer = finalize_buffer content, samples, options
  new buffer
end
new(buffer) click to toggle source

Initializes compressor. Uses buffer binary data.

# File lib/zstds/dictionary.rb, line 40
def initialize(buffer)
  Validation.validate_string buffer
  raise ValidateError, "dictionary buffer should not be empty" if buffer.empty?

  @buffer = buffer
end
train(samples, options = {}) click to toggle source

Trains dictionary. Uses samples list of binary datas. Uses options options hash. Option gvl is global interpreter lock enabled. Option capacity capacity of dictionary buffer. Returns dictionary based on new buffer.

# File lib/zstds/dictionary.rb, line 53
def self.train(samples, options = {})
  validate_samples samples

  Validation.validate_hash options

  options = TRAIN_DEFAULTS.merge options

  Validation.validate_bool                 options[:gvl]
  Validation.validate_not_negative_integer options[:capacity]

  buffer = train_buffer samples, options
  new buffer
end
validate_samples(samples) click to toggle source

Raises error when samples are not list of not empty strings.

# File lib/zstds/dictionary.rb, line 104
def self.validate_samples(samples)
  Validation.validate_array samples

  samples.each do |sample|
    Validation.validate_string sample
    raise ValidateError, "dictionary sample should not be empty" if sample.empty?
  end
end

Public Instance Methods

header_size() click to toggle source

Returns current dictionary header size.

# File lib/zstds/dictionary.rb, line 119
def header_size
  self.class.get_header_size @buffer
end
id() click to toggle source

Returns current dictionary id.

# File lib/zstds/dictionary.rb, line 114
def id
  self.class.get_buffer_id @buffer
end