이제 원하는 각 기능 별로 프로그램을 만듭니다. 도메인이 등록가능한 지 여부를 검사하는 DomainCheck 기능을 구현한다고 할 때, 등록에 필요한 기본적인 샘플 루틴은 epp-rtk 소스 디렉토리 하위의 src 디렉토리에 main_domaincheck.cc를 참고합니다.
도메인 가능 여부를 요청하는 부분입니다.
epp_DomainCheckReq_ref l_req(new epp_DomainCheckReq()); l_req->m_cmd.ref(new epp_Command(NULL, NULL, epp_trid("ABC-12345"))); epp_string_seq_ref names(new epp_string_seq()); names->push_back("example1.com"); names->push_back("example2.com"); names->push_back("example3.com"); l_req->m_names = names; epp_DomainCheck_ref l_obj(new epp_DomainCheck()); l_obj->setRequestData(*l_req); test.processAction(l_obj); epp_DomainCheckRsp_ref l_rsp = l_obj->getResponseData(); |
컴파일 시에는 이와 관련된 라이브러리를 지정해 주어야 합니다. DomainCheck의 경우 EPP-RTK를 설치할 경우 생기는 라이브러리가 필요하기 때문에 컴파일시에 옵션을 적절하게 지정할 필요가 있습니다.
-L./lib -lepprtk -ldata -ltransport -lnpssl
-L./lib를 지정하여 libepprtk.a 파일등이 있는 곳의 위치를 지정해야 합니다.
-DHAVE_DIRENT_H=1 -DSTDC_HEADERS=1 -DHAVE_DOM_DOM_HPP=1 -DHAVE_PARSERS_DOMPARSER_HPP=1 -DHAVE_UT IL_PLATFORMUTILS_HPP=1 -DHAVE_UTIL_XMLSTRING_HPP=1 -DHAVE_UTIL_XMLUNIDEFS_HPP=1 -DHAVE_UNISTD_H=1 -DHAV E_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_MKDIR=1 -DHAVE_SELECT=1 -DHAVE_STRSTR=1
using namespace eppobject::domain;
using namespace eppobject::epp;
다음은 간단한 Makefile의 예제입니다.
CXX = c++ CFLAGS = --ansi -Wall -g -O2 USER_LIB = -lepprtk -ldata -ltransport -lnpssl -lnameaddon -lnamedata -ldomtools SYS_LIB = -ldomtools /usr/local/xerces/lib/libxerces.so -lpthread -lssl -lcrypt -lcrypto -ldata LIB_DIR = -L./lib -L/usr/local/lib -L/usr/local/lib/domtools INCL = -I/usr/include -I/usr/local/include/ -I/home/dotName/xerces-c1_7_0-linux7.2/include -I/home/dotN ame/xerces-c1_7_0-linux7.2/include/xercesc -I/usr/local/include/epprtk -I/usr/local/include/name-rtk-addon DEFS = -DHAVE_DIRENT_H=1 -DSTDC_HEADERS=1 -DHAVE_DOM_DOM_HPP=1 -DHAVE_PARSERS_DOMPARSER_HPP=1 -DHAVE_UT IL_PLATFORMUTILS_HPP=1 -DHAVE_UTIL_XMLSTRING_HPP=1 -DHAVE_UTIL_XMLUNIDEFS_HPP=1 -DHAVE_UNISTD_H=1 -DHAV E_GETPAGESIZE=1 -DHAVE_MMAP=1 -DHAVE_MKDIR=1 -DHAVE_SELECT=1 -DHAVE_STRSTR=1 CXXCOMPILE = $(CXX) $(DEFS) $(INCL) OBJECTS = main.o all: epp_test epp_test: $(OBJECTS) $(CXX) $(CFLAGS) -o epp_test $(OBJECTS) $(LIB_DIR) $(USER_LIB) $(SYS_LIB) .cc.o: $(CXXCOMPILE) -c $< clean: rm -rf epp_test *.o |