本文整理汇总了C++中xbox::VJSParms_callStaticFunction::GetStringParam方法的典型用法代码示例。如果您正苦于以下问题:C++ VJSParms_callStaticFunction::GetStringParam方法的具体用法?C++ VJSParms_callStaticFunction::GetStringParam怎么用?C++ VJSParms_callStaticFunction::GetStringParam使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xbox::VJSParms_callStaticFunction
的用法示例。
在下文中一共展示了VJSParms_callStaticFunction::GetStringParam方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _IsRunning
void VJSSharedWorkerClass::_IsRunning (XBOX::VJSParms_callStaticFunction &ioParms, void *)
{
XBOX::VString url, name;
if (!ioParms.GetStringParam(1, url))
XBOX::vThrowError(XBOX::VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "1");
else if (!ioParms.GetStringParam(2, name))
XBOX::vThrowError(XBOX::VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "2");
else
ioParms.ReturnBool(VJSWorker::IsSharedWorkerRunning(url, name));
}
示例2: _save
void VJSImage::_save(XBOX::VJSParms_callStaticFunction& ioParms, VJSPictureContainer* inPict)
{
VPictureCodecFactoryRef fact;
const VPictureCodec* encoder = nil;
bool ok = false;
VPicture* pic = inPict->GetPict();
if (pic != nil)
{
VFile* file = ioParms.RetainFileParam(1);
if (file != nil)
{
VString mimetype;
ioParms.GetStringParam(2, mimetype);
if (mimetype.IsEmpty())
{
VString extension;
file->GetExtension(extension);
if (extension.IsEmpty())
extension = L"pic";
encoder = fact->RetainEncoderForExtension(extension);
}
else
encoder = fact->RetainEncoderByIdentifier(mimetype);
if (encoder != nil)
{
VError err = VE_OK;
if (file->Exists())
err = file->Delete();
if (err == VE_OK)
{
VValueBag *pictureSettings = nil;
VValueBag *bagMetas = (VValueBag*)inPict->RetainMetaBag();
if (bagMetas != nil)
{
pictureSettings = new VValueBag();
ImageEncoding::stWriter settingsWriter(pictureSettings);
VValueBag *bagRetained = settingsWriter.CreateOrRetainMetadatas( bagMetas);
if (bagRetained)
bagRetained->Release();
}
err=encoder->Encode(*pic, pictureSettings, *file);
QuickReleaseRefCountable(bagMetas);
QuickReleaseRefCountable(pictureSettings);
if (err == VE_OK)
ok = true;
}
encoder->Release();
}
file->Release();
}
else
vThrowError(VE_JVSC_WRONG_PARAMETER_TYPE_FILE, "1");
}
ioParms.ReturnBool(ok);
}
示例3: _Send
void VJSXMLHttpRequest::_Send(XBOX::VJSParms_callStaticFunction& ioParms, XMLHttpRequest* inXhr)
{
XBOX::VString pData;
bool resData;
resData=ioParms.GetStringParam(1, pData);
if(inXhr) //Data is optional, we don't care if it's not set
{
XBOX::VError impl_err=XBOX::VE_OK;
XBOX::VError res=inXhr->Send(pData, &impl_err);
if(res!=XBOX::VE_OK)
{
uLONG code=ERRCODE_FROM_VERROR(impl_err);
uLONG comp=COMPONENT_FROM_VERROR(impl_err);
//XBOX::VErrorBase* verrBase = new XBOX::VErrorBase ( impl_err, 0 );
//XBOX::VTask::GetCurrent ( )-> PushRetainedError ( verrBase );
//We may have an implementation error which might be documented
if(impl_err!=XBOX::VE_OK)
XBOX::vThrowError(impl_err);
//Now throw the more generic error
XBOX::vThrowError(res);
}
}
else
XBOX::vThrowError(VE_XHRQ_JS_BINDING_ERROR);
}
示例4: _setPatternForProxy
void VJSRPCServiceCore::_setPatternForProxy( XBOX::VJSParms_callStaticFunction& ioParms, VRPCService *inService)
{
VString pattern;
if (ioParms.GetStringParam( 1, pattern))
{
inService->SetPatternForProxy( pattern);
}
}
示例5: _SetRequestHeader
void VJSXMLHttpRequest::_SetRequestHeader(XBOX::VJSParms_callStaticFunction& ioParms, XMLHttpRequest* inXhr)
{
XBOX::VString pHeader;
XBOX::VString pValue;
bool resHeader=ioParms.GetStringParam(1, pHeader);
bool resValue=ioParms.GetStringParam(2, pValue);
if(resHeader && resValue && inXhr)
{
XBOX::VError res=inXhr->SetRequestHeader(pHeader, pValue);
if(res!=XBOX::VE_OK)
XBOX::vThrowError(res);
}
else
XBOX::vThrowError(VE_XHRQ_JS_BINDING_ERROR);
}
示例6: _filterParents
void VJSGroup::_filterParents( XBOX::VJSParms_callStaticFunction& ioParms, CUAGGroup* inGroup)
{
VString s;
ioParms.GetStringParam(1,s);
s.AppendUniChar(ioParms.GetWildChar());
CUAGGroupVector groups;
bool firstlevel = ioParms.GetBoolParam(2, "firstLevel", "allLevels");
inGroup->RetainOwners(groups, firstlevel);
ioParms.ReturnValue(buildArrFromGroups(ioParms, groups, &s));
}
示例7: _GetSyntaxColoring
void VJSLanguageSyntaxTester::_GetSyntaxColoring( XBOX::VJSParms_callStaticFunction &ioParams, void * )
{
// We expect two parameters -- the extension for the type of information we have (js, html, etc) and
// a line of text to be colored. We will perform the coloring, and return back to the user a list
// of objects that contain the style information.
if (ioParams.CountParams() < 2) return;
VString extension, data;
if (!ioParams.GetStringParam( 1, extension )) return;
if (!ioParams.GetStringParam( 2, data )) return;
CLanguageSyntaxComponent *languageSyntax = (CLanguageSyntaxComponent *)VComponentManager::RetainComponent( (CType)CLanguageSyntaxComponent::Component_Type );
if (!languageSyntax) return;
ISyntaxInterface *syntaxEngine = languageSyntax->GetSyntaxByExtension( extension );
if (syntaxEngine) {
// Now that we've got the syntax engine, we can ask it for the coloring information
std::vector< size_t > offsets;
std::vector< size_t > lengths;
std::vector< sLONG > styles;
syntaxEngine->GetColoringForTesting( data, offsets, lengths, styles );
// Loop over the returned results, turning them into a vector of VJSValue objects
std::vector< VJSValue > results;
std::vector< JSColorResult * > releaseList;
for (size_t i = 0; i < offsets.size(); i++) {
JSColorResult *result = new JSColorResult( offsets[ i ], lengths[ i ], styles[ i ] );
releaseList.push_back( result );
results.push_back( VJSLanguageSyntaxTesterColorResults::CreateInstance( ioParams.GetContextRef(), result ) );
}
// Return an array of our results
VJSArray arr( ioParams.GetContextRef() );
arr.PushValues( results );
ioParams.ReturnValue( arr );
for (std::vector< JSColorResult * >::iterator iter = releaseList.begin(); iter != releaseList.end(); ++iter) {
(*iter)->Release();
}
}
languageSyntax->Release();
}
示例8: _Tokenize
void VJSLanguageSyntaxTester::_Tokenize( XBOX::VJSParms_callStaticFunction &ioParams, void * )
{
// We are expecting 2 JavaScript parameters:
// - source code to tokenize
// - extension of the fake file
VString sourceCode, extension;
if (ioParams.CountParams() == 2)
{
if (!ioParams.GetStringParam( 1, sourceCode )) return;
if (!ioParams.GetStringParam( 2, extension )) return;
}
else
return;
CLanguageSyntaxComponent *languageSyntax = (CLanguageSyntaxComponent *)VComponentManager::RetainComponent( (CType)CLanguageSyntaxComponent::Component_Type );
if (languageSyntax)
{
ISyntaxInterface *syntaxEngine = languageSyntax->GetSyntaxByExtension( extension );
if (syntaxEngine)
{
VectorOfVString tokens;
syntaxEngine->GetTokensForTesting(sourceCode, tokens);
VJSArray result( ioParams.GetContextRef() );
VJSValue jsval(ioParams.GetContextRef());
for (VectorOfVString::const_iterator it = tokens.begin(); it != tokens.end(); ++it)
{
jsval.SetString(*it);
result.PushValue(jsval);
}
ioParams.ReturnValue(result);
}
languageSyntax->Release();
}
}
示例9: _Open
void VJSXMLHttpRequest::_Open(XBOX::VJSParms_callStaticFunction& ioParms, XMLHttpRequest* inXhr)
{
XBOX::VString pMethod;
bool resMethod;
resMethod=ioParms.GetStringParam(1, pMethod);
XBOX::VString pUrl;
bool resUrl; //jmo - todo : Verifier les longueurs max d'une chaine et d'une URL
resUrl=ioParms.GetStringParam(2, pUrl);
bool pAsync;
bool resAsync;
resAsync=ioParms.GetBoolParam(3, &pAsync);
if(resMethod && resUrl && inXhr)
{
XBOX::VError res=inXhr->Open(pMethod, pUrl, pAsync); //ASync is optional, we don't care if it's not set
if(res!=XBOX::VE_OK)
XBOX::vThrowError(res);
}
else
XBOX::vThrowError(VE_XHRQ_JS_BINDING_ERROR);
}
示例10: _setPath
void VJSImage::_setPath(XBOX::VJSParms_callStaticFunction& ioParms, VJSPictureContainer* inPict)
{
VPicture* pic = inPict->GetPict();
VString path;
if (pic != nil)
{
if (ioParms.CountParams() == 0 || ioParms.IsNullParam(1))
{
pic->SetOutsidePath(""); // empty string means no outside
}
else if (ioParms.IsBooleanParam(1))
{
pic->SetOutsidePath("*");
}
else if (ioParms.IsStringParam(1))
{
ioParms.GetStringParam(1, path);
pic->SetOutsidePath(path);
if (!path.IsEmpty())
pic->ReloadFromOutsidePath();
}
else
{
VFile* file = ioParms.RetainFileParam(1);
if (file != nil)
{
file->GetPath(path, FPS_POSIX);
pic->SetOutsidePath(path);
if (file->Exists())
pic->ReloadFromOutsidePath();
}
else
pic->SetOutsidePath("");
QuickReleaseRefCountable(file);
}
//inPict->SetModif();
}
}
示例11: _GetResponseHeader
void VJSXMLHttpRequest::_GetResponseHeader(XBOX::VJSParms_callStaticFunction& ioParms, XMLHttpRequest* inXhr)
{
XBOX::VString pHeader;
bool resHeader;
resHeader=ioParms.GetStringParam(1, pHeader);
if(resHeader && inXhr)
{
XBOX::VString value;
XBOX::VError res;
res=inXhr->GetResponseHeader(pHeader, &value);
//Don't throw any error here, but returns null
if(res==XBOX::VE_OK)
ioParms.ReturnString(value);
else
ioParms.ReturnNullValue();
}
else
XBOX::vThrowError(VE_XHRQ_JS_BINDING_ERROR);
}
示例12: _listen
void VJSNetServerSyncClass::_listen (XBOX::VJSParms_callStaticFunction &ioParms, VJSNetServerObject *inServer)
{
xbox_assert(inServer != NULL);
sLONG port;
if (ioParms.CountParams() >= 1) {
if (!ioParms.IsNumberParam(1) || !ioParms.GetLongParam(1, &port)) {
XBOX::vThrowError(XBOX::VE_JVSC_WRONG_PARAMETER_TYPE_NUMBER, "1");
return;
}
} else
port = 0; // Will use a random port (useful?).
// Re-use code of async listen().
#if WITH_DEPRECATED_IPV4_API
uLONG address;
if (ioParms.CountParams() >= 2) {
XBOX::VString hostname;
if (!ioParms.IsStringParam(2) || !ioParms.GetStringParam(2, hostname)) {
XBOX::vThrowError(XBOX::VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "2");
return;
}
address = XBOX::ServerNetTools::ResolveAddress(hostname);
} else
address = 0; // Same as "localhost".
#else
//jmo - je ne comprends pas bien la logique du resolve sur le hostname...
// On veut une IP 'publique' ? J'ai simplifié.
VString address=VNetAddress::GetAnyIP();
#endif
// We are already listening, stop previous listener.
if (inServer->fConnectionListener != NULL)
inServer->Close();
// Setup new listener.
if ((inServer->fSockListener = new XBOX::VSockListener()) == NULL) {
XBOX::vThrowError(XBOX::VE_MEMORY_FULL);
return;
}
XBOX::VError error;
error = XBOX::VE_OK;
if (inServer->fIsSSL)
error = inServer->fSockListener->SetKeyAndCertificate(inServer->fKey, inServer->fCertificate);
if (error != XBOX::VE_OK) {
inServer->Close();
XBOX::vThrowError(error);
}
else if (!inServer->fSockListener->SetBlocking(true)
|| !inServer->fSockListener->AddListeningPort(address, port, inServer->fIsSSL)
|| !inServer->fSockListener->StartListening()) {
inServer->Close();
XBOX::vThrowError(XBOX::VE_SRVR_FAILED_TO_CREATE_LISTENING_SOCKET);
}
else {
inServer->fAddress = address;
inServer->fPort = port;
}
}
示例13: _GetSymbol
void VJSLanguageSyntaxTester::_GetSymbol( XBOX::VJSParms_callStaticFunction &ioParams, void * )
{
// We are expecting 4 JavaScript parameters:
// - path to the symbol table
// - symbol name
// - symbol definition file
// - symbol definition line number
VString symTablePathStr, symbolName, symbolDefPath;
sLONG symbolDefLineNumber;
if (ioParams.CountParams() == 4) {
if (!ioParams.GetStringParam( 1, symTablePathStr )) return;
if (!ioParams.GetStringParam( 2, symbolName )) return;
if (!ioParams.GetStringParam( 3, symbolDefPath )) return;
if (!ioParams.GetLongParam( 4, &symbolDefLineNumber )) return;
}
else
return;
VFilePath symbolTablePath( symTablePathStr, FPS_POSIX);
VFilePath symbolDefFilePath( symbolDefPath, FPS_POSIX);
if ( ! symbolTablePath.IsValid() || ! symbolDefFilePath.IsValid() )
return;
CLanguageSyntaxComponent *languageSyntax = (CLanguageSyntaxComponent *)VComponentManager::RetainComponent( (CType)CLanguageSyntaxComponent::Component_Type );
if (languageSyntax)
{
// First, load up the symbol table as an actual table instead of just a path string
ISymbolTable *symTable = NULL;
if (!symTablePathStr.IsEmpty())
{
symTable = languageSyntax->CreateSymbolTable();
if (symTable)
{
VFile file(symbolTablePath);
if (symTable->OpenSymbolDatabase( file ))
{
// Get symbol file
std::vector< Symbols::IFile * > files = symTable->GetFilesByPathAndBaseFolder( symbolDefFilePath, eSymbolFileBaseFolderProject );
if ( ! files.empty() )
{
Symbols::IFile *file = files.front();
file->Retain();
for (std::vector< Symbols::IFile * >::iterator iter = files.begin(); iter != files.end(); ++iter)
(*iter)->Release();
// Gets symbol corresponding to given parameters
Symbols::ISymbol* owner = symTable->GetSymbolOwnerByLine(file, symbolDefLineNumber);
Symbols::ISymbol* sym = NULL;
if (NULL != owner && owner->GetName() == symbolName)
{
sym = owner;
sym->Retain();
}
if (NULL == sym)
{
std::vector< Symbols::ISymbol * > syms = symTable->GetSymbolsByName(owner, symbolName,file);
for (std::vector< Symbols::ISymbol * >::iterator iter = syms.begin(); iter != syms.end(); ++iter)
{
if ( ( (*iter)->GetLineNumber() + 1 ) == symbolDefLineNumber )
{
sym = *iter;
(*iter)->Retain();
}
(*iter)->Release();
}
}
if (NULL != sym)
{
VJSObject result(ioParams.GetContextRef());
VJSValue jsval(ioParams.GetContextRef());
VString signature;
symTable->GetSymbolSignature( sym, signature );
result.MakeEmpty();
jsval.SetString( sym->GetName() );
result.SetProperty(L"name", jsval, JS4D::PropertyAttributeNone);
jsval.SetString( sym->GetTypeName() );
result.SetProperty(L"type", jsval, JS4D::PropertyAttributeNone);
jsval.SetNumber( sym->GetLineNumber() + 1 );
result.SetProperty(L"line", jsval, JS4D::PropertyAttributeNone);
jsval.SetString( signature );
result.SetProperty(L"signature", jsval, JS4D::PropertyAttributeNone);
jsval.SetString( sym->GetKindString() );
result.SetProperty(L"kind", jsval, JS4D::PropertyAttributeNone);
ioParams.ReturnValue(result);
sym->Release();
//.........这里部分代码省略.........
示例14: _GotoDefinition
void VJSLanguageSyntaxTester::_GotoDefinition( XBOX::VJSParms_callStaticFunction &ioParams, void * )
{
VString filePathStr, symTablePathStr, selectionStr;
sLONG line = 0;
if (ioParams.CountParams() == 4)
{
if (!ioParams.GetStringParam( 1, symTablePathStr )) return;
if (!ioParams.GetStringParam( 2, filePathStr )) return;
if (!ioParams.GetLongParam( 3, &line )) return;
if (!ioParams.GetStringParam( 4, selectionStr )) return;
}
else
return;
VFilePath symbolTablePath( symTablePathStr, FPS_POSIX);
VFilePath filePath( filePathStr, FPS_POSIX);
if ( ! symbolTablePath.IsValid() || ! filePath.IsValid() )
return;
if ( line < 1 )
return;
CLanguageSyntaxComponent *languageSyntax = (CLanguageSyntaxComponent *)VComponentManager::RetainComponent( (CType)CLanguageSyntaxComponent::Component_Type );
if (languageSyntax)
{
// First, load up the symbol table as an actual table instead of just a path string
ISymbolTable *symTable = NULL;
if (!symTablePathStr.IsEmpty())
{
symTable = languageSyntax->CreateSymbolTable();
if (symTable)
{
VFile file(symbolTablePath);
if (symTable->OpenSymbolDatabase( file ))
{
// Now that we have all of the parameters grabbed, we can figure out which language syntax engine
// we want to load up (based on the test file), and ask it to give us completions. We can then take
// those completions and turn them into an array of values to pass back to the caller.
VString extension;
filePath.GetExtension( extension );
ISyntaxInterface *syntaxEngine = languageSyntax->GetSyntaxByExtension( extension );
if (syntaxEngine)
{
// Now that we've got the syntax engine, we can ask it for the completions we need
std::vector< IDefinition > definitions;
syntaxEngine->GetDefinitionsForTesting( selectionStr, symTable, filePath.GetPath(), line, definitions );
JSDefinitionResult *results = new JSDefinitionResult( definitions );
ioParams.ReturnValue( VJSLanguageSyntaxTesterDefinitionResults::CreateInstance( ioParams.GetContextRef(), results ) );
results->Release();
}
}
symTable->Release();
}
}
languageSyntax->Release();
}
}
示例15: _ParseFile
void VJSLanguageSyntaxTester::_ParseFile( XBOX::VJSParms_callStaticFunction &ioParams, void * )
{
// The caller has passed us the path to the symbol table and the path to the file to be
// parsed. We want to parse that file and then return back to the caller once the
// parsing is complete.
// We are expecting 4 parameters. One for the path to the symbol table,
// one for the path to the test file
if (ioParams.CountParams() < 4) return;
VString symTablePathStr, testFilePathStr, testFileBaseFolderStr, testFileExecContextStr;
if (!ioParams.GetStringParam( 1, symTablePathStr )) return;
if (!ioParams.GetStringParam( 2, testFilePathStr )) return;
if (!ioParams.GetStringParam( 3, testFileBaseFolderStr )) return;
if (!ioParams.GetStringParam( 4, testFileExecContextStr )) return;
VFilePath testFilePath( testFilePathStr, FPS_POSIX);
if ( ! testFilePath.IsValid() )
return;
ESymbolFileBaseFolder baseFolder;
ESymbolFileExecContext execContext;
// Get file base folder
if (testFileBaseFolderStr == CVSTR("project"))
baseFolder = eSymbolFileBaseFolderProject;
else if (testFileBaseFolderStr == CVSTR("jsf"))
baseFolder = eSymbolFileBaseFolderStudio;
else
return;
// Get file execution context
if (testFileExecContextStr == CVSTR("client"))
execContext = eSymbolFileExecContextClient;
else if (testFileExecContextStr == CVSTR("server"))
execContext = eSymbolFileExecContextServer;
else if (testFileExecContextStr == CVSTR("both"))
execContext = eSymbolFileExecContextClientServer;
else
return;
VFilePath symbolTablePath( symTablePathStr, FPS_POSIX);
if ( ! symbolTablePath.IsValid() )
return;
CLanguageSyntaxComponent *languageSyntax = (CLanguageSyntaxComponent *)VComponentManager::RetainComponent( (CType)CLanguageSyntaxComponent::Component_Type );
if (languageSyntax)
{
// First, load up the symbol table as an actual table instead of just a path string
ISymbolTable *symTable = languageSyntax->CreateSymbolTable();
if (symTable)
{
VFile file(symbolTablePath);
if (symTable->OpenSymbolDatabase( file))
{
IDocumentParserManager *parserManager = languageSyntax->CreateDocumentParserManager();
// Limit parser waiter scope as destructor will disconnect parsing signal
{
ParsingWaiter waiter( parserManager);
VString extension;
testFilePath.GetExtension(extension);
if ( extension == CVSTR("waModel") )
{
VLanguageSyntaxTesterCatalog* catalog = new VLanguageSyntaxTesterCatalog( testFilePath );
parserManager->ScheduleTask( (const void *)0xFEEDFACE, catalog, waiter.GetCookie(), symTable, IDocumentParserManager::kPriorityAboveNormal);
catalog->Release();
}
else
{
VSymbolFileInfos fileInfos(testFilePath, baseFolder, execContext);
parserManager->ScheduleTask( (const void *)0xFEEDFACE, /* Just needs to be unique per scheduler, but since this is a static method, there is no this pointer*/
fileInfos, waiter.GetCookie(), symTable, IDocumentParserManager::kPriorityAboveNormal );
}
waiter.Wait();
}
parserManager->Release();
}
symTable->Release();
}
languageSyntax->Release();
}
}