Exemplo n.º 1
0
void plist_startElement(void *ctx, const xmlChar *name, const xmlChar **atts)
{
	CCDictMaker *pMaker = (CCDictMaker*)(ctx);
	std::string sName((char*)name);
	if( sName == "dict" )
	{
		NSDictionary<std::string, NSObject*> *pNewDict = new NSDictionary<std::string, NSObject*>();
		if(! pMaker->m_pRootDict)
		{
			pMaker->m_pRootDict = pNewDict;
			pNewDict->autorelease();
		}
		else
		{
			NSAssert(pMaker->m_pCurDict && !pMaker->m_sCurKey.empty(), "");
			pMaker->m_pCurDict->setObject(pNewDict, pMaker->m_sCurKey);
			pNewDict->release();
			pMaker->m_sCurKey.clear();
		}
		pMaker->m_pCurDict = pNewDict;
		pMaker->m_tDictStack.push(pMaker->m_pCurDict);
		pMaker->m_tState = SAX_DICT;
	}
	else if(sName == "key")
	{
		pMaker->m_tState = SAX_KEY;
	}
	else if(sName == "integer")
	{
		pMaker->m_tState = SAX_INT;
	}
	else if(sName == "real")
	{
		pMaker->m_tState = SAX_REAL;
	}
	else if(sName == "string")
	{
		pMaker->m_tState = SAX_STRING;
	}
	else
	{
		pMaker->m_tState = SAX_NONE;
	}
}
Exemplo n.º 2
0
NSPathDirectoryEnumerator*
	NSPathDirectoryEnumerator::initWithPath(NSString * path)
{
		self->directoryIndex = 0;
		self->directory = NSMutableArray::alloc()->init();
		struct dirent *directoryEntry;
	    DIR *directoryRef;
		directoryRef = opendir(path->cStringUsingEncoding(NSASCIIStringEncoding));
		while((directoryEntry = readdir(directoryRef)))
		{
			if(directoryEntry->d_name[0] == '.')
			{
				continue;
			}
			NSString* fileType ;
			if(S_ISREG(directoryEntry->d_type))
			{
				fileType = NSFileTypeRegular;
			}else if(S_ISDIR(directoryEntry->d_type))
			{
				fileType = NSFileTypeDirectory;
			}else if(S_ISCHR(directoryEntry->d_type))
			{
				fileType = NSFileTypeCharacterSpecial;
			}else if(S_ISBLK(directoryEntry->d_type))
			{
				fileType = NSFileTypeBlockSpecial;
			}else if(S_ISSOCK(directoryEntry->d_type))
			{
				fileType = NSFileTypeSocket;
			}
			NSDictionary* attributefile = NSDictionary::alloc()->initWithObjectsAndKeys(
				fileType ,NSFileType,NSSTR(directoryEntry->d_name),NSFileEntry,nil);
			self->directory->addObject(attributefile);
			attributefile->release();
		}
		closedir(directoryRef);
	return self;
}