Commit f43ecac0 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

first round of gcc 4.8 fixes

parent 670f37af
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -150,6 +150,7 @@ endif()
# libfnord
add_definitions("-Wno-predefined-identifier-outside-function")
add_library(fnord-static STATIC ${FNORDMETRIC_SOURCES})
target_link_libraries(fnord-static m)

find_package(MySQL)
if(MYSQL_FOUND)
+8 −2
Original line number Diff line number Diff line
@@ -247,16 +247,22 @@ void ASTNode::debugPrint(int indent /* = 0 */) const {
} // namespace query
} // namespace fnordmetric

namespace fnord {
namespace util {

template <>
std::string fnord::util::inspect<
std::string inspect<
    fnordmetric::query::ASTNode::kASTNodeType>(
    const fnordmetric::query::ASTNode::kASTNodeType& value) {
  return "<ASTNode>";
}

template <>
std::string fnord::util::inspect<
std::string inspect<
    fnordmetric::query::ASTNode>(
    const fnordmetric::query::ASTNode& value) {
  return "<ASTNode>";
}

} // namespace util
} // namespace fnord
+8 −2
Original line number Diff line number Diff line
@@ -174,16 +174,22 @@ const std::string Token::getString() const {
} // namespace query
} // namespace fnordmetric

namespace fnord {
namespace util {

template <>
std::string fnord::util::inspect<
std::string inspect<
    fnordmetric::query::Token::kTokenType>(
    const fnordmetric::query::Token::kTokenType& value) {
  return fnordmetric::query::Token::getTypeName(value);
}

template <>
std::string fnord::util::inspect<
std::string inspect<
    fnordmetric::query::Token>(
    const fnordmetric::query::Token& value) {
  return fnordmetric::query::Token::getTypeName(value.getType());
}

} // namespace util
} // namespace fnord
+10 −10
Original line number Diff line number Diff line
@@ -101,13 +101,13 @@ util::Buffer SSTableReader::readFooter(uint32_t type) {
  return util::Buffer(data, size);
}

std::unique_ptr<Cursor> SSTableReader::getCursor() {
  auto cursor = new Cursor(
std::unique_ptr<SSTableReader::SSTableReaderCursor> SSTableReader::getCursor() {
  auto cursor = new SSTableReaderCursor(
      mmap_,
      header_.headerSize(),
      header_.headerSize() + header_.bodySize());

  return std::unique_ptr<Cursor>(cursor);
  return std::unique_ptr<SSTableReaderCursor>(cursor);
}

size_t SSTableReader::bodySize() const {
@@ -118,7 +118,7 @@ size_t SSTableReader::headerSize() const {
  return header_.userdataSize();
}

SSTableReader::Cursor::Cursor(
SSTableReader::SSTableReaderCursor::SSTableReaderCursor(
    std::shared_ptr<io::MmappedFile> mmap,
    size_t begin,
    size_t limit) :
@@ -127,15 +127,15 @@ SSTableReader::Cursor::Cursor(
    limit_(limit),
    pos_(begin) {}

void SSTableReader::Cursor::seekTo(size_t body_offset) {
void SSTableReader::SSTableReaderCursor::seekTo(size_t body_offset) {
  pos_ = begin_ + body_offset;
}

size_t SSTableReader::Cursor::position() const {
size_t SSTableReader::SSTableReaderCursor::position() const {
  return pos_ - begin_;
}

bool SSTableReader::Cursor::next() {
bool SSTableReader::SSTableReaderCursor::next() {
  auto header = mmap_->structAt<BinaryFormat::RowHeader>(pos_);

  auto next_pos = pos_ += sizeof(BinaryFormat::RowHeader) +
@@ -151,7 +151,7 @@ bool SSTableReader::Cursor::next() {
  return valid();
}

bool SSTableReader::Cursor::valid() {
bool SSTableReader::SSTableReaderCursor::valid() {
  auto header = mmap_->structAt<BinaryFormat::RowHeader>(pos_);

  auto row_limit = pos_ + sizeof(BinaryFormat::RowHeader) +
@@ -161,7 +161,7 @@ bool SSTableReader::Cursor::valid() {
  return header->key_size > 0 && row_limit <= limit_;
}

void SSTableReader::Cursor::getKey(void** data, size_t* size) {
void SSTableReader::SSTableReaderCursor::getKey(void** data, size_t* size) {
  if (!valid()) {
    RAISE(kIllegalStateError, "invalid cursor");
  }
@@ -171,7 +171,7 @@ void SSTableReader::Cursor::getKey(void** data, size_t* size) {
  *size = header->key_size;
}

void SSTableReader::Cursor::getData(void** data, size_t* size) {
void SSTableReader::SSTableReaderCursor::getData(void** data, size_t* size) {
  if (!valid()) {
    RAISE(kIllegalStateError, "invalid cursor");
  }
+20 −22
Original line number Diff line number Diff line
@@ -29,29 +29,9 @@ namespace sstable {
class SSTableReader {
public:

  SSTableReader(io::File&& file);
  SSTableReader(const SSTableReader& other) = delete;
  SSTableReader& operator=(const SSTableReader& other) = delete;
  ~SSTableReader();

  /**
   * Get an sstable cursor for the body of this sstable
   */
  std::unique_ptr<Cursor> getCursor();

  void readHeader(const void** data, size_t* size);
  util::Buffer readHeader();
  void readFooter(uint32_t type, void** data, size_t* size);
  util::Buffer readFooter(uint32_t type);

  size_t bodySize() const;
  size_t headerSize() const;

protected:

  class Cursor : public sstable::Cursor {
  class SSTableReaderCursor : public sstable::Cursor {
  public:
    Cursor(
    SSTableReaderCursor(
        std::shared_ptr<io::MmappedFile> file,
        size_t begin,
        size_t limit);
@@ -69,6 +49,24 @@ protected:
    size_t limit_;
  };

  SSTableReader(io::File&& file);
  SSTableReader(const SSTableReader& other) = delete;
  SSTableReader& operator=(const SSTableReader& other) = delete;
  ~SSTableReader();

  /**
   * Get an sstable cursor for the body of this sstable
   */
  std::unique_ptr<SSTableReaderCursor> getCursor();

  void readHeader(const void** data, size_t* size);
  util::Buffer readHeader();
  void readFooter(uint32_t type, void** data, size_t* size);
  util::Buffer readFooter(uint32_t type);

  size_t bodySize() const;
  size_t headerSize() const;

private:
  std::shared_ptr<io::MmappedFile> mmap_;
  uint64_t file_size_;
Loading