int WebOsCalendarSyncSource::deleteItem(SyncItem &item) { int ret = STC_COMMAND_FAILED; LOG.info("deleteItem called with %s data. And Type %s.",item.getKey(),item.getDataType()); LOG.info("Calling deleteEvent."); std::vector<WString> result = BlockingServiceCall("deleteEvent",item.getKey()); if(result.empty()) { LOG.error("delete event %s did not work.",item.getKey()); ret = STC_COMMAND_FAILED; } else { LOG.error("delete event was successful, received: %s.",result[0].c_str()); ret = STC_OK; } if (isErrorCode(ret)) { report->setLastErrorCode(ERR_ITEM_ERROR); report->setLastErrorMsg(ERRMSG_ITEM_ERROR); report->setState(SOURCE_ERROR); LOG.debug("Error deleting item: %", item.getKey()); } return ret; }
int recvCPAPResponse( int io_fd , uint8_t *responseBuffer , int responseBufferLength , uint8_t cmd_byte , int expectedLength ) { int recv_size=0; int retry=10; int recv_return; uint8_t *x93_cmd=0; uint8_t *e5=0; uint8_t *e6=0; int valid_length=0; int index; uint8_t error_code=0; do { recv_return = CPAP_recv( io_fd , &responseBuffer[recv_size] , responseBufferLength-recv_size ); recv_size += recv_return; if ( x93_cmd == 0 && e5 == 0 && e6 == 0 ) { if ( responseBuffer[0] != 0xe5 && responseBuffer[0] != 0xe6 && isErrorCode( responseBuffer[0] ) ) { valid_length=1; error_code=responseBuffer[0]; break; } for( index=0 ; index<recv_size ; index++ ) { if ((responseBuffer[index] == 0x93) && (responseBuffer[index+1] == cmd_byte) ) { x93_cmd = &responseBuffer[index]; printf_debug("find 0x93,0x%x at responseBuffer[%d]\n" , cmd_byte , ( x93_cmd - responseBuffer ) ); break; } else if ( responseBuffer[index] == 0xe5 ) { e5=&responseBuffer[index]; valid_length = 1; printf_debug("get e5 at responseBuffer[%d]\n" , index ); break; } else if ( responseBuffer[index] == 0xe6 ) { e6=&responseBuffer[index]; valid_length = 1; printf_debug("get e6 at responseBuffer[%d]\n" , index ); break; } } } else printf_debug("93=%p,e5=%p,e6=%p\n" , x93_cmd , e5 , e6 ); if ( x93_cmd ) { valid_length = recv_size - ( x93_cmd - responseBuffer ); printf_debug("valid_length=%d\n" , valid_length ); } if ( retry < 1 ) printf_debug("remain %d bytes\n" , expectedLength-valid_length ); }while( retry-- > 0 && valid_length < expectedLength ); if ( recv_size < 0 ) { printf_debug("recv error\n" ); return READ_UART_ERROR; } else if ( retry < 0 ) { printf_debug("cant find 0x93\n" ); return READ_NOTHING; } else if ( recv_size > 0) { if ( error_code == 0 && x93_cmd ) { printf_debug( "fd:%d,expected value:%d,actually receive:%d\n" , io_fd , expectedLength , recv_size ); uint8_t xor_byte; xor_byte = (uint8_t)getCheckedXor( x93_cmd , expectedLength-1 ); if ( xor_byte != x93_cmd[expectedLength-1] ) { printf_debug("xor should be 0x%x,but 0x%x\n" , xor_byte , x93_cmd[expectedLength-1] ); return -1; } memcpy( responseBuffer , x93_cmd , expectedLength ); return expectedLength; } else if ( e5 ) { responseBuffer[0]=0xe5; return 1; } else if ( e6 ) { responseBuffer[0]=0xe6; return -1; } } return valid_length; }