LLKeyTool::LLKeyTool(LLUUID key, void (*callback)(LLUUID, LLKeyType, LLAssetType::EType, BOOL, void*), void* user_data) { mKey = key; mCallback = callback; //lets add our handlers to the message system. if(mKeyTools.empty()) { mObjectPropertiesFamilyConnection = gMessageSystem->addHandlerFuncFast(_PREHASH_ObjectPropertiesFamily, &LLKeyTool::onObjectPropertiesFamily); mParcelInfoReplyConnection = gMessageSystem->addHandlerFuncFast(_PREHASH_ParcelInfoReply, &LLKeyTool::onParcelInfoReply); mImageDataConnection = gMessageSystem->addHandlerFuncFast(_PREHASH_ImageData, &LLKeyTool::onImageData); mImageNotInDatabaseConnection = gMessageSystem->addHandlerFuncFast(_PREHASH_ImageNotInDatabase, &LLKeyTool::onImageNotInDatabase); mTransferInfoConnection = gMessageSystem->addHandlerFuncFast(_PREHASH_TransferInfo, &LLKeyTool::onTransferInfo); } mKeyTools.push_back(this); mUserData = user_data; tryAgent(); tryTask(); tryGroup(); tryRegion(); tryParcel(); tryItem(); // try assets // it seems these come back in reverse order, so order them in reverse... std::list<LLAssetType::EType> ordered_asset_types; ordered_asset_types.push_back(LLAssetType::AT_BODYPART); ordered_asset_types.push_back(LLAssetType::AT_CLOTHING); ordered_asset_types.push_back(LLAssetType::AT_GESTURE); //ordered_asset_types.push_back(LLAssetType::AT_NOTECARD); // does not work anymore without an item ordered_asset_types.push_back(LLAssetType::AT_LANDMARK); ordered_asset_types.push_back(LLAssetType::AT_ANIMATION); ordered_asset_types.push_back(LLAssetType::AT_SOUND); ordered_asset_types.push_back(LLAssetType::AT_TEXTURE); for(std::list<LLAssetType::EType>::iterator iter = ordered_asset_types.begin(); iter != ordered_asset_types.end(); ++iter) { tryAsset(*iter); } }
LLKeyTool::LLKeyTool(LLUUID key, void (*callback)(LLUUID, LLKeyType, LLAssetType::EType, BOOL, void*), void* user_data) { mKey = key; mCallback = callback; mKeyTools.push_back(this); mUserData = user_data; mObjectPropertiesFamilyRequests = 0; mParcelInfoRequests = 0; mTransferRequests = 0; mImageRequests = 0; tryAgent(); tryTask(); tryGroup(); //tryRegion(); tryParcel(); tryItem(); // try assets // it seems these come back in reverse order, so order them in reverse... std::list<LLAssetType::EType> ordered_asset_types; ordered_asset_types.push_back(LLAssetType::AT_BODYPART); ordered_asset_types.push_back(LLAssetType::AT_CLOTHING); ordered_asset_types.push_back(LLAssetType::AT_GESTURE); //ordered_asset_types.push_back(LLAssetType::AT_NOTECARD); // does not work anymore without an item ordered_asset_types.push_back(LLAssetType::AT_LANDMARK); ordered_asset_types.push_back(LLAssetType::AT_ANIMATION); ordered_asset_types.push_back(LLAssetType::AT_SOUND); ordered_asset_types.push_back(LLAssetType::AT_TEXTURE); for(std::list<LLAssetType::EType>::iterator iter = ordered_asset_types.begin(); iter != ordered_asset_types.end(); ++iter) { tryAsset(*iter); } }