Commit 2bf04824 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

hookup QueryEndpoint and QueryService

parent 134247da
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -51,5 +51,13 @@ void HTTPMessage::addBody(const std::string& body) {
  addHeader("Content-Length", std::to_string(body_.size()));
}

std::unique_ptr<util::InputStream> HTTPMessage::getBodyInputStream() const {
  return util::StringInputStream::fromString(body_);
}

std::unique_ptr<util::OutputStream> HTTPMessage::getBodyOutputStream() {
  return util::StringOutputStream::fromString(&body_);
}

}
}
+5 −0
Original line number Diff line number Diff line
@@ -12,6 +12,8 @@
#include <vector>
#include <string>
#include <utility>
#include <fnordmetric/util/inputstream.h>
#include <fnordmetric/util/outputstream.h>

namespace fnordmetric {
namespace http {
@@ -28,6 +30,9 @@ public:
  const std::string& getBody() const;
  void addBody(const std::string& body);

  std::unique_ptr<util::InputStream> getBodyInputStream() const;
  std::unique_ptr<util::OutputStream> getBodyOutputStream();

protected:
  std::string version_;
  static std::string kEmptyHeader;
+0 −1
Original line number Diff line number Diff line
@@ -49,7 +49,6 @@ public:
        width,
        height,
        class_name.c_str());

    indent_ ++;
    appendLine("<style type='text/css'>\n");
    appendLine("<![CDATA[%s  ]]>\n", kStyleSheetDefault.c_str());
+22 −0
Original line number Diff line number Diff line
@@ -32,6 +32,28 @@ size_t OutputStream::write(const std::string& data) {
  return write(data.c_str(), data.size());
}

// FIXPAUL: variable size buffer
size_t OutputStream::printf(const char* format, ...) {
  char buf[4096];

  va_list args;
  va_start(args, format);
  int pos = vsnprintf(buf, sizeof(buf), format, args);
  va_end(args);

  if (pos < 0) {
    RAISE_ERRNO(RuntimeException, "vsnprintf() failed");
  }

  if (pos < sizeof(buf)) {
    write(buf, pos);
  } else {
    RAISE_ERRNO(RuntimeException, "vsnprintf() failed: value too large");
  }

  return pos;
}

std::unique_ptr<FileOutputStream> FileOutputStream::openFile(
    const std::string& file_path,
    int flags /* = O_CREAT | O_TRUNC */,
+1 −3
Original line number Diff line number Diff line
@@ -42,10 +42,8 @@ public:
   * @param size then number of bytes to be written
   */
  virtual size_t write(const char* data, size_t size) = 0;

  virtual size_t printf(const char* format, ...) {} // FIXPAUL

  virtual size_t write(const std::string& data);
  virtual size_t printf(const char* format, ...);

  mutable std::mutex mutex_;
};
Loading