OSDN Git Service

81dc76a70934aed2b2860070ccede57847cce740
[ntch/develop.git] / src / _2ch / model_property.c
1 /* Copyright 2013 Akira Ohta (akohta001@gmail.com)
2     This file is part of ntch.
3
4     The ntch is free software: you can redistribute it and/or modify
5     it under the terms of the GNU General Public License as published by
6     the Free Software Foundation, either version 3 of the License, or
7     (at your option) any later version.
8
9     The ntch is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12     GNU General Public License for more details.
13
14     You should have received a copy of the GNU General Public License
15     along with ntch.  If not, see <http://www.gnu.org/licenses/>.
16     
17 */
18 #include <stdlib.h>
19 #include <assert.h>
20
21 #define MODEL_2CH_PRIVATE_DATA
22
23 #include "utils/nt_std_t.h"
24 #include "utils/text.h"
25 #include "html/html_string.h"
26 #include "_2ch/model_2ch.h"
27
28 const wchar_t* nt_category_get_name(nt_category_handle h_category)
29 {
30         nt_category_tp categoryp;
31         assert(h_category);
32         assert(h_category->chk_sum == NT_2CH_CATEGORY_CHK_SUM);
33         categoryp = (nt_category_tp)h_category;
34         assert(categoryp->name);
35         return categoryp->name;
36 }
37
38 int nt_category_get_board_count(nt_category_handle h_category)
39 {
40         nt_category_tp categoryp;
41         assert(h_category);
42         assert(h_category->chk_sum == NT_2CH_CATEGORY_CHK_SUM);
43         categoryp = (nt_category_tp)h_category;
44         if(!categoryp->boardlistp)
45                 return 0;
46         return nt_link_num(categoryp->boardlistp);
47 }
48
49 const wchar_t* nt_board_get_name(nt_board_handle h_board)
50 {
51         nt_board_tp boardp;
52         assert(h_board);
53         assert(h_board->chk_sum == NT_2CH_BOARD_CHK_SUM);
54         boardp = (nt_board_tp)h_board;
55         assert(boardp->name);
56         return boardp->name;
57 }
58
59 const wchar_t* nt_board_get_address(nt_board_handle h_board)
60 {
61         nt_board_tp boardp;
62         assert(h_board);
63         assert(h_board->chk_sum == NT_2CH_BOARD_CHK_SUM);
64         boardp = (nt_board_tp)h_board;
65         assert(boardp->address);
66         return boardp->address;
67 }
68
69 int nt_board_get_thread_count(nt_board_handle h_board)
70 {
71         nt_board_tp boardp;
72         assert(h_board);
73         assert(h_board->chk_sum == NT_2CH_BOARD_CHK_SUM);
74         boardp = (nt_board_tp)h_board;
75         if(!boardp->threadlistp)
76                 return 0;
77         return nt_link_num(boardp->threadlistp);
78 }
79
80 int nt_thread_get_seq_number(nt_thread_handle h_thread)
81 {
82         nt_thread_tp threadp;
83         assert(h_thread);
84         assert(h_thread->chk_sum == NT_2CH_THREAD_CHK_SUM);
85         threadp = (nt_thread_tp)h_thread;
86         return threadp->seq_no;
87 }
88
89 const wchar_t* nt_thread_get_title(nt_thread_handle h_thread)
90 {
91         nt_thread_tp threadp;
92         assert(h_thread);
93         assert(h_thread->chk_sum == NT_2CH_THREAD_CHK_SUM);
94         threadp = (nt_thread_tp)h_thread;
95         assert(threadp->name);
96         return threadp->name;
97 }
98
99 const wchar_t* nt_thread_get_dat_name(nt_thread_handle h_thread)
100 {
101         nt_thread_tp threadp;
102         assert(h_thread);
103         assert(h_thread->chk_sum == NT_2CH_THREAD_CHK_SUM);
104         threadp = (nt_thread_tp)h_thread;
105         assert(threadp->file_name);
106         return threadp->file_name;
107 }
108
109 int nt_thread_get_res_count(nt_thread_handle h_thread)
110 {
111         nt_thread_tp threadp;
112         assert(h_thread);
113         assert(h_thread->chk_sum == NT_2CH_THREAD_CHK_SUM);
114         threadp = (nt_thread_tp)h_thread;
115         return threadp->num_res;
116 }
117
118 int nt_res_get_seq_number(nt_res_handle h_res)
119 {
120         nt_res_tp resp;
121         assert(h_res);
122         assert(h_res->chk_sum == NT_2CH_RES_CHK_SUM);
123         resp = (nt_res_tp)h_res;
124         return resp->seq_no;
125 }
126
127 const wchar_t* nt_res_get_name(nt_res_handle h_res)
128 {
129         nt_res_tp resp;
130         assert(h_res);
131         assert(h_res->chk_sum == NT_2CH_RES_CHK_SUM);
132         resp = (nt_res_tp)h_res;
133         assert(resp->name);
134         return resp->name;
135 }
136
137 const wchar_t* nt_res_get_mail(nt_res_handle h_res)
138 {
139         nt_res_tp resp;
140         assert(h_res);
141         assert(h_res->chk_sum == NT_2CH_RES_CHK_SUM);
142         resp = (nt_res_tp)h_res;
143         assert(resp->mail);
144         return resp->mail;
145 }
146
147 const wchar_t* nt_res_get_misc(nt_res_handle h_res)
148 {
149         nt_res_tp resp;
150         assert(h_res);
151         assert(h_res->chk_sum == NT_2CH_RES_CHK_SUM);
152         resp = (nt_res_tp)h_res;
153         assert(resp->misc);
154         return resp->misc;
155 }
156
157 const wchar_t* nt_res_get_msg(nt_res_handle h_res)
158 {
159         nt_res_tp resp;
160         assert(h_res);
161         assert(h_res->chk_sum == NT_2CH_RES_CHK_SUM);
162         resp = (nt_res_tp)h_res;
163         assert(resp->msg);
164         return resp->msg;
165 }
166
167 const wchar_t* nt_2ch_selected_item_get_board_name(
168                         nt_2ch_selected_item_handle h_select)
169 {
170         nt_2ch_selected_item_tp selectp;
171         assert(h_select);
172         assert(h_select->chk_sum == NT_2CH_SELECTED_ITEM_CHK_SUM);
173         selectp = (nt_2ch_selected_item_tp)h_select;
174         if(!selectp->selected_boardp)
175                 return NULL;
176         return nt_board_get_name(&selectp->selected_boardp->handle);
177 }
178
179 const wchar_t* nt_2ch_selected_item_get_thread_title(
180                         nt_2ch_selected_item_handle h_select)
181 {
182         nt_2ch_selected_item_tp selectp;
183         assert(h_select);
184         assert(h_select->chk_sum == NT_2CH_SELECTED_ITEM_CHK_SUM);
185         selectp = (nt_2ch_selected_item_tp)h_select;
186         if(!selectp->selected_threadp)
187                 return NULL;
188         return nt_thread_get_title(&selectp->selected_threadp->handle);
189 }
190
191 const wchar_t* nt_2ch_selected_item_get_thread_dat_name(
192                         nt_2ch_selected_item_handle h_select)
193 {
194         nt_2ch_selected_item_tp selectp;
195         assert(h_select);
196         assert(h_select->chk_sum == NT_2CH_SELECTED_ITEM_CHK_SUM);
197         selectp = (nt_2ch_selected_item_tp)h_select;
198         if(!selectp->selected_threadp)
199                 return NULL;
200         return nt_thread_get_dat_name(&selectp->selected_threadp->handle);
201 }
202
203 const wchar_t* nt_write_data_get_status_msg(
204                         nt_write_data_handle h_write_data)
205 {
206         nt_write_data_tp writep;
207         assert(h_write_data);
208         assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
209         writep = (nt_write_data_tp)h_write_data;
210         if(!writep->status_msg)
211                 return NULL;
212         return writep->status_msg;
213 }
214
215 const wchar_t* nt_write_data_get_html_result(
216                         nt_write_data_handle h_write_data)
217 {
218         nt_write_data_tp writep;
219         assert(h_write_data);
220         assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
221         writep = (nt_write_data_tp)h_write_data;
222         if(!writep->result_html)
223                 return NULL;
224         return writep->result_html;
225 }
226
227 const char* nt_write_data_get_name(nt_write_data_handle h_write_data)
228 {
229         nt_write_data_tp writep;
230         assert(h_write_data);
231         assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
232         writep = (nt_write_data_tp)h_write_data;
233         return writep->name;
234 }
235
236 const char* nt_write_data_get_mail(nt_write_data_handle h_write_data)
237 {
238         nt_write_data_tp writep;
239         assert(h_write_data);
240         assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
241         writep = (nt_write_data_tp)h_write_data;
242         return writep->mail;
243 }
244
245 const char* nt_write_data_get_msg(nt_write_data_handle h_write_data)
246 {
247         nt_write_data_tp writep;
248         assert(h_write_data);
249         assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
250         writep = (nt_write_data_tp)h_write_data;
251         return writep->msg;
252 }
253
254 void nt_write_data_set_status_msg(
255                         nt_write_data_handle h_write_data, const wchar_t *status_msg)
256 {
257         nt_write_data_tp writep;
258         assert(h_write_data);
259         assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
260         writep = (nt_write_data_tp)h_write_data;
261         if(writep->status_msg)
262                 free(writep->status_msg);
263         writep->status_msg = nt_w_str_clone(status_msg);
264 }
265
266 void nt_write_data_set_html_result(
267                         nt_write_data_handle h_write_data, const wchar_t *html_result)
268 {
269         nt_write_data_tp writep;
270         assert(h_write_data);
271         assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
272         writep = (nt_write_data_tp)h_write_data;
273         if(writep->result_html)
274                 free(writep->result_html);
275         writep->result_html = nt_w_str_clone(html_result);
276 }
277
278 void nt_write_data_set_name(
279                         nt_write_data_handle h_write_data, const char *name)
280 {
281         nt_write_data_tp writep;
282         assert(h_write_data);
283         assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
284         writep = (nt_write_data_tp)h_write_data;
285         if(writep->name)
286                 free(writep->name);
287         writep->name = nt_str_clone(name);
288 }
289
290 void nt_write_data_set_mail(
291                         nt_write_data_handle h_write_data, const char *mail)
292 {
293         nt_write_data_tp writep;
294         assert(h_write_data);
295         assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
296         writep = (nt_write_data_tp)h_write_data;
297         if(writep->mail)
298                 free(writep->mail);
299         writep->mail = nt_str_clone(mail);
300 }
301
302 void nt_write_data_set_msg(
303                         nt_write_data_handle h_write_data, const char *msg)
304 {
305         nt_write_data_tp writep;
306         assert(h_write_data);
307         assert(h_write_data->chk_sum == NT_2CH_WRITE_DATA_CHK_SUM);
308         writep = (nt_write_data_tp)h_write_data;
309         if(writep->msg)
310                 free(writep->msg);
311         writep->msg = nt_str_clone(msg);
312 }
313
314
315 void nt_set_selected_board(nt_2ch_selected_item_handle h_select,
316          nt_category_handle h_category, nt_board_handle h_board)
317 {
318         nt_2ch_selected_item_tp selectp;
319         assert(h_select);
320         assert(h_category);
321         assert(h_board);
322         assert(h_select->chk_sum == NT_2CH_SELECTED_ITEM_CHK_SUM);
323         assert(h_category->chk_sum == NT_2CH_CATEGORY_CHK_SUM);
324         assert(h_board->chk_sum == NT_2CH_BOARD_CHK_SUM);
325         
326         selectp = (nt_2ch_selected_item_tp)h_select;
327         
328         if(selectp->selected_categoryp != NULL)
329                 nt_category_release_ref(&selectp->selected_categoryp->handle);
330         if(selectp->selected_boardp != NULL)
331                 nt_board_release_ref(&selectp->selected_boardp->handle);
332         if(selectp->selected_threadp != NULL)
333                 nt_thread_release_ref(&selectp->selected_threadp->handle);
334         
335         nt_category_add_ref(h_category);
336         nt_board_add_ref(h_board);
337         
338         selectp->selected_categoryp = (nt_category_tp)h_category;
339         selectp->selected_boardp = (nt_board_tp)h_board;
340         selectp->selected_threadp = NULL;
341         
342 }
343
344 void nt_set_selected_thread(nt_2ch_selected_item_handle h_select,
345         nt_thread_handle h_thread)
346 {
347         nt_2ch_selected_item_tp selectp;
348         assert(h_select);
349         assert(h_thread);
350         assert(h_select->chk_sum == NT_2CH_SELECTED_ITEM_CHK_SUM);
351         assert(h_thread->chk_sum == NT_2CH_THREAD_CHK_SUM);
352         
353         selectp = (nt_2ch_selected_item_tp)h_select;
354         assert(selectp->selected_categoryp);
355         assert(selectp->selected_boardp);
356         
357         if(selectp->selected_threadp != NULL)
358                 nt_thread_release_ref(&selectp->selected_threadp->handle);
359         selectp->selected_threadp = (nt_thread_tp)h_thread;
360         nt_thread_add_ref(h_thread);
361 }
362
363
364 nt_category_handle nt_get_selected_category(nt_2ch_selected_item_handle h_select)
365 {
366         nt_2ch_selected_item_tp selectp;
367         assert(h_select);
368         assert(h_select->chk_sum == NT_2CH_SELECTED_ITEM_CHK_SUM);
369         selectp = (nt_2ch_selected_item_tp)h_select;
370         if(!selectp->selected_categoryp)
371                 return NULL;
372         nt_category_add_ref(&selectp->selected_categoryp->handle);
373         return &selectp->selected_categoryp->handle;
374 }
375
376 nt_board_handle nt_get_selected_board(nt_2ch_selected_item_handle h_select)
377 {
378         nt_2ch_selected_item_tp selectp;
379         assert(h_select);
380         assert(h_select->chk_sum == NT_2CH_SELECTED_ITEM_CHK_SUM);
381         selectp = (nt_2ch_selected_item_tp)h_select;
382         if(!selectp->selected_boardp)
383                 return NULL;
384         nt_board_add_ref(&selectp->selected_boardp->handle);
385         return &selectp->selected_boardp->handle;
386 }
387
388 nt_thread_handle nt_get_selected_thread(nt_2ch_selected_item_handle h_select)
389 {
390         nt_2ch_selected_item_tp selectp;
391         assert(h_select);
392         assert(h_select->chk_sum == NT_2CH_SELECTED_ITEM_CHK_SUM);
393         selectp = (nt_2ch_selected_item_tp)h_select;
394         if(!selectp->selected_threadp)
395                 return NULL;
396         nt_thread_add_ref(&selectp->selected_threadp->handle);
397         return &selectp->selected_threadp->handle;
398 }
399
400
401
402