class Cdisplay_t
{
public:
string section_name; [¿ä¾àÀ̳ª ÇÏÀ̶óÀÌÆÃÀ» ¿øÇÏ´Â ¼½¼ÇÀ̸§]
int highlight_method;
// NONE : ÇÏÀ̶óÀÌÆÃ ÇÏÁö ¾ÊÀ½(¿ä¾à¸¸ ÇÒ ¶§ »ç¿ë)
// INSERTING_TAG_EACH : ÁúÀǾî¿Í ÀÏÄ¡ÇÏ´Â ¼½¼Ç¸¸ ÇÏÀ̶óÀÌÆÃ ÅÂ±× »ðÀÔ
// INSERTING_TAG_ALL : ÁúÀǾî¿Í ¹«°üÇÏ°Ô ¸ðµç ¼½¼ÇÀ» ÇÏÀ̶óÀÌÆÃ ÅÂ±× »ðÀÔ
// LISTING_LOCATION_EACH] : ÁúÀǾî¿Í ÀÏÄ¡ÇÏ´Â ¼½¼Ç¸¸ ÇÏÀ̶óÀÌÆÃ À§Ä¡ ÀúÀå
// LISTING_LOCATION_ALL] : ÁúÀǾî¿Í ¹«°üÇÏ°Ô ¸ðµç ¼½¼Ç¿¡ ´ëÇÑ ÇÏÀ̶óÀÌÆÃ À§Ä¡ ÀúÀå
string start_tag; [INSERTING_TAG_* ¼±Åýÿ¡¸¸ »ç¿ë]
string end_tag; [INSERTING_TAG_* ¼±Åýÿ¡¸¸ »ç¿ë]
int summary_method;
// NONE : ¿ä¾à »ç¿ëÇÏÁö ¾ÊÀ½
// NORMAL_SUMMARY : ÀÌ ¹æ¹ýÀ» »ç¿ëÇØ¾ß ÇÔ
// SPECIAL_SUMMARY : ÇöÀç »ç¿ëµÇÁö ¾Ê´Â ¿É¼Ç
unsigned int summary_length; [¿ä¾àµÇ´Â ¹®¼ ±æÀÌ]
....
};
ÁÖÀÇ : java¿¡¼´Â Cdisplay_t ´ë½Å¿¡ DisplayType Ŭ·¡½º¸¦ »ç¿ëÇØ¾ß Çϰí,
Á¤ÀÇµÈ »ó¼ö¾Õ¿¡ KristalHeader¸¦ ºÙ¿©¾ß ÇÑ´Ù.
¿¹) INSERTING_TAG_EACH ===> KristalHeader.INSERTING_TAG_ALL
GET_DOCUMENTS_FROM_RESULT³ª GET_DOCUMENTS_WITH_IDS¿¡¼ À§ ±¸Á¶Ã¼¿¡ ´ëÇÑ ¾Æ¹« ¼¼ÆÃµµ ÇÏÁö ¾Ê´Â´Ù¸é "¿ä¾à"°ú "ÇÏÀ̶óÀÌÆÃ"Àº ¼öÇàµÇÁö ¾Ê´Â´Ù.LISTING_LOCATION_EACH´Â "ÁúÀǾî"¿¡ Á¾¼ÓµÈ °á°ú¸¦ °®°Ô µÈ´Ù.
¸ðµç ¼½¼Ç¿¡ "ÇÏÀ̶óÀÌÆÃ"À» LISTING_LOCATION_EACH·Î ÁöÁ¤ÇÑ °æ¿ì, ÁúÀǾ ((TIK : Á¤º¸) & (ABS : °Ë»ö)) À̾ú´Ù¸é, TIK¼½¼Ç¿¡¼´Â "Á¤º¸"¶ó´Â ´Ü¾î¸¸ ÇÏÀ̶óÀÌÆÃ µÇ°í, ABS ¼½¼Ç¿¡¼´Â "°Ë»ö"À̶ó´Â ´Ü¾î¸¸ ÇÏÀ̶óÀÌÆÃ µÈ´Ù. ³ª¸ÓÁö ¼½¼ÇµéÀº ÇÏÀ̶óÀÌÆÃÀÌ Àû¿ëµÇÁö ¾Ê´Â´Ù
LISTING_LOCATION_ALL¸¦ »ç¿ëÇß´Ù¸é "Á¤º¸","°Ë»ö"À̶ó´Â ´Ü¾î¸¦ Æ÷ÇÔÇϰí ÀÖ´Â ¸ðµç ¼½¼ÇÀÌ ÇÏÀ̶óÀÌÆÃ µÈ´Ù.
¼µÎ¿¡¼ ¾ð±ÞÇÑ °Íó·³ "¿ä¾à" ¹× "ÇÏÀ̶óÀÌÆÃ"Àº GET_DOCUMENTS_FROM_RESULT¿Í GET_DOCUMENTS_WITH_IDS ÇÁ·ÎÅäÄÝ¿¡¼ Ãß°¡ÀûÀ¸·Î »ç¿ëÇÏ´Â ¹æ½ÄÀ¸·Î, µÎ ÇÁ·ÎÅäÄÝ¿¡¼ ¾à°£ÀÇ Â÷À̰¡ ÀÖÀ¸¹Ç·Î ³ª´©¾î¼ ¼³¸íÇÑ´Ù.
InParameter
vectordisplays; [¿ä¾à ¹× ÇÏÀ̶óÀÌÆÃ ¹æ½Ä ¼¼ÆÃÀ» À§ÇÑ ±¸Á¶Ã¼] unsigned int set_id; [¼Â¹øÈ£] unsigned int start_position; [½ÃÀÛÀ§Ä¡] unsigned int counter; [¹®¼°³¼ö] vector section_namelist; [°¡Á®¿Ã ¼½¼Ç(µé)]
OutParameter
vectordocuments; [¹®¼¸®½ºÆ®] long unsigned int service_time; [½ÇÇà½Ã°£]
Example
vector section_namelist; // °£·«º¸±â¿¡¼ Ãâ·ÂÇÒ ¼½¼Ç¸í
// ¿äûÀ» ó¸®ÇÒ Å¬·¡½º¸¦ »ý¼º
// »ý¼ºÀÚÀÇ ¸Å°³º¯¼ö·Î ó¸®ÇÒ DB ¼ºñ½ºÀÇ ÁÖ¼Ò¿Í Æ÷Æ®¹øÈ£¸¦ ÀÔ·Â
ClientLIB clientLib(SERVER_IP, SERVER_PORT);
Cparameter_t p_in, p_out; // ¸Å°³º¯¼ö Ŭ·¡½º ¼±¾ð
int doc_num = 10; // 10°³ ¹®¼ Ãâ·Â
unsigned int start_pos = 0; // ½ÃÀÛ ¹®¼ÀÇ offset
//section_namelist.push_back("TIK"); // Ãâ·ÂÇÒ ¼½¼Ç¸®½ºÆ®(Ãß°¡ ÁöÁ¤ °¡´É)
section_namelist.push_back(ALL_SECTIONS); // Ãâ·ÂÇÒ ¼½¼Ç¸®½ºÆ®(Àüü¼½¼Ç)
p_in.set_id = 1; // ¼Â ½Äº°ÀÚ ÁöÁ¤
p_in.start_position = start_pos; // °¡Á®¿Ã ½ÃÀÛ À§Ä¡ ÁöÁ¤
p_in.counter = 1; // °¡Á®¿Ã ¹®¼ °³¼ö ÁöÁ¤
p_in.section_namelist = section_namelist; // Ãâ·ÂÇÒ ¼½¼Ç À̸§ ÁöÁ¤
// ¿ä¾à ¹× ÇÏÀ̶óÀÌÆÃ ÁöÁ¤
Cdisplay_t adisplay;
adisplay.section_name = "TIK"; // ¼½¼Ç ÁöÁ¤
adisplay.highlight_method = INSERTING_TAG_EACH; // ÇÏÀ̶óÀÌÆÃ ¹æ¹ý ÁöÁ¤
adisplay.start_tag = "<font color=red>"; // ÇÏÀ̶óÀÌÆÃ ¹æ¹ýÀÌ INSERTING_TAG_* ÀÎ °æ¿ì¿¡¸¸ ÁöÁ¤
adisplay.end_tag = "</font>"; // ÇÏÀ̶óÀÌÆÃ ¹æ¹ýÀÌ INSERTING_TAG_* ÀÎ °æ¿ì¿¡¸¸ ÁöÁ¤
adisplay.summary_method = NORMAL_SUMMARY; // ¿ä¾à ¹æ¹ý ÁöÁ¤
adisplay.summary_length = 32; // ¿ä¾à ±æÀÌ
p_in.displays.push_back(adisplay);
// °Ë»ö °á°ú ¹®¼ °¡Á®¿À±â
RedirectStdoutInit(); // ¿äû ¼öÇà Áß¿¡ Ãâ·ÂµÇ´Â ¸Þ½ÃÁö ¸·À½...
ret_val = clientLib.Request("GET_DOCUMENTS_FROM_RESULT", p_in, p_out);
RedirectStdoutClose();
if (ret_val != 0) {
cout << "ERROR : " << p_out.errmsg << "(" << p_out.errcode << ")" << endl;
return -1;
}
InParameter
vectordisplays; [¿ä¾à ¹× ÇÏÀ̶óÀÌÆÃ ¹æ½Ä ¼¼ÆÃÀ» À§ÇÑ ±¸Á¶Ã¼] unsigned int set_id; [¼Â¹øÈ£ : À§ displays¸¦ ¼¼ÆÃÇÑ °æ¿ì¿¡¸¸ »ç¿ëµÈ´Ù] vector documents; [°¡Á®¿Ã ¹®¼(µé)ÀÇ Å×À̺í½Äº°ÀÚ¿Í ¹®¼½Äº°ÀÚ ¼¼ÆÃ] vector section_namelist; [°¡Á®¿Ã ¼½¼Ç(µé)]
OutParameter
vectordocuments; [°¡Á®¿Â ¹®¼(µé)] long unsigned int service_time; [½ÇÇà½Ã°£]
Example
// ÀоîµéÀÏ ¼½¼Ç ÁöÁ¤(Àüü¸¦ ÁöÁ¤ÇÏ·Á¸é ALL_SECTIONS¸¦ »ç¿ë)
//section_namelist.push_back("TIK");
section_namelist.push_back(ALL_SECTIONS); // Àüü ¼½¼Ç ÁöÁ¤
// »ý¼ºÀÚÀÇ ¸Å°³º¯¼ö·Î ó¸®ÇÒ DB ¼ºñ½ºÀÇ ÁÖ¼Ò¿Í Æ÷Æ®¹øÈ£¸¦ ÀÔ·Â
ClientLIB clientLib(SERVER_IP, SERVER_PORT);
Cparameter_t p_in, p_out; // ¸Å°³º¯¼ö Ŭ·¡½º ¼±¾ð
Cdocument_t doc;
doc.table_id = table_id; // Å×ÀÌºí ½Äº°ÀÚ
doc.document_id = doc_id; // ¹®¼ ½Äº°ÀÚ
p_in.documents.push_back(doc);
p_in.section_namelist = section_namelist;
p_in.set_id = 1; // ¿ä¾à ¹× ÇÏÀ̶óÀÌÆÃÀ» À§Çؼ "¼Â¹øÈ£"°¡ ÇÊ¿äÇÔ
// ¿ä¾à ¹× ÇÏÀ̶óÀÌÆÃ ÁöÁ¤
Cdisplay_t adisplay;
adisplay.section_name = "TIK"; // ¼½¼Ç ÁöÁ¤
adisplay.highlight_method = INSERTING_TAG_EACH; // ÇÏÀ̶óÀÌÆÃ ¹æ¹ý ÁöÁ¤
adisplay.start_tag = "<font color=red>"; // ÇÏÀ̶óÀÌÆÃ ¹æ¹ýÀÌ INSERTIN G_TAG_* ÀÎ °æ¿ì¿¡¸¸ ÁöÁ¤
adisplay.end_tag = "</font>"; // ÇÏÀ̶óÀÌÆÃ ¹æ¹ýÀÌ INSERTING_TAG_* ÀÎ °æ¿ì¿¡¸¸ ÁöÁ¤
adisplay.summary_method = NORMAL_SUMMARY; // ¿ä¾à ¹æ¹ý ÁöÁ¤
adisplay.summary_length = 32; // ¿ä¾à ±æÀÌ
p_in.displays.push_back(adisplay);
// ¹®¼ °¡Á®¿À±â
RedirectStdoutInit(); // ¿äû ¼öÇà Áß¿¡ Ãâ·ÂµÇ´Â ¸Þ½ÃÁö ¸·À½...
int ret_val = clientLib.Request(GET_DOCUMENTS_WITH_IDS, p_in, p_out);
RedirectStdoutClose();
if (ret_val != 0) {
cout << "ERROR : " << p_out.errmsg << "(" << p_out.errcode << ")" << endl;
return -1;
}