통합개발환경을 사용한

 응용서비스 추가  

1. SEG 툴을 사용하여 응용서비스 데이터 구조체와 데이터베이스 테이블 생성 스크립트를 만든다. <참고>

2. SyncLib를 생성한다. <참고>

3. sLibDefine.h 의 내용을 변경한다.

#define NoS 2   //NumOfService  <--- 서비스의 갯수

/** Type of used encoding **/

typedef enum {

        SLIB_UNKNOWN = -1,

        SLIB_VCARD = 0,

        SLIB_VCALENDAR = 1

        ---------------------          <--- 서비스 타입 추가

} slibServiceType_t;

4. 기존의 SyncML 서버에서 다음과 같이 SyncLib 의 callback 함수를 등록해 준다.

core 는 SyncLib에서 커맨드와 데이터를 처리하는 핵심 클래스이다. <참고> 응용서비스에서 공통적으로 사용하는 ODBI API 와 SEG를 통해 응용서비스별로 생성된 ODBI API를 등록해 준다.

         core.pComODBI.getNewIdFunc= &odbiGetNewGuidNum;

        core.pComODBI.clFindFunc = &odbiChgLogFindEntry;

        core.pComODBI.clAddFunc = &odbiChgLogAddEntry;

        core.pComODBI.clUpdateFunc= &odbiChgLogUpdateEntry;

        core.pComODBI.clDeleteFunc= &odbiChgLogDeleteEntry;

        core.pComODBI.clGetAllFunc= &odbiChgLogGetAllEntry;

        core.pComODBI.clGetAll4DBFunc= &odbiChgLogGetAll4DbEntry;

        core.pComODBI.clGetChangedFunc= &odbiChgLogGetChanged;

        core.pComODBI.clDeleteAllFunc= &odbiChgLogDeleteAllEntry;

        core.pComODBI.clDeleteAll4DBFunc= &odbiChgLogDeleteAll4DbEntry;

        core.pComODBI.clFindOriginIdFunc= &odbiChgLogFindbyOriginGuidEntry;

 

        core.pODBI[SLIB_VCARD].findFunc = &odbiAddressFindEntry;

        core.pODBI[SLIB_VCARD].getAllFunc = &odbiAddressGetAllEntry;

        core.pODBI[SLIB_VCARD].addFunc = &odbiAddressAddEntry;

        core.pODBI[SLIB_VCARD].replaceFunc = &odbiAddressUpdateEntry;

        core.pODBI[SLIB_VCARD].deleteFunc = &odbiAddressDeleteEntry;

 

        core.pODBI[SLIB_VCALENDAR].findFunc = &odbiCalFindEntry;

        core.pODBI[SLIB_VCALENDAR].getAllFunc = &odbiCalGetAllEntry;

        core.pODBI[SLIB_VCALENDAR].addFunc = &odbiCalAddEntry;

        core.pODBI[SLIB_VCALENDAR].replaceFunc = &odbiCalUpdateEntry;

        core.pODBI[SLIB_VCALENDAR].deleteFunc = &odbiCalDeleteEntry;

5. SyncLib.lib를 링크하고 기존 SyncML 서버에서 데이터를 처리하기 위해 호출했던 함수에서 core 클래스의 정의된 API를 호출한다.

Ret_t ServiceDependHandler::sdhAddEntry (HDBC hdbc, HENV henv, String_t UserID, String_t dbID, Short_t deviceID, DataObjectPtr_t pObj, Long_t *guidNum){

        Ret_t rc        =       SML_RESP_INIT;

        Ret_t ret       =       SML_RESP_INIT;

        core.slibInit(hdbc,henv, UserID,deviceID);

        ret = core.cmdAddEntry(dbID, guidNum, pObj);

        return ret;

}

    


 Links

Main

SDE 소개

SEG

SyncLibrary