QString pcsl_string2QString(const pcsl_string &pstring) { /* * Example From the QT toolkit doc for QString.isNull() * QString a; // a.unicode() == 0, a.length() == 0 * QString b = ""; // b.unicode() == "", b.length() == 0 * a.isNull(); // TRUE, because a.unicode() == 0 * a.isEmpty(); // TRUE, because a.length() == 0 * b.isNull(); // FALSE, because b.unicode() != 0 * b.isEmpty(); // TRUE, because b.length() == 0 */ QString qstring; if (pcsl_string_is_null(&pstring)) { // we want isNull to be true qstring = QString::null; } else if (pcsl_string_length(&pstring) == 0) { // we want isEmpty to be true qstring = ""; } else { const pcsl_string* const mmstring = &pstring; GET_PCSL_STRING_DATA_AND_LENGTH(mmstring) qstring.setUtf16((const ushort *)mmstring_data, mmstring_len); RELEASE_PCSL_STRING_DATA_AND_LENGTH } return qstring; }
/** * The function that will be called when Java system state * changes. * * @param pEventData */ void system_state_listener(const NamsEventData* pEventData) { printf("--- system_state_listener(event = %d, state = %d)\n", pEventData->event, pEventData->state); if (pEventData->event == MIDP_NAMS_EVENT_STATE_CHANGED && pEventData->state == MIDP_SYSTEM_STATE_ACTIVE) { int i; const jchar *jchArgsForMidlet[3]; jint argsLen[3]; /* Currently we support up to 3 arguments. */ for (i = 0; i < 3; i++) { jchArgsForMidlet[i] = pcsl_string_get_utf16_data(&argsForMidlet[i]); argsLen[i] = pcsl_string_utf16_length(&argsForMidlet[i]); } GET_PCSL_STRING_DATA_AND_LENGTH(aclassNameToRun) (void) midp_midlet_create_start_with_args(suiteIDToRun, (const jchar*)aclassNameToRun_data, aclassNameToRun_len, (const jchar**)jchArgsForMidlet, argsLen, 3, #if ENABLE_I3_TEST findNextEmptyMIDlet(0), #else /* * There is only one application * excepting namsTestService mode */ 1, #endif NULL); RELEASE_PCSL_STRING_DATA_AND_LENGTH for (i = 0; i < 3; i++) { pcsl_string_release_utf16_data(jchArgsForMidlet[i], &argsForMidlet[i]); } }
extern "C" void pcsl_string2QString(const pcsl_string &pstring, QString &qstring) { /* * Example From the QT toolkit doc for QString.isNull() * QString a; // a.unicode() == 0, a.length() == 0 * QString b = ""; // b.unicode() == "", b.length() == 0 * a.isNull(); // TRUE, because a.unicode() == 0 * a.isEmpty(); // TRUE, because a.length() == 0 * b.isNull(); // FALSE, because b.unicode() != 0 * b.isEmpty(); // TRUE, because b.length() == 0 */ if (pcsl_string_is_null(&pstring)) { // we want isNull to be true qstring = (const char *)NULL; } else if (pcsl_string_length(&pstring) == 0) { // we want isEmpty to be true qstring = ""; } else { const pcsl_string* const mmstring = &pstring; GET_PCSL_STRING_DATA_AND_LENGTH(mmstring) qstring.setUnicodeCodes((const ushort *)mmstring_data, mmstring_len); RELEASE_PCSL_STRING_DATA_AND_LENGTH } }