예제 #1
0
void GetSFieldHandle<SFChunkBlockPtrMap>::flatten(MapList &vList)
{
    vList.clear();

    SFChunkBlockPtrMap const *pMap = 
        static_cast<SFChunkBlockPtrMap const *>(_pField);

    if(pMap != NULL)
    {
        ChunkBlockMap::const_iterator mapIt  = pMap->getValue().begin();
        ChunkBlockMap::const_iterator mapEnd = pMap->getValue().end  ();

        for(; mapIt != mapEnd; ++mapIt)
        {
            ListEntry   tmpEntry;

            KeyPool::the()->keyToStringList(mapIt->first,
                                            tmpEntry.first);

            tmpEntry.second = mapIt->second;

            vList.push_back(tmpEntry);
        }
    }
}
void GetSFieldHandle<SFAttachmentPtrMap>::flatten(MapList &vList)
{
    vList.clear();

    SFAttachmentPtrMap const *pMap = 
        static_cast<SFAttachmentPtrMap const *>(_pField);

    if(pMap != NULL)
    {
        AttachmentMap::const_iterator mapIt  = pMap->getValue().begin();
        AttachmentMap::const_iterator mapEnd = pMap->getValue().end  ();

        for(; mapIt != mapEnd; ++mapIt)
        {
            if(mapIt->second->getInternal() == true)
                continue;

            std::string szKey;

            TypeTraits<UInt32>::putToString((mapIt->first & 0x0000FFFF), 
                                            szKey);

            ListEntry tmpEntry;

            tmpEntry.first.push_back(szKey);
            tmpEntry.second = mapIt->second;

            vList.push_back(tmpEntry);
        }
    }
}