ArrayElement* Status::clone() { Status* ret = new Status(getCmdID(), getMsgRef(), getCmdRef(), getCmd(), getTargetRef(), getSourceRef(), getCred(), chal, data, getItems()); return ret; }
ArrayElement* Exec::clone() { Exec* ret = new Exec(getCmdID(), getNoResp(), getCred(), getItems()); return ret; }
// main function for provisioning client using C-level provisioning API int main() { // initialize provisioning client if(initProvisionClient()) { OIC_LOG(ERROR, TAG, "ProvisionClient init error"); goto PMCLT_ERROR; } // main loop for provisioning manager int mn_num = 0; for( ; ; ) { printf("\n"); printMenu(); printf(">> Enter Menu Number: "); for(int ret=0; 1!=ret; ) { ret = scanf("%d", &mn_num); for( ; 0x20<=getchar(); ); // for removing overflow garbages // '0x20<=code' is character region } printf("\n"); switch(mn_num) { case _10_DISCOV_ALL_DEVS_: if(discoverAllDevices()) { OIC_LOG(ERROR, TAG, "_10_DISCOV_ALL_DEVS_: error"); } break; case _11_DISCOV_UNOWN_DEVS_: if(discoverUnownedDevices()) { OIC_LOG(ERROR, TAG, "_11_DISCOV_UNOWN_DEVS_: error"); } break; case _12_DISCOV_OWN_DEVS_: if(discoverOwnedDevices()) { OIC_LOG(ERROR, TAG, "_12_DISCOV_OWN_DEVS_: error"); } break; case _20_REGIST_DEVS_: if(registerDevices()) { OIC_LOG(ERROR, TAG, "_20_REGIST_DEVS_: error"); } break; case _30_PROVIS_PAIR_DEVS_: if(provisionPairwise()) { OIC_LOG(ERROR, TAG, "_30_PROVIS_PAIR_DEVS_: error"); } break; case _31_PROVIS_CRED_: if(provisionCred()) { OIC_LOG(ERROR, TAG, "_31_PROVIS_CRED_: error"); } break; case _32_PROVIS_ACL_: if(provisionAcl()) { OIC_LOG(ERROR, TAG, "_32_PROVIS_ACL_: error"); } break; case _33_PROVIS_DP_: if(provisionDirectPairing()) { OIC_LOG(ERROR, TAG, "_33_PROVIS_DP_: error"); } break; case _34_CHECK_LINK_STATUS_: if(checkLinkedStatus()) { OIC_LOG(ERROR, TAG, "_34_CHECK_LINK_STATUS_: error"); } break; case _40_UNLINK_PAIR_DEVS_: if(unlinkPairwise()) { OIC_LOG(ERROR, TAG, "_40_UNLINK_PAIR_DEVS_: error"); } break; case _50_REMOVE_SELEC_DEV_: if(removeDevice()) { OIC_LOG(ERROR, TAG, "_50_REMOVE_SELEC_DEV_: error"); } break; case _60_GET_CRED_: if(getCred()) { OIC_LOG(ERROR, TAG, "_60_GET_CRED_: error"); } break; case _61_GET_ACL_: if(getAcl()) { OIC_LOG(ERROR, TAG, "_61_GET_ACL_: error"); } break; case _99_EXIT_PRVN_CLT_: goto PMCLT_ERROR; default: printf(">> Entered Wrong Number. Please Enter Again\n\n"); break; } } PMCLT_ERROR: if(OC_STACK_OK != OCStop()) { OIC_LOG(ERROR, TAG, "OCStack stop error"); } OCDeleteDiscoveredDevices(g_own_list); // after here |g_own_list| points nothing OCDeleteDiscoveredDevices(g_unown_list); // after here |g_unown_list| points nothing if(g_svr_fname) { OICFree(g_svr_fname); // after here |g_svr_fname| points nothing } if(g_prvn_fname) { OICFree(g_prvn_fname); // after here |g_prvn_fname| points nothing } return 0; // always return normal case }