stringappend.h 802 B

12345678910111213141516171819202122232425262728293031
  1. /**
  2. * A MergeOperator for rocksdb that implements string append.
  3. * @author Deon Nicholas (dnicholas@fb.com)
  4. * Copyright 2013 Facebook
  5. */
  6. #pragma once
  7. #include "rocksdb/merge_operator.h"
  8. #include "rocksdb/slice.h"
  9. namespace ROCKSDB_NAMESPACE {
  10. class StringAppendOperator : public AssociativeMergeOperator {
  11. public:
  12. // Constructor: specify delimiter
  13. explicit StringAppendOperator(char delim_char);
  14. virtual bool Merge(const Slice& key,
  15. const Slice* existing_value,
  16. const Slice& value,
  17. std::string* new_value,
  18. Logger* logger) const override;
  19. virtual const char* Name() const override;
  20. private:
  21. char delim_; // The delimiter is inserted between elements
  22. };
  23. } // namespace ROCKSDB_NAMESPACE