void VJSGlobalClass::do_ProgressIndicator(VJSParms_callStaticFunction& ioParms, VJSGlobalObject *inContext) { VString sessiontile; VString windowtile, userinfo; bool caninterrupt = false; Real maxvalue = -1; VError err = VE_OK; if (ioParms.IsNumberParam(1)) ioParms.GetRealParam(1, &maxvalue); else err = vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_NUMBER, "1"); if (err == VE_OK ) { if (ioParms.IsStringParam(2)) ioParms.GetStringParam(2, sessiontile); else err = vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "2"); } caninterrupt = ioParms.GetBoolParam( 3, L"Can Interrupt", "Cannot Interrupt"); //VProgressIndicator* progress = inContext->GetRuntimeDelegate()->CreateProgressIndicator( windowtile); if (err == VE_OK) { VProgressIndicator* progress = new VProgressIndicator(); if (progress != NULL) { if (ioParms.CountParams() >= 4) { if (ioParms.IsStringParam(4)) { ioParms.GetStringParam(4, windowtile); progress->SetTitle(windowtile); } else vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "4"); } if (ioParms.CountParams() >= 5) { if (ioParms.IsStringParam(5)) { ioParms.GetStringParam(5, userinfo); progress->SetUserInfo(userinfo); } else vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "5"); } progress->BeginSession((sLONG8)maxvalue, sessiontile, caninterrupt); } ioParms.ReturnValue(VJSProgressIndicator::CreateInstance(ioParms.GetContextRef(), progress)); ReleaseRefCountable( &progress); } else ioParms.ReturnNullValue(); }
void VJSGlobalClass::do_displayNotification( VJSParms_callStaticFunction& inParms, VJSGlobalObject*) { VString message; inParms.GetStringParam( 1, message); VString title( "Notification"); inParms.GetStringParam( 2, title); bool critical = false; inParms.GetBoolParam( 3, &critical); VSystem::DisplayNotification( title, message, critical ? EDN_StyleCritical : 0); }
void VJSDirectory::_addGroup(VJSParms_callStaticFunction& ioParms, CUAGDirectory* inDirectory) { VError err; VString groupname, fullname; ioParms.GetStringParam(1, groupname); ioParms.GetStringParam(2, fullname); CUAGGroup* group = inDirectory->AddOneGroup(groupname, fullname, err); if (group == nil) ioParms.ReturnNullValue(); else { ioParms.ReturnValue(VJSGroup::CreateInstance(ioParms.GetContext(), group)); group->Release(); } }
void VJSGlobalClass::do_XmlToJSON(VJSParms_callStaticFunction& ioParms, VJSGlobalObject*) { VString xml; VString json, root; bool simpleJSON = false; ioParms.GetStringParam( 1, xml); if ( ioParms.CountParams() >= 2) { VString s; if (ioParms.IsStringParam(2)) { ioParms.GetStringParam(2, s); if(s== "json-bag") { simpleJSON = true; root="bag"; if(ioParms.CountParams() >= 3) { if (ioParms.IsStringParam(3)) ioParms.GetStringParam(3, root); else vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "3"); } } } else vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "2"); } if (simpleJSON) { XBOX::VValueBag *bag = new XBOX::VValueBag; VError err = LoadBagFromXML( xml, root, *bag); if(err == VE_OK) bag->GetJSONString(json); ReleaseRefCountable( &bag); } else { VString errorMessage; sLONG lineNumber; VError err = VXMLJsonUtility::XMLToJson(xml, json, errorMessage, lineNumber); } ioParms.ReturnString(json); }
void VJSGlobalClass::do_isoToDate(VJSParms_callStaticFunction& ioParms, VJSGlobalObject*) { VTime dd; VString s; ioParms.GetStringParam(1, s); dd.FromJSONString(s); ioParms.ReturnTime(dd); }
void VJSDirectory::_computeHA1(VJSParms_callStaticFunction& ioParms, CUAGDirectory* inDirectory) { VString userName, password, realm; ioParms.GetStringParam(1, userName); ioParms.GetStringParam(2, password); ioParms.GetStringParam(3, realm); if (realm.IsEmpty()) realm = "Wakanda"; CSecurityManager* securityManager = (CSecurityManager*)VComponentManager::RetainUniqueComponent(CSecurityManager::Component_Type); if (securityManager != nil) { VString ha1 = securityManager->ComputeDigestHA1(userName, password, realm); securityManager->Release(); ioParms.ReturnString(ha1); } }
void VJSDirectory::_addUser(VJSParms_callStaticFunction& ioParms, CUAGDirectory* inDirectory) { VError err; VString username, password, fullname; ioParms.GetStringParam(1, username); ioParms.GetStringParam(2, password); ioParms.GetStringParam(3, fullname); CUAGUser* user = inDirectory->AddOneUser(username, password, fullname, err); if (user == nil) ioParms.ReturnNullValue(); else { ioParms.ReturnValue(VJSUser::CreateInstance(ioParms.GetContext(), user)); user->Release(); } }
void VJSGlobalClass::do_JSONToXml(VJSParms_callStaticFunction& ioParms, VJSGlobalObject*) { VString xml; VString json, root; bool simpleJSON = false; ioParms.GetStringParam( 1, json); if ( ioParms.CountParams() >= 2) { VString s; if (ioParms.IsStringParam(2)) { ioParms.GetStringParam(2, s); if(s== "json-bag") { simpleJSON = true; root="bag"; if(ioParms.CountParams() >= 3) { if (ioParms.IsStringParam(3)) ioParms.GetStringParam(3, root); else vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "3"); } } } else vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "2"); } if (simpleJSON) { XBOX::VValueBag *bag = new XBOX::VValueBag; bag->FromJSONString(json); xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"; bag->DumpXML( xml, root, false); ReleaseRefCountable( &bag); } else { VError err = VXMLJsonUtility::JsonToXML(json, xml); } ioParms.ReturnString(xml); }
void VJSGlobalClass::do_SetCurrentUser( VJSParms_callStaticFunction& inParms, VJSGlobalObject*) { VString username; inParms.GetStringParam(1, username); if (!username.IsEmpty()) { // a faire ici ou dans VJSSolution ? } }
void VJSStorageClass::_removeItem (VJSParms_callStaticFunction &ioParms, VJSStorageObject *inStorageObject) { xbox_assert(inStorageObject != NULL); XBOX::VString name; if (ioParms.CountParams() && ioParms.IsStringParam(1) && ioParms.GetStringParam(1, name)) inStorageObject->RemoveKeyValue(name); }
void VJSStream::_PutString(VJSParms_callStaticFunction& ioParms, VStream* inStream) { VString s; if (ioParms.IsStringParam(1)) { ioParms.GetStringParam(1, s); VError err = s.WriteToStream(inStream); } else vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "1"); }
void VJSDirectory::_filterGroups(VJSParms_callStaticFunction& ioParms, CUAGDirectory* inDirectory) { VString s; bool isquery = false; ioParms.GetStringParam(1, s); isquery = ioParms.GetBoolParam(2, "query", "not query"); CUAGGroupVector groups; VError err = inDirectory->FilterGroups(s, isquery, groups); ioParms.ReturnValue(buildArrFromGroups(ioParms, groups, nil)); }
void VJSGlobalClass::do_GetProgressIndicator(VJSParms_callStaticFunction& ioParms, VJSGlobalObject *inContext) { if (ioParms.IsStringParam(1)) { VString userinfo; ioParms.GetStringParam(1, userinfo); VProgressIndicator* progress = VProgressManager::RetainProgressIndicator(userinfo); if (progress != nil) ioParms.ReturnValue(VJSProgressIndicator::CreateInstance(ioParms.GetContextRef(), progress)); QuickReleaseRefCountable(progress); } }
void VJSGlobalClass::do_trace( VJSParms_callStaticFunction& inParms, VJSGlobalObject*) { size_t count = inParms.CountParams(); for( size_t i = 1 ; i <= count ; ++i) { VString msg; bool ok = inParms.GetStringParam( i, msg); if (!ok) break; VDebugMgr::Get()->DebugMsg( msg); } }
void VJSTextStream::_Read (VJSParms_callStaticFunction &ioParms, VJSTextStreamState *inStreamState) { if (inStreamState == NULL) XBOX::vThrowError(XBOX::VE_JVSC_INVALID_STATE, L"TextStream.read()"); else if (ioParms.CountParams() == 1 && ioParms.IsStringParam(1)) { XBOX::VString delimiter; if (!ioParms.GetStringParam(1, delimiter) || delimiter.GetLength() > 1) XBOX::vThrowError(XBOX::VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "1"); else { XBOX::VString result; bool hasBeenFound; hasBeenFound = inStreamState->_ReadUntilDelimiter(delimiter, &result); inStreamState->fPosition += result.GetLength(); if (hasBeenFound) inStreamState->fPosition++; // Delimiter is not included. ioParms.ReturnString(result); } } else { // numberCharacters is the number of actual characters to read, not the number of bytes. sLONG numberCharacters; numberCharacters = 0; if (ioParms.CountParams() >= 1 && (!ioParms.GetLongParam(1, &numberCharacters) || numberCharacters < 0)) XBOX::vThrowError(XBOX::VE_JVSC_WRONG_PARAMETER_TYPE_NUMBER, "1"); else { XBOX::VString result; inStreamState->_ReadCharacters(numberCharacters, &result); inStreamState->fPosition += result.GetLength(); ioParms.ReturnString(result); } } }
void VJSDirectory::_setLoginListener(VJSParms_callStaticFunction& ioParms, CUAGDirectory* inDirectory) { VError err; VString listenerRef; if (ioParms.IsStringParam(1)) { ioParms.GetStringParam(1, listenerRef); VString groupRef; CUAGGroup* group = ioParms.GetParamObjectPrivateData<VJSGroup>(2); if (group == NULL) ioParms.GetStringParam(2, groupRef); else { VUUID xid; group->GetID(xid); xid.GetString(groupRef); } inDirectory->SetLoginListener(listenerRef, groupRef); } else XBOX::vThrowError(XBOX::VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "1"); }
void VJSGlobalClass::do_Require(VJSParms_callStaticFunction& ioParms, VJSGlobalObject *inGlobalObject) { xbox_assert(inGlobalObject != NULL); XBOX::VString className; if (ioParms.CountParams() != 1 || !ioParms.IsStringParam(1) || !ioParms.GetStringParam(1, className)) vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "1"); else ioParms.ReturnValue(inGlobalObject->Require(ioParms.GetContext(), className)); }
void VJSGlobalClass::do_testMe( VJSParms_callStaticFunction& inParms, VJSGlobalObject*) { VJSObject globalObject( inParms.GetContext().GetGlobalObject()); VString functionName; inParms.GetStringParam( 1, functionName); std::vector<VJSValue> values; size_t count = inParms.CountParams(); for( size_t i = 2 ; i <= count ; ++i) values.push_back( inParms.GetParamValue( i)); VJSValue result( inParms.GetContextRef()); bool ok = globalObject.CallMemberFunction( functionName, &values, &result, inParms.GetExceptionRefPointer()); inParms.ReturnValue( result); }
void VJSStorageClass::_getItem (VJSParms_callStaticFunction &ioParms, VJSStorageObject *inStorageObject) { xbox_assert(inStorageObject != NULL); XBOX::VString name; if (ioParms.CountParams() && ioParms.IsStringParam(1) && ioParms.GetStringParam(1, name)) { XBOX::VJSValue value(ioParms.GetContext()); inStorageObject->GetKeyValue(name, &value); ioParms.ReturnValue(value); } else ioParms.ReturnNullValue(); }
void VJSDirectory::_getUser(VJSParms_callStaticFunction& ioParms, CUAGDirectory* inDirectory) { StErrorContextInstaller errs(false, true); VString s; ioParms.GetStringParam(1, s); CUAGUser* user = inDirectory->RetainUser(s); if (user == nil) { VUUID id; id.FromString(s); user = inDirectory->RetainUser(id); } if (user == nil) ioParms.ReturnNullValue(); else { ioParms.ReturnValue(VJSUser::CreateInstance(ioParms.GetContext(), user)); user->Release(); } }
void VJSDirectory::_getGroup(VJSParms_callStaticFunction& ioParms, CUAGDirectory* inDirectory) { StErrorContextInstaller errs(false, true); VString s; ioParms.GetStringParam(1, s); CUAGGroup* group = inDirectory->RetainGroup(s); if (group == nil) { VUUID id; id.FromString(s); group = inDirectory->RetainGroup(id); } if (group == nil) ioParms.ReturnNullValue(); else { ioParms.ReturnValue(VJSGroup::CreateInstance(ioParms.GetContext(), group)); group->Release(); } }
void VJSGroup::_removeFrom(VJSParms_callStaticFunction& ioParms, CUAGGroup* inGroup) { VError err = VE_OK; sLONG nbparam = ioParms.CountParams(); for (sLONG i = 1; i <= nbparam /*&& err == VE_OK*/; i++) { if (ioParms.IsArrayParam(i)) { VJSArray arr(ioParms.GetContext(), nil, false); ioParms.GetParamArray(i, arr); sLONG nbelem = arr.GetLength(); for (sLONG j = 0; j < nbelem; ++j) { VJSValue val(arr.GetValueAt(j)); if (val.IsString()) { VString s; val.GetString(s); err = removeGroupFromGroup(ioParms, inGroup, s); } else /*if (val.IsInstanceOf("Group"))*/ { CUAGGroup* group = val.GetObjectPrivateData<VJSGroup>(); if (group != nil) err = inGroup->RemoveFromGroup(group); } } } else if (ioParms.IsStringParam(i)) { VString s; ioParms.GetStringParam(i, s); err = removeGroupFromGroup(ioParms, inGroup, s); } else { CUAGGroup* group = ioParms.GetParamObjectPrivateData<VJSGroup>(i); err = inGroup->RemoveFromGroup(group); } } }
void VJSUser::_putInto(VJSParms_callStaticFunction& ioParms, CUAGUser* inUser) { VError err = VE_OK; sLONG nbparam = ioParms.CountParams(); for (sLONG i = 1; i <= nbparam /*&& err == VE_OK*/; i++) { if (ioParms.IsArrayParam(i)) { VJSArray arr(ioParms.GetContextRef(), nil, false); ioParms.GetParamArray(i, arr); sLONG nbelem = arr.GetLength(); for (sLONG j = 0; j < nbelem; ++j) { VJSValue val(arr.GetValueAt(j)); if (val.IsString()) { VString s; val.GetString(s); err = putUserIntoGroup(ioParms, inUser, s); } else if (val.IsInstanceOf("Group")) { CUAGGroup* group = val.GetObjectPrivateData<VJSGroup>(); err = inUser->PutIntoGroup(group); } } } else if (ioParms.IsStringParam(i)) { VString s; ioParms.GetStringParam(i, s); err = putUserIntoGroup(ioParms, inUser, s); } else { CUAGGroup* group = ioParms.GetParamObjectPrivateData<VJSGroup>(i); err = inUser->PutIntoGroup(group); } } }
void VJSGlobalClass::do_SyncEvent(VJSParms_callStaticFunction& ioParms, VJSGlobalObject*) { VString s; bool okresult = false; if (ioParms.IsStringParam(1)) { ioParms.GetStringParam(1, s); if (!s.IsEmpty()) { jsSyncEvent* sync = jsSyncEvent::RetainSyncEvent(s); if (sync != nil) { okresult = true; ioParms.ReturnValue(VJSSyncEvent::CreateInstance(ioParms.GetContextRef(), sync)); sync->Release(); } } } else vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "1"); if (!okresult) ioParms.ReturnNullValue(); }
void VJSStorageClass::_setItem (VJSParms_callStaticFunction &ioParms, VJSStorageObject *inStorageObject) { xbox_assert(inStorageObject != NULL); XBOX::VString name; if (ioParms.CountParams() && ioParms.IsStringParam(1) && ioParms.GetStringParam(1, name)) { XBOX::VJSValue value(ioParms.GetContext()); if (ioParms.CountParams() < 2) value.SetUndefined(); else value = ioParms.GetParamValue(2); inStorageObject->SetKeyValue(name, value); } }
void VJSGlobalClass::do_include( VJSParms_callStaticFunction& inParms, VJSGlobalObject *inGlobalObject) { // EvaluateScript() uses NULL (this is default) as inThisObject argument. // This works fine currently, but would it be better (if any problem) to pass global (application) object instead? // See WAK0074064. VFile* file = inParms.RetainFileParam(1, false); if (file != NULL) { bool newlyRegistered = inGlobalObject->RegisterIncludedFile( file); // sc 15/06/2010 the file must be registered if (inParms.GetBoolParam(2,"refresh","auto") || newlyRegistered) { inParms.GetContext().EvaluateScript( file, NULL, inParms.GetExceptionRefPointer()); } file->Release(); } else { VString pathname; if (inParms.IsStringParam(1) && inParms.GetStringParam( 1, pathname)) { VFolder* folder = inGlobalObject->GetRuntimeDelegate()->RetainScriptsFolder(); if (folder != NULL) { file = new VFile( *folder, pathname, FPS_POSIX); bool newlyRegistered = inGlobalObject->RegisterIncludedFile( file); // sc 15/06/2010 the file must be registered if (inParms.GetBoolParam(2,"refresh","auto") || newlyRegistered) { inParms.GetContext().EvaluateScript( file, NULL, inParms.GetExceptionRefPointer()); } ReleaseRefCountable( &file); } ReleaseRefCountable( &folder); } else vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_FILE, "1"); } }
void VJSGlobalClass::do_SaveText(VJSParms_callStaticFunction& ioParms, VJSGlobalObject*) { VString s; if (ioParms.IsStringParam(1)) { if (ioParms.GetStringParam(1, s)) { VFile* file = ioParms.RetainFileParam(2); if (file != nil) { VError err = VE_OK; if (file->Exists()) err = file->Delete(); if (err == VE_OK) err = file->Create(); if (err == VE_OK) { CharSet defaultCharSet = VTC_UTF_8; sLONG xcharset = 0; if (ioParms.GetLongParam(3, &xcharset) && xcharset != 0) defaultCharSet = (CharSet)xcharset; VFileStream inp(file); err = inp.OpenWriting(); if (err == VE_OK) { inp.SetCharSet(defaultCharSet); inp.PutText(s); inp.CloseWriting(); } } } else vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_FILE, "2"); } } else vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "1"); }
void VJSGlobalClass::do_GetURLPath(VJSParms_callStaticFunction& ioParms, VJSGlobalObject*) { VString s; if (ioParms.IsStringParam(1)) { if (ioParms.GetStringParam(1, s)) { VFullURL url(s); VJSArray result(ioParms.GetContextRef()); const VString* next = url.NextPart(); while (next != NULL) { VJSValue elem(ioParms.GetContextRef()); elem.SetString(*next); result.PushValue(elem); next = url.NextPart(); } ioParms.ReturnValue(result); } } else vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "1"); }
void VJSGlobalClass::do_AtomicSection(VJSParms_callStaticFunction& ioParms, VJSGlobalObject*) { VString s; bool okresult = false; if (ioParms.IsStringParam(1)) { ioParms.GetStringParam(1, s); if (!s.IsEmpty()) { jsAtomicSection* atomsec = jsAtomicSection::RetainAtomicSection(s); if (atomsec != nil) { okresult = true; ioParms.ReturnValue(VJSAtomicSection::CreateInstance(ioParms.GetContextRef(), atomsec)); atomsec->Release(); } } } else vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "1"); if (!okresult) ioParms.ReturnNullValue(); }
void VJSTextStream::_Write (VJSParms_callStaticFunction &ioParms, VJSTextStreamState *inStreamState) { if (inStreamState == NULL && !inStreamState->fStream->IsWriting()) XBOX::vThrowError(XBOX::VE_JVSC_INVALID_STATE, L"TextStream.write()"); else { XBOX::VString string; if (ioParms.CountParams() != 1 || !ioParms.IsStringParam(1) || !ioParms.GetStringParam(1, string)) XBOX::vThrowError(XBOX::VE_JVSC_WRONG_PARAMETER_TYPE_NUMBER, "1"); else { inStreamState->fStream->PutText(string); inStreamState->fPosition += string.GetLength(); } } }