<commit_before>/**
 * This file is part of the "FnordMetric" project
 *   Copyright (c) 2011-2014 <NAME>, Google Inc.
 *
 * FnordMetric is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License v3.0. You should have received a
 * copy of the GNU General Public License along with this program. If not, see
 * <http://www.gnu.org/licenses/>.
 */
#ifndef _FNORDMETRIC_DRAWABLE_H
#define _FNORDMETRIC_DRAWABLE_H
#include <tuple>
#include <functional>
#include <fnordmetric/base/series.h>
#include <fnordmetric/ui/viewport.h>

namespace fnordmetric {
namespace ui {
class RenderTarget;
class Canvas;

// FIXPAUL: rename to chart
class Drawable {
  friend class Canvas;
public:

  Drawable(Canvas* canvas) : canvas_(canvas) {}
  virtual ~Drawable() {}

  /**
   * Add an axis to the chart. This method should only be called after all
   * series have been added to the chart.
   *
   * The returned pointer is owned by the canvas object and must not be freed
   * by the caller!
   *
   * @param position the position/placement of the axis
   */
   virtual AxisDefinition* addAxis(AxisDefinition::kPosition position) = 0;

protected:

  virtual void render(RenderTarget* target, Viewport* viewport) const = 0;

  Canvas* canvas_;
};

}
}
#endif
<commit_msg>domainconfig stub<commit_after>/**
 * This file is part of the "FnordMetric" project
 *   Copyright (c) 2011-2014 <NAME>, Google Inc.
 *
 * FnordMetric is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License v3.0. You should have received a
 * copy of the GNU General Public License along with this program. If not, see
 * <http://www.gnu.org/licenses/>.
 */
#ifndef _FNORDMETRIC_DRAWABLE_H
#define _FNORDMETRIC_DRAWABLE_H
#include <tuple>
#include <functional>
#include <fnordmetric/base/series.h>
#include <fnordmetric/ui/axisdefinition.h>
#include <fnordmetric/ui/viewport.h>

namespace fnordmetric {
namespace ui {
class RenderTarget;
class Canvas;

// FIXPAUL: rename to chart
class Drawable {
  friend class Canvas;
public:

  Drawable(Canvas* canvas) : canvas_(canvas) {}
  virtual ~Drawable() {}

  /**
   * Add an axis to the chart. This method should only be called after all
   * series have been added to the chart.
   *
   * The returned pointer is owned by the canvas object and must not be freed
   * by the caller!
   *
   * @param position the position/placement of the axis
   */
   virtual AxisDefinition* addAxis(AxisDefinition::kPosition position) = 0;

protected:

  virtual void render(RenderTarget* target, Viewport* viewport) const = 0;

  Canvas* canvas_;
};

}
}
#endif

{'fraction_non_alphanumeric': 0.0940203083866115, 'fraction_numerical': 0.009025949605114705, 'mean_word_length': 3.9168207024029575, 'pattern_counts': {'":': 0, '<': 16, '<?xml version=': 0, '>': 16, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3332144', 'n_tokens_mistral': 838, 'n_tokens_neox': 807, 'n_words': 309}