text: // Copyright (c) 2011 The LevelDB Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file. See the AUTHORS file for names of contributors.
  
  #define __STDC_FORMAT_MACROS
  #include <inttypes.h>
  
  #include "leveldb/options.h"
  
  #include "leveldb/comparator.h"
  #include "leveldb/env.h"
  #include "leveldb/filter_policy.h"
  #include "util/cache2.h"
  #include "util/crc32c.h"
  
  #if !defined(LEVELDB_VSN)
  #define LEVELDB_VSN develop
  #endif
  
  #define XSTR(x) #x
  #define STR(x) XSTR(x)
  
  namespace leveldb {
  
  Options::Options()
      : comparator(BytewiseComparator()),
        create_if_missing(false),
        error_if_exists(false),
        paranoid_checks(false),
        verify_compactions(true),
        env(Env::Default()),
        info_log(NULL),
        write_buffer_size(60<<20),
        max_open_files(1000),
        block_cache(NULL),
        block_size(4096),
        block_size_steps(16),
        block_restart_interval(16),
        compression(kSnappyCompression),
        filter_policy(NULL),
        is_repair(false),
        is_internal_db(false),
        total_leveldb_mem(2684354560ll),
        block_cache_threshold(32<<20),
        limited_developer_mem(false),
        mmap_size(0),
        delete_threshold(1000),
        fadvise_willneed(false),
        tiered_slow_level(0),
        cache_object_warming(true)
  {
  }
  
  
  void
  Options::Dump(
      Logger * log) const
  {
      Log(log,"                       Version: %s", STR(LEVELDB_VSN));
      Log(log,"            Options.comparator: %s", comparator->Name());
      Log(log,"     Options.create_if_missing: %d", create_if_missing);
      Log(log,"       Options.error_if_exists: %d", error_if_exists);
      Log(log,"       Options.paranoid_checks: %d", paranoid_checks);
      Log(log,"    Options.verify_compactions: %d", verify_compactions);
      Log(log,"                   Options.env: %p", env);
      Log(log,"              Options.info_log: %p", info_log);
      Log(log,"     Options.write_buffer_size: %zd", write_buffer_size);
      Log(log,"        Options.max_open_files: %d", max_open_files);
      Log(log,"           Options.block_cache: %p", block_cache);
      Log(log,"            Options.block_size: %zd", block_size);
      Log(log,"      Options.block_size_steps: %d", block_size_steps);
      Log(log,"Options.block_restart_interval: %d", block_restart_interval);
      Log(log,"           Options.compression: %d", compression);
      Log(log,"         Options.filter_policy: %s", filter_policy == NULL ? "NULL" : filter_policy->Name());
      Log(log,"             Options.is_repair: %s", is_repair ? "true" : "false");
      Log(log,"        Options.is_internal_db: %s", is_internal_db ? "true" : "false");
      Log(log,"     Options.total_leveldb_mem: %" PRIu64, total_leveldb_mem);
      Log(log," Options.block_cache_threshold: %" PRIu64, block_cache_threshold);
      Log(log," Options.limited_developer_mem: %s", limited_developer_mem ? "true" : "false");
      Log(log,"             Options.mmap_size: %" PRIu64, mmap_size);
      Log(log,"      Options.delete_threshold: %" PRIu64, delete_threshold);
      Log(log,"      Options.fadvise_willneed: %s", fadvise_willneed ? "true" : "false");
      Log(log,"     Options.tiered_slow_level: %d", tiered_slow_level);
      Log(log,"    Options.tiered_fast_prefix: %s", tiered_fast_prefix.c_str());
      Log(log,"    Options.tiered_slow_prefix: %s", tiered_slow_prefix.c_str());
      Log(log,"                        crc32c: %s", crc32c::IsHardwareCRC() ? "hardware" : "software");
      Log(log,"  Options.cache_object_warming: %s", cache_object_warming ? "true" : "false");
  }   // Options::Dump
  
  }  // namespace leveldb
  