OSDN Git Service

Async HTTP GET is implemented. HTTP Header class is implemented.
[fukui-no-namari/dialektos.git] / src / bbs_detail_base.hxx
index 73a0841..8967d96 100644 (file)
@@ -22,6 +22,9 @@
 #define BBS_DETAIL_BASE_HXX
 
 #include <string>
+#include <vector>
+#include "board_subject_item.hxx"
+#include "http_header.hxx"
 
 
 namespace dialektos {
@@ -37,14 +40,29 @@ class Base {
 public:
   Base(const std::string& uri, const std::string& host,
       const std::string& board, const std::string& thread);
-  Base* clone(const Base& rhs) const;
+  Base* clone() const;
   virtual ~Base();
   virtual std::string get_board_dir_path() const;
   virtual std::string get_thread_file_path() const;
+  virtual std::string get_thread_idx_path() const;
+  virtual std::string get_thread_dat_uri() const;
+  virtual std::string get_another_thread_uri(const std::string& thread) const;
+  virtual std::string get_board_subject_path() const;
+  virtual std::string get_board_subject_uri() const;
+  virtual std::string get_board_subject_idx_path() const;
+  virtual std::string get_board_idx_dir_path() const;
+  virtual http::Header get_board_subject_request_header() const;
+  virtual http::Header get_thread_dat_request_header() const;
+  virtual std::string get_title_from_string(const std::string& dat) const;
 
   virtual const std::string& get_encoding() const;
 
   virtual void load_thread(text_view::Layoutable& output) const;
+  virtual void load_thread_from_string(
+      const std::string& dat, text_view::Layoutable& output) const;
+  virtual void load_subject(std::vector<SubjectItem>& output) const;
+  virtual void load_subject_from_string(
+      const std::string&, std::vector<SubjectItem>& output) const;
 
   bool is_board() const;
   bool is_thread() const;
@@ -55,7 +73,7 @@ public:
 protected:
   explicit Base(const Base& rhs);
 private:
-  virtual Base* do_clone(const Base& rhs) const;
+  virtual Base* do_clone() const;
 
 protected:
   virtual const std::string& get_bbs_name() const;