OSDN Git Service

Whole new data model structures support
[ntch/develop.git] / src / _2ch / model_property.c
diff --git a/src/_2ch/model_property.c b/src/_2ch/model_property.c
new file mode 100644 (file)
index 0000000..81dc76a
--- /dev/null
@@ -0,0 +1,402 @@
+/* Copyright 2013 Akira Ohta (akohta001@gmail.com)
+    This file is part of ntch.
+
+    The ntch is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    The ntch is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with ntch.  If not, see <http://www.gnu.org/licenses/>.
+    
+*/
+#include <stdlib.h>
+#include <assert.h>
+
+#define MODEL_2CH_PRIVATE_DATA
+
+#include "utils/nt_std_t.h"
+#include "utils/text.h"
+#include "html/html_string.h"
+#include "_2ch/model_2ch.h"
+
+const wchar_t* nt_category_get_name(nt_category_handle h_category)
+{
+       nt_category_tp categoryp;
+       assert(h_category);
+       assert(h_category->chk_sum == NT_2CH_CATEGORY_CHK_SUM);
+       categoryp = (nt_category_tp)h_category;
+       assert(categoryp->name);
+       return categoryp->name;
+}
+
+int nt_category_get_board_count(nt_category_handle h_category)
+{
+       nt_category_tp categoryp;
+       assert(h_category);
+       assert(h_category->chk_sum == NT_2CH_CATEGORY_CHK_SUM);
+       categoryp = (nt_category_tp)h_category;
+       if(!categoryp->boardlistp)
+               return 0;
+       return nt_link_num(categoryp->boardlistp);
+}
+
+const wchar_t* nt_board_get_name(nt_board_handle h_board)
+{
+       nt_board_tp boardp;
+       assert(h_board);
+       assert(h_board->chk_sum == NT_2CH_BOARD_CHK_SUM);
+       boardp = (nt_board_tp)h_board;
+       assert(boardp->name);
+       return boardp->name;
+}
+
+const wchar_t* nt_board_get_address(nt_board_handle h_board)
+{
+       nt_board_tp boardp;
+       assert(h_board);
+       assert(h_board->chk_sum == NT_2CH_BOARD_CHK_SUM);
+       boardp = (nt_board_tp)h_board;
+       assert(boardp->address);
+       return boardp->address;
+}
+
+int nt_board_get_thread_count(nt_board_handle h_board)
+{
+       nt_board_tp boardp;
+       assert(h_board);
+       assert(h_board->chk_sum == NT_2CH_BOARD_CHK_SUM);
+       boardp = (nt_board_tp)h_board;
+       if(!boardp->threadlistp)
+               return 0;
+       return nt_link_num(boardp->threadlistp);
+}
+
+int nt_thread_get_seq_number(nt_thread_handle h_thread)
+{
+       nt_thread_tp threadp;
+       assert(h_thread);
+       assert(h_thread->chk_sum == NT_2CH_THREAD_CHK_SUM);
+       threadp = (nt_thread_tp)h_thread;
+       return threadp->seq_no;
+}
+
+const wchar_t* nt_thread_get_title(nt_thread_handle h_thread)
+{
+       nt_thread_tp threadp;
+       assert(h_thread);
+       assert(h_thread->chk_sum == NT_2CH_THREAD_CHK_SUM);
+       threadp = (nt_thread_tp)h_thread;
+       assert(threadp->name);
+       return threadp->name;
+}
+
+const wchar_t* nt_thread_get_dat_name(nt_thread_handle h_thread)
+{
+       nt_thread_tp threadp;
+       assert(h_thread);
+       assert(h_thread->chk_sum == NT_2CH_THREAD_CHK_SUM);
+       threadp = (nt_thread_tp)h_thread;
+       assert(threadp->file_name);
+       return threadp->file_name;
+}
+
+int nt_thread_get_res_count(nt_thread_handle h_thread)
+{
+       nt_thread_tp threadp;
+       assert(h_thread);
+       assert(h_thread->chk_sum == NT_2CH_THREAD_CHK_SUM);
+       threadp = (nt_thread_tp)h_thread;
+       return threadp->num_res;
+}
+
+int nt_res_get_seq_number(nt_res_handle h_res)
+{
+       nt_res_tp resp;
+       assert(h_res);
+       assert(h_res->chk_sum == NT_2CH_RES_CHK_SUM);
+       resp = (nt_res_tp)h_res;
+       return resp->seq_no;
+}
+
+const wchar_t* nt_res_get_name(nt_res_handle h_res)
+{
+       nt_res_tp resp;
+       assert(h_res);
+       assert(h_res->chk_sum == NT_2CH_RES_CHK_SUM);
+       resp = (nt_res_tp)h_res;
+       assert(resp->name);
+       return resp->name;
+}
+
+const wchar_t* nt_res_get_mail(nt_res_handle h_res)
+{
+       nt_res_tp resp;
+       assert(h_res);
+       assert(h_res->chk_sum == NT_2CH_RES_CHK_SUM);
+       resp = (nt_res_tp)h_res;
+       assert(resp->mail);
+       return resp->mail;
+}
+
+const wchar_t* nt_res_get_misc(nt_res_handle h_res)
+{
+       nt_res_tp resp;
+       assert(h_res);
+       assert(h_res->chk_sum == NT_2CH_RES_CHK_SUM);
+       resp = (nt_res_tp)h_res;
+       assert(resp->misc);
+       return resp->misc;
+}
+
+const wchar_t* nt_res_get_msg(nt_res_handle h_res)
+{
+       nt_res_tp resp;
+       assert(h_res);
+       assert(h_res->chk_sum == NT_2CH_RES_CHK_SUM);
+       resp = (nt_res_tp)h_res;
+       assert(resp->msg);
+       return resp->msg;
+}
+
+const wchar_t* nt_2ch_selected_item_get_board_name(
+                       nt_2ch_selected_item_handle h_select)
+{
+       nt_2ch_selected_item_tp selectp;
+       assert(h_select);
+       assert(h_select->chk_sum == NT_2CH_SELECTED_ITEM_CHK_SUM);
+       selectp = (nt_2ch_selected_item_tp)h_select;
+       if(!selectp->selected_boardp)
+               return NULL;
+       return nt_board_get_name(&selectp->selected_boardp->handle);
+}
+
+const wchar_t* nt_2ch_selected_item_get_thread_title(
+                       nt_2ch_selected_item_handle h_select)
+{
+       nt_2ch_selected_item_tp selectp;
+       assert(h_select);
+       assert(h_select->chk_sum == NT_2CH_SELECTED_ITEM_CHK_SUM);
+       selectp = (nt_2ch_selected_item_tp)h_select;
+       if(!selectp->selected_threadp)
+               return NULL;
+       return nt_thread_get_title(&selectp->selected_threadp->handle);
+}
+
+const wchar_t* nt_2ch_selected_item_get_thread_dat_name(
+                       nt_2ch_selected_item_handle h_select)
+{
+       nt_2ch_selected_item_tp selectp;
+       assert(h_select);
+       assert(h_select->chk_sum == NT_2CH_SELECTED_ITEM_CHK_SUM);
+       selectp = (nt_2ch_selected_item_tp)h_select;
+       if(!selectp->selected_threadp)
+               return NULL;
+       return nt_thread_get_dat_name(&selectp->selected_threadp->handle);
+}
+
+const wchar_t* nt_write_data_get_status_msg(
+                       nt_write_data_handle h_write_data)
+{
+       nt_write_data_tp writep;
+       assert(h_write_data);
+       assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
+       writep = (nt_write_data_tp)h_write_data;
+       if(!writep->status_msg)
+               return NULL;
+       return writep->status_msg;
+}
+
+const wchar_t* nt_write_data_get_html_result(
+                       nt_write_data_handle h_write_data)
+{
+       nt_write_data_tp writep;
+       assert(h_write_data);
+       assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
+       writep = (nt_write_data_tp)h_write_data;
+       if(!writep->result_html)
+               return NULL;
+       return writep->result_html;
+}
+
+const char* nt_write_data_get_name(nt_write_data_handle h_write_data)
+{
+       nt_write_data_tp writep;
+       assert(h_write_data);
+       assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
+       writep = (nt_write_data_tp)h_write_data;
+       return writep->name;
+}
+
+const char* nt_write_data_get_mail(nt_write_data_handle h_write_data)
+{
+       nt_write_data_tp writep;
+       assert(h_write_data);
+       assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
+       writep = (nt_write_data_tp)h_write_data;
+       return writep->mail;
+}
+
+const char* nt_write_data_get_msg(nt_write_data_handle h_write_data)
+{
+       nt_write_data_tp writep;
+       assert(h_write_data);
+       assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
+       writep = (nt_write_data_tp)h_write_data;
+       return writep->msg;
+}
+
+void nt_write_data_set_status_msg(
+                       nt_write_data_handle h_write_data, const wchar_t *status_msg)
+{
+       nt_write_data_tp writep;
+       assert(h_write_data);
+       assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
+       writep = (nt_write_data_tp)h_write_data;
+       if(writep->status_msg)
+               free(writep->status_msg);
+       writep->status_msg = nt_w_str_clone(status_msg);
+}
+
+void nt_write_data_set_html_result(
+                       nt_write_data_handle h_write_data, const wchar_t *html_result)
+{
+       nt_write_data_tp writep;
+       assert(h_write_data);
+       assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
+       writep = (nt_write_data_tp)h_write_data;
+       if(writep->result_html)
+               free(writep->result_html);
+       writep->result_html = nt_w_str_clone(html_result);
+}
+
+void nt_write_data_set_name(
+                       nt_write_data_handle h_write_data, const char *name)
+{
+       nt_write_data_tp writep;
+       assert(h_write_data);
+       assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
+       writep = (nt_write_data_tp)h_write_data;
+       if(writep->name)
+               free(writep->name);
+       writep->name = nt_str_clone(name);
+}
+
+void nt_write_data_set_mail(
+                       nt_write_data_handle h_write_data, const char *mail)
+{
+       nt_write_data_tp writep;
+       assert(h_write_data);
+       assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
+       writep = (nt_write_data_tp)h_write_data;
+       if(writep->mail)
+               free(writep->mail);
+       writep->mail = nt_str_clone(mail);
+}
+
+void nt_write_data_set_msg(
+                       nt_write_data_handle h_write_data, const char *msg)
+{
+       nt_write_data_tp writep;
+       assert(h_write_data);
+       assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
+       writep = (nt_write_data_tp)h_write_data;
+       if(writep->msg)
+               free(writep->msg);
+       writep->msg = nt_str_clone(msg);
+}
+
+
+void nt_set_selected_board(nt_2ch_selected_item_handle h_select,
+         nt_category_handle h_category, nt_board_handle h_board)
+{
+       nt_2ch_selected_item_tp selectp;
+       assert(h_select);
+       assert(h_category);
+       assert(h_board);
+       assert(h_select->chk_sum == NT_2CH_SELECTED_ITEM_CHK_SUM);
+       assert(h_category->chk_sum == NT_2CH_CATEGORY_CHK_SUM);
+       assert(h_board->chk_sum == NT_2CH_BOARD_CHK_SUM);
+       
+       selectp = (nt_2ch_selected_item_tp)h_select;
+       
+       if(selectp->selected_categoryp != NULL)
+               nt_category_release_ref(&selectp->selected_categoryp->handle);
+       if(selectp->selected_boardp != NULL)
+               nt_board_release_ref(&selectp->selected_boardp->handle);
+       if(selectp->selected_threadp != NULL)
+               nt_thread_release_ref(&selectp->selected_threadp->handle);
+       
+       nt_category_add_ref(h_category);
+       nt_board_add_ref(h_board);
+       
+       selectp->selected_categoryp = (nt_category_tp)h_category;
+       selectp->selected_boardp = (nt_board_tp)h_board;
+       selectp->selected_threadp = NULL;
+       
+}
+
+void nt_set_selected_thread(nt_2ch_selected_item_handle h_select,
+        nt_thread_handle h_thread)
+{
+       nt_2ch_selected_item_tp selectp;
+       assert(h_select);
+       assert(h_thread);
+       assert(h_select->chk_sum == NT_2CH_SELECTED_ITEM_CHK_SUM);
+       assert(h_thread->chk_sum == NT_2CH_THREAD_CHK_SUM);
+       
+       selectp = (nt_2ch_selected_item_tp)h_select;
+       assert(selectp->selected_categoryp);
+       assert(selectp->selected_boardp);
+       
+       if(selectp->selected_threadp != NULL)
+               nt_thread_release_ref(&selectp->selected_threadp->handle);
+       selectp->selected_threadp = (nt_thread_tp)h_thread;
+       nt_thread_add_ref(h_thread);
+}
+
+
+nt_category_handle nt_get_selected_category(nt_2ch_selected_item_handle h_select)
+{
+       nt_2ch_selected_item_tp selectp;
+       assert(h_select);
+       assert(h_select->chk_sum == NT_2CH_SELECTED_ITEM_CHK_SUM);
+       selectp = (nt_2ch_selected_item_tp)h_select;
+       if(!selectp->selected_categoryp)
+               return NULL;
+       nt_category_add_ref(&selectp->selected_categoryp->handle);
+       return &selectp->selected_categoryp->handle;
+}
+
+nt_board_handle nt_get_selected_board(nt_2ch_selected_item_handle h_select)
+{
+       nt_2ch_selected_item_tp selectp;
+       assert(h_select);
+       assert(h_select->chk_sum == NT_2CH_SELECTED_ITEM_CHK_SUM);
+       selectp = (nt_2ch_selected_item_tp)h_select;
+       if(!selectp->selected_boardp)
+               return NULL;
+       nt_board_add_ref(&selectp->selected_boardp->handle);
+       return &selectp->selected_boardp->handle;
+}
+
+nt_thread_handle nt_get_selected_thread(nt_2ch_selected_item_handle h_select)
+{
+       nt_2ch_selected_item_tp selectp;
+       assert(h_select);
+       assert(h_select->chk_sum == NT_2CH_SELECTED_ITEM_CHK_SUM);
+       selectp = (nt_2ch_selected_item_tp)h_select;
+       if(!selectp->selected_threadp)
+               return NULL;
+       nt_thread_add_ref(&selectp->selected_threadp->handle);
+       return &selectp->selected_threadp->handle;
+}
+
+
+
+