[EEP] LLMessage Changes
This commit is contained in:
@@ -58,6 +58,42 @@ const LLUUID CATEGORIZE_LOST_AND_FOUND_ID(std::string("00000000-0000-0000-0000-0
|
|||||||
|
|
||||||
const U64 TOXIC_ASSET_LIFETIME = (120 * 1000000); // microseconds
|
const U64 TOXIC_ASSET_LIFETIME = (120 * 1000000); // microseconds
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
bool operator == (const LLAssetStorage::LLGetAssetCallback &lhs, const LLAssetStorage::LLGetAssetCallback &rhs)
|
||||||
|
{
|
||||||
|
auto fnPtrLhs = lhs.target<LLAssetStorage::LLGetAssetCallback>();
|
||||||
|
auto fnPtrRhs = rhs.target<LLAssetStorage::LLGetAssetCallback>();
|
||||||
|
if (fnPtrLhs && fnPtrRhs)
|
||||||
|
return (*fnPtrLhs == *fnPtrRhs);
|
||||||
|
else if (!fnPtrLhs && !fnPtrRhs)
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rider: This is the general case of the operator declared above. The code compares the callback
|
||||||
|
// passed into the LLAssetStorage functions to determine if there are duplicated requests for an
|
||||||
|
// asset. Unfortunately std::function does not provide a direct way to compare two variables so
|
||||||
|
// we define the operator here.
|
||||||
|
// XCode is not very happy with the variadic temples in use below so we will just define the specific
|
||||||
|
// case of comparing two LLGetAssetCallback objects since that is all we really use.
|
||||||
|
//
|
||||||
|
// template<typename T, typename... U>
|
||||||
|
// bool operator == (const std::function<T(U...)> &a, const std::function <T(U...)> &b)
|
||||||
|
// {
|
||||||
|
// typedef T(fnType)(U...);
|
||||||
|
//
|
||||||
|
// auto fnPtrA = a.target<T(*)(U...)>();
|
||||||
|
// auto fnPtrB = b.target<T(*)(U...)>();
|
||||||
|
// if (fnPtrA && fnPtrB)
|
||||||
|
// return (*fnPtrA == *fnPtrB);
|
||||||
|
// else if (!fnPtrA && !fnPtrB)
|
||||||
|
// return true;
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
///----------------------------------------------------------------------------
|
///----------------------------------------------------------------------------
|
||||||
/// LLAssetInfo
|
/// LLAssetInfo
|
||||||
///----------------------------------------------------------------------------
|
///----------------------------------------------------------------------------
|
||||||
@@ -150,13 +186,13 @@ void LLAssetInfo::setFromNameValue( const LLNameValue& nv )
|
|||||||
}
|
}
|
||||||
|
|
||||||
///----------------------------------------------------------------------------
|
///----------------------------------------------------------------------------
|
||||||
/// LLAssetRequest
|
/// LLBaseDownloadRequest
|
||||||
///----------------------------------------------------------------------------
|
///----------------------------------------------------------------------------
|
||||||
|
|
||||||
LLBaseDownloadRequest::LLBaseDownloadRequest(const LLUUID &uuid, const LLAssetType::EType type)
|
LLBaseDownloadRequest::LLBaseDownloadRequest(const LLUUID &uuid, const LLAssetType::EType type)
|
||||||
: mUUID(uuid),
|
: mUUID(uuid),
|
||||||
mType(type),
|
mType(type),
|
||||||
mDownCallback(NULL),
|
mDownCallback(),
|
||||||
mUserData(NULL),
|
mUserData(NULL),
|
||||||
mHost(),
|
mHost(),
|
||||||
mIsTemp(FALSE),
|
mIsTemp(FALSE),
|
||||||
@@ -173,19 +209,21 @@ LLBaseDownloadRequest::LLBaseDownloadRequest(const LLUUID &uuid, const LLAssetTy
|
|||||||
LLBaseDownloadRequest::~LLBaseDownloadRequest()
|
LLBaseDownloadRequest::~LLBaseDownloadRequest()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// virtual
|
// virtual
|
||||||
LLBaseDownloadRequest* LLBaseDownloadRequest::getCopy()
|
LLBaseDownloadRequest* LLBaseDownloadRequest::getCopy()
|
||||||
{
|
{
|
||||||
return new LLBaseDownloadRequest(*this);
|
return new LLBaseDownloadRequest(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
///----------------------------------------------------------------------------
|
///----------------------------------------------------------------------------
|
||||||
/// LLAssetRequest
|
/// LLAssetRequest
|
||||||
///----------------------------------------------------------------------------
|
///----------------------------------------------------------------------------
|
||||||
|
|
||||||
LLAssetRequest::LLAssetRequest(const LLUUID &uuid, const LLAssetType::EType type)
|
LLAssetRequest::LLAssetRequest(const LLUUID &uuid, const LLAssetType::EType type)
|
||||||
: LLBaseDownloadRequest(uuid, type),
|
: LLBaseDownloadRequest(uuid, type),
|
||||||
mUpCallback( NULL ),
|
mUpCallback(),
|
||||||
mInfoCallback( NULL ),
|
mInfoCallback( NULL ),
|
||||||
mIsLocal(FALSE),
|
mIsLocal(FALSE),
|
||||||
mIsUserWaiting(FALSE),
|
mIsUserWaiting(FALSE),
|
||||||
@@ -273,6 +311,7 @@ LLBaseDownloadRequest* LLEstateAssetRequest::getCopy()
|
|||||||
return new LLEstateAssetRequest(*this);
|
return new LLEstateAssetRequest(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
///----------------------------------------------------------------------------
|
///----------------------------------------------------------------------------
|
||||||
/// LLAssetStorage
|
/// LLAssetStorage
|
||||||
///----------------------------------------------------------------------------
|
///----------------------------------------------------------------------------
|
||||||
@@ -291,14 +330,12 @@ LLAssetStorage::LLAssetStorage(LLMessageSystem *msg, LLXferManager *xfer, LLVFS
|
|||||||
_init(msg, xfer, vfs, static_vfs, upstream_host);
|
_init(msg, xfer, vfs, static_vfs, upstream_host);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
LLAssetStorage::LLAssetStorage(LLMessageSystem *msg, LLXferManager *xfer,
|
LLAssetStorage::LLAssetStorage(LLMessageSystem *msg, LLXferManager *xfer,
|
||||||
LLVFS *vfs, LLVFS *static_vfs)
|
LLVFS *vfs, LLVFS *static_vfs)
|
||||||
{
|
{
|
||||||
_init(msg, xfer, vfs, static_vfs, LLHost::invalid);
|
_init(msg, xfer, vfs, static_vfs, LLHost::invalid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void LLAssetStorage::_init(LLMessageSystem *msg,
|
void LLAssetStorage::_init(LLMessageSystem *msg,
|
||||||
LLXferManager *xfer,
|
LLXferManager *xfer,
|
||||||
LLVFS *vfs,
|
LLVFS *vfs,
|
||||||
@@ -443,7 +480,7 @@ bool LLAssetStorage::findInStaticVFSAndInvokeCallback(const LLUUID& uuid, LLAsse
|
|||||||
// IW - uuid is passed by value to avoid side effects, please don't re-add &
|
// IW - uuid is passed by value to avoid side effects, please don't re-add &
|
||||||
void LLAssetStorage::getAssetData(const LLUUID uuid,
|
void LLAssetStorage::getAssetData(const LLUUID uuid,
|
||||||
LLAssetType::EType type,
|
LLAssetType::EType type,
|
||||||
LLGetAssetCallback callback,
|
LLAssetStorage::LLGetAssetCallback callback,
|
||||||
void *user_data,
|
void *user_data,
|
||||||
BOOL is_priority)
|
BOOL is_priority)
|
||||||
{
|
{
|
||||||
@@ -1305,9 +1342,13 @@ BOOL is_priority)
|
|||||||
iter != mPendingDownloads.end(); )
|
iter != mPendingDownloads.end(); )
|
||||||
{
|
{
|
||||||
LLAssetRequest* tmp = *iter++;
|
LLAssetRequest* tmp = *iter++;
|
||||||
|
|
||||||
|
//void(*const* cbptr)(LLVFS *, const LLUUID &, LLAssetType::EType, void *, S32, LLExtStat)
|
||||||
|
auto cbptr = tmp->mDownCallback.target<void(*)(LLVFS *, const LLUUID &, LLAssetType::EType, void *, S32, LLExtStat)>();
|
||||||
|
|
||||||
if (type == tmp->getType() &&
|
if (type == tmp->getType() &&
|
||||||
uuid == tmp->getUUID() &&
|
uuid == tmp->getUUID() &&
|
||||||
legacyGetDataCallback == tmp->mDownCallback &&
|
(cbptr && (*cbptr == legacyGetDataCallback)) &&
|
||||||
callback == ((LLLegacyAssetRequest *)tmp->mUserData)->mDownCallback &&
|
callback == ((LLLegacyAssetRequest *)tmp->mUserData)->mDownCallback &&
|
||||||
user_data == ((LLLegacyAssetRequest *)tmp->mUserData)->mUserData)
|
user_data == ((LLLegacyAssetRequest *)tmp->mUserData)->mUserData)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
#define LL_LLASSETSTORAGE_H
|
#define LL_LLASSETSTORAGE_H
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <functional>
|
||||||
|
|
||||||
#include "lluuid.h"
|
#include "lluuid.h"
|
||||||
#include "lltimer.h"
|
#include "lltimer.h"
|
||||||
@@ -60,6 +61,14 @@ const int LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE = -4;
|
|||||||
const int LL_ERR_INSUFFICIENT_PERMISSIONS = -5;
|
const int LL_ERR_INSUFFICIENT_PERMISSIONS = -5;
|
||||||
const int LL_ERR_PRICE_MISMATCH = -23018;
|
const int LL_ERR_PRICE_MISMATCH = -23018;
|
||||||
|
|
||||||
|
// *TODO: these typedefs are passed into the VFS via a legacy C function pointer
|
||||||
|
// future project would be to convert these to C++ callables (std::function<>) so that
|
||||||
|
// we can use bind and remove the userData parameter.
|
||||||
|
//
|
||||||
|
typedef std::function<void(LLVFS *vfs, const LLUUID &asset_id, LLAssetType::EType asset_type, void *user_data, S32 status, LLExtStat ext_status)> LLGetAssetCallback;
|
||||||
|
typedef std::function<void(const LLUUID &asset_id, void *user_data, S32 status, LLExtStat ext_status)> LLStoreAssetCallback;
|
||||||
|
|
||||||
|
|
||||||
class LLAssetInfo
|
class LLAssetInfo
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
@@ -111,15 +120,13 @@ protected:
|
|||||||
LLAssetType::EType mType;
|
LLAssetType::EType mType;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void (*mDownCallback)(LLVFS*, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat);
|
LLGetAssetCallback mDownCallback;
|
||||||
|
// void(*mDownCallback)(LLVFS*, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat);
|
||||||
|
|
||||||
void *mUserData;
|
void *mUserData;
|
||||||
LLHost mHost;
|
LLHost mHost;
|
||||||
BOOL mIsTemp;
|
BOOL mIsTemp;
|
||||||
|
|
||||||
F64Seconds mTime; // Message system time
|
F64Seconds mTime; // Message system time
|
||||||
|
|
||||||
BOOL mIsPriority;
|
BOOL mIsPriority;
|
||||||
BOOL mDataSentInFirstPacket;
|
BOOL mDataSentInFirstPacket;
|
||||||
BOOL mDataIsInVFS;
|
BOOL mDataIsInVFS;
|
||||||
@@ -135,7 +142,8 @@ public:
|
|||||||
|
|
||||||
virtual LLBaseDownloadRequest* getCopy();
|
virtual LLBaseDownloadRequest* getCopy();
|
||||||
|
|
||||||
void (*mUpCallback)(const LLUUID&, void *, S32, LLExtStat);
|
LLStoreAssetCallback mUpCallback;
|
||||||
|
// void (*mUpCallback)(const LLUUID&, void *, S32, LLExtStat);
|
||||||
void (*mInfoCallback)(LLAssetInfo *, void *, S32);
|
void (*mInfoCallback)(LLAssetInfo *, void *, S32);
|
||||||
|
|
||||||
BOOL mIsLocal;
|
BOOL mIsLocal;
|
||||||
@@ -185,8 +193,6 @@ protected:
|
|||||||
// Map of known bad assets
|
// Map of known bad assets
|
||||||
typedef std::map<LLUUID,U64,lluuid_less> toxic_asset_map_t;
|
typedef std::map<LLUUID,U64,lluuid_less> toxic_asset_map_t;
|
||||||
|
|
||||||
typedef void (*LLGetAssetCallback)(LLVFS *vfs, const LLUUID &asset_id,
|
|
||||||
LLAssetType::EType asset_type, void *user_data, S32 status, LLExtStat ext_status);
|
|
||||||
|
|
||||||
|
|
||||||
class LLAssetStorage
|
class LLAssetStorage
|
||||||
@@ -195,7 +201,8 @@ public:
|
|||||||
// VFS member is public because static child methods need it :(
|
// VFS member is public because static child methods need it :(
|
||||||
LLVFS *mVFS;
|
LLVFS *mVFS;
|
||||||
LLVFS *mStaticVFS;
|
LLVFS *mStaticVFS;
|
||||||
typedef void (*LLStoreAssetCallback)(const LLUUID &asset_id, void *user_data, S32 status, LLExtStat ext_status);
|
typedef ::LLStoreAssetCallback LLStoreAssetCallback;
|
||||||
|
typedef ::LLGetAssetCallback LLGetAssetCallback;
|
||||||
|
|
||||||
enum ERequestType
|
enum ERequestType
|
||||||
{
|
{
|
||||||
@@ -240,7 +247,6 @@ public:
|
|||||||
|
|
||||||
// public interface methods
|
// public interface methods
|
||||||
// note that your callback may get called BEFORE the function returns
|
// note that your callback may get called BEFORE the function returns
|
||||||
|
|
||||||
void getAssetData(const LLUUID uuid, LLAssetType::EType atype, LLGetAssetCallback cb, void *user_data, BOOL is_priority = FALSE);
|
void getAssetData(const LLUUID uuid, LLAssetType::EType atype, LLGetAssetCallback cb, void *user_data, BOOL is_priority = FALSE);
|
||||||
|
|
||||||
std::vector<LLUUID> mBlackListedAsset;
|
std::vector<LLUUID> mBlackListedAsset;
|
||||||
@@ -382,8 +388,8 @@ protected:
|
|||||||
void _cleanupRequests(BOOL all, S32 error);
|
void _cleanupRequests(BOOL all, S32 error);
|
||||||
void _callUploadCallbacks(const LLUUID &uuid, const LLAssetType::EType asset_type, BOOL success, LLExtStat ext_status);
|
void _callUploadCallbacks(const LLUUID &uuid, const LLAssetType::EType asset_type, BOOL success, LLExtStat ext_status);
|
||||||
|
|
||||||
virtual void _queueDataRequest(const LLUUID& uuid, LLAssetType::EType type,
|
virtual void _queueDataRequest(const LLUUID& uuid, LLAssetType::EType type, LLGetAssetCallback callback,
|
||||||
void (*callback)(LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat),
|
// void (*callback)(LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat),
|
||||||
void *user_data, BOOL duplicate,
|
void *user_data, BOOL duplicate,
|
||||||
BOOL is_priority) = 0;
|
BOOL is_priority) = 0;
|
||||||
|
|
||||||
@@ -429,7 +435,7 @@ class LLLegacyAssetRequest
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
void (*mDownCallback)(const char *, const LLUUID&, void *, S32, LLExtStat);
|
void (*mDownCallback)(const char *, const LLUUID&, void *, S32, LLExtStat);
|
||||||
LLAssetStorage::LLStoreAssetCallback mUpCallback;
|
LLStoreAssetCallback mUpCallback;
|
||||||
|
|
||||||
void *mUserData;
|
void *mUserData;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -544,7 +544,7 @@ void LLCircuitData::checkPeriodTime()
|
|||||||
mBytesOutLastPeriod = mBytesOutThisPeriod;
|
mBytesOutLastPeriod = mBytesOutThisPeriod;
|
||||||
mBytesInThisPeriod = S32Bytes(0);
|
mBytesInThisPeriod = S32Bytes(0);
|
||||||
mBytesOutThisPeriod = S32Bytes(0);
|
mBytesOutThisPeriod = S32Bytes(0);
|
||||||
mLastPeriodLength = period_length;
|
mLastPeriodLength = F32Seconds::convert(period_length);
|
||||||
|
|
||||||
mPeriodTime = mt_sec;
|
mPeriodTime = mt_sec;
|
||||||
}
|
}
|
||||||
@@ -1390,8 +1390,8 @@ F32Milliseconds LLCircuitData::getPingInTransitTime()
|
|||||||
|
|
||||||
if (mPingsInTransit)
|
if (mPingsInTransit)
|
||||||
{
|
{
|
||||||
time_since_ping_was_sent = ((mPingsInTransit*mHeartbeatInterval - F32Seconds(1))
|
time_since_ping_was_sent = F32Milliseconds::convert(((mPingsInTransit*mHeartbeatInterval - F32Seconds(1))
|
||||||
+ (LLMessageSystem::getMessageTimeSeconds() - mPingTime));
|
+ (LLMessageSystem::getMessageTimeSeconds() - mPingTime)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return time_since_ping_was_sent;
|
return time_since_ping_was_sent;
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
#include "lldispatcher.h"
|
#include "lldispatcher.h"
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include <iterator>
|
||||||
#include "llstl.h"
|
#include "llstl.h"
|
||||||
#include "message.h"
|
#include "message.h"
|
||||||
|
|
||||||
@@ -145,3 +146,25 @@ bool LLDispatcher::unpackMessage(
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// static
|
||||||
|
bool LLDispatcher::unpackLargeMessage(
|
||||||
|
LLMessageSystem* msg,
|
||||||
|
LLDispatcher::key_t& method,
|
||||||
|
LLUUID& invoice,
|
||||||
|
LLDispatcher::sparam_t& parameters)
|
||||||
|
{
|
||||||
|
msg->getStringFast(_PREHASH_MethodData, _PREHASH_Method, method);
|
||||||
|
msg->getUUIDFast(_PREHASH_MethodData, _PREHASH_Invoice, invoice);
|
||||||
|
S32 count = msg->getNumberOfBlocksFast(_PREHASH_ParamList);
|
||||||
|
for (S32 i = 0; i < count; ++i)
|
||||||
|
{
|
||||||
|
// This method treats all Parameter List params as strings and unpacks
|
||||||
|
// them regardless of length. If there is binary data it is the callers
|
||||||
|
// responsibility to decode it.
|
||||||
|
std::string param;
|
||||||
|
msg->getStringFast(_PREHASH_ParamList, _PREHASH_Parameter, param, i);
|
||||||
|
parameters.push_back(param);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|||||||
@@ -105,6 +105,12 @@ public:
|
|||||||
LLUUID& invoice,
|
LLUUID& invoice,
|
||||||
sparam_t& parameters);
|
sparam_t& parameters);
|
||||||
|
|
||||||
|
static bool unpackLargeMessage(
|
||||||
|
LLMessageSystem* msg,
|
||||||
|
key_t& method,
|
||||||
|
LLUUID& invoice,
|
||||||
|
sparam_t& parameters);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
typedef std::map<key_t, LLDispatchHandler*> dispatch_map_t;
|
typedef std::map<key_t, LLDispatchHandler*> dispatch_map_t;
|
||||||
dispatch_map_t mHandlers;
|
dispatch_map_t mHandlers;
|
||||||
|
|||||||
@@ -42,6 +42,9 @@ const U64 REGION_FLAGS_RESET_HOME_ON_TELEPORT = (1 << 3);
|
|||||||
// Does the sun move?
|
// Does the sun move?
|
||||||
const U64 REGION_FLAGS_SUN_FIXED = (1 << 4);
|
const U64 REGION_FLAGS_SUN_FIXED = (1 << 4);
|
||||||
|
|
||||||
|
// Does the estate owner allow private parcels?
|
||||||
|
const U64 REGION_FLAGS_ALLOW_ACCESS_OVERRIDE = (1 << 5);
|
||||||
|
|
||||||
// Can't change the terrain heightfield, even on owned parcels,
|
// Can't change the terrain heightfield, even on owned parcels,
|
||||||
// but can plant trees and grass.
|
// but can plant trees and grass.
|
||||||
const U64 REGION_FLAGS_BLOCK_TERRAFORM = (1 << 6);
|
const U64 REGION_FLAGS_BLOCK_TERRAFORM = (1 << 6);
|
||||||
@@ -51,6 +54,9 @@ const U64 REGION_FLAGS_BLOCK_LAND_RESELL = (1 << 7);
|
|||||||
|
|
||||||
// All content wiped once per night
|
// All content wiped once per night
|
||||||
const U64 REGION_FLAGS_SANDBOX = (1 << 8);
|
const U64 REGION_FLAGS_SANDBOX = (1 << 8);
|
||||||
|
|
||||||
|
const U64 REGION_FLAGS_ALLOW_ENVIRONMENT_OVERRIDE = (1 << 9);
|
||||||
|
|
||||||
const U64 REGION_FLAGS_GAMING = (1 << 10); // Denotes a gaming region on certain grids
|
const U64 REGION_FLAGS_GAMING = (1 << 10); // Denotes a gaming region on certain grids
|
||||||
const U64 REGION_FLAGS_HIDE_FROM_SEARCH = (1 << 11); // Hides region from search on certain grids
|
const U64 REGION_FLAGS_HIDE_FROM_SEARCH = (1 << 11); // Hides region from search on certain grids
|
||||||
const U64 REGION_FLAGS_SKIP_COLLISIONS = (1 << 12); // Pin all non agent rigid bodies
|
const U64 REGION_FLAGS_SKIP_COLLISIONS = (1 << 12); // Pin all non agent rigid bodies
|
||||||
|
|||||||
@@ -618,6 +618,7 @@ char const* const _PREHASH_GroupAccountSummaryRequest = LLMessageStringTable::ge
|
|||||||
char const* const _PREHASH_GroupVoteHistoryRequest = LLMessageStringTable::getInstance()->getString("GroupVoteHistoryRequest");
|
char const* const _PREHASH_GroupVoteHistoryRequest = LLMessageStringTable::getInstance()->getString("GroupVoteHistoryRequest");
|
||||||
char const* const _PREHASH_ParamValue = LLMessageStringTable::getInstance()->getString("ParamValue");
|
char const* const _PREHASH_ParamValue = LLMessageStringTable::getInstance()->getString("ParamValue");
|
||||||
char const* const _PREHASH_MaxAgents = LLMessageStringTable::getInstance()->getString("MaxAgents");
|
char const* const _PREHASH_MaxAgents = LLMessageStringTable::getInstance()->getString("MaxAgents");
|
||||||
|
char const* const _PREHASH_HardMaxAgents = LLMessageStringTable::getInstance()->getString("HardMaxAgents");
|
||||||
char const* const _PREHASH_CreateNewOutfitAttachments = LLMessageStringTable::getInstance()->getString("CreateNewOutfitAttachments");
|
char const* const _PREHASH_CreateNewOutfitAttachments = LLMessageStringTable::getInstance()->getString("CreateNewOutfitAttachments");
|
||||||
char const* const _PREHASH_RegionHandle = LLMessageStringTable::getInstance()->getString("RegionHandle");
|
char const* const _PREHASH_RegionHandle = LLMessageStringTable::getInstance()->getString("RegionHandle");
|
||||||
char const* const _PREHASH_TeleportProgress = LLMessageStringTable::getInstance()->getString("TeleportProgress");
|
char const* const _PREHASH_TeleportProgress = LLMessageStringTable::getInstance()->getString("TeleportProgress");
|
||||||
@@ -1374,6 +1375,11 @@ char const* const _PREHASH_OwnerMask = LLMessageStringTable::getInstance()->getS
|
|||||||
char const* const _PREHASH_TransferInventoryAck = LLMessageStringTable::getInstance()->getString("TransferInventoryAck");
|
char const* const _PREHASH_TransferInventoryAck = LLMessageStringTable::getInstance()->getString("TransferInventoryAck");
|
||||||
char const* const _PREHASH_RegionDenyAgeUnverified = LLMessageStringTable::getInstance()->getString("RegionDenyAgeUnverified");
|
char const* const _PREHASH_RegionDenyAgeUnverified = LLMessageStringTable::getInstance()->getString("RegionDenyAgeUnverified");
|
||||||
char const* const _PREHASH_AgeVerificationBlock = LLMessageStringTable::getInstance()->getString("AgeVerificationBlock");
|
char const* const _PREHASH_AgeVerificationBlock = LLMessageStringTable::getInstance()->getString("AgeVerificationBlock");
|
||||||
|
char const* const _PREHASH_RegionAllowAccessBlock = LLMessageStringTable::getInstance()->getString("RegionAllowAccessBlock");
|
||||||
|
char const* const _PREHASH_RegionAllowAccessOverride = LLMessageStringTable::getInstance()->getString("RegionAllowAccessOverride");
|
||||||
|
char const* const _PREHASH_ParcelEnvironmentBlock = LLMessageStringTable::getInstance()->getString("ParcelEnvironmentBlock");
|
||||||
|
char const* const _PREHASH_ParcelEnvironmentVersion = LLMessageStringTable::getInstance()->getString("ParcelEnvironmentVersion");
|
||||||
|
char const* const _PREHASH_RegionAllowEnvironmentOverride = LLMessageStringTable::getInstance()->getString("RegionAllowEnvironmentOverride");
|
||||||
char const* const _PREHASH_UCoord = LLMessageStringTable::getInstance()->getString("UCoord");
|
char const* const _PREHASH_UCoord = LLMessageStringTable::getInstance()->getString("UCoord");
|
||||||
char const* const _PREHASH_VCoord = LLMessageStringTable::getInstance()->getString("VCoord");
|
char const* const _PREHASH_VCoord = LLMessageStringTable::getInstance()->getString("VCoord");
|
||||||
char const* const _PREHASH_FaceIndex = LLMessageStringTable::getInstance()->getString("FaceIndex");
|
char const* const _PREHASH_FaceIndex = LLMessageStringTable::getInstance()->getString("FaceIndex");
|
||||||
|
|||||||
@@ -618,6 +618,7 @@ extern char const* const _PREHASH_GroupAccountSummaryRequest;
|
|||||||
extern char const* const _PREHASH_GroupVoteHistoryRequest;
|
extern char const* const _PREHASH_GroupVoteHistoryRequest;
|
||||||
extern char const* const _PREHASH_ParamValue;
|
extern char const* const _PREHASH_ParamValue;
|
||||||
extern char const* const _PREHASH_MaxAgents;
|
extern char const* const _PREHASH_MaxAgents;
|
||||||
|
extern char const* const _PREHASH_HardMaxAgents;
|
||||||
extern char const* const _PREHASH_CreateNewOutfitAttachments;
|
extern char const* const _PREHASH_CreateNewOutfitAttachments;
|
||||||
extern char const* const _PREHASH_RegionHandle;
|
extern char const* const _PREHASH_RegionHandle;
|
||||||
extern char const* const _PREHASH_TeleportProgress;
|
extern char const* const _PREHASH_TeleportProgress;
|
||||||
@@ -1374,6 +1375,11 @@ extern char const* const _PREHASH_OwnerMask;
|
|||||||
extern char const* const _PREHASH_TransferInventoryAck;
|
extern char const* const _PREHASH_TransferInventoryAck;
|
||||||
extern char const* const _PREHASH_RegionDenyAgeUnverified;
|
extern char const* const _PREHASH_RegionDenyAgeUnverified;
|
||||||
extern char const* const _PREHASH_AgeVerificationBlock;
|
extern char const* const _PREHASH_AgeVerificationBlock;
|
||||||
|
extern char const* const _PREHASH_RegionAllowAccessBlock;
|
||||||
|
extern char const* const _PREHASH_RegionAllowAccessOverride;
|
||||||
|
extern char const* const _PREHASH_ParcelEnvironmentBlock;
|
||||||
|
extern char const* const _PREHASH_ParcelEnvironmentVersion;
|
||||||
|
extern char const* const _PREHASH_RegionAllowEnvironmentOverride;
|
||||||
extern char const* const _PREHASH_UCoord;
|
extern char const* const _PREHASH_UCoord;
|
||||||
extern char const* const _PREHASH_VCoord;
|
extern char const* const _PREHASH_VCoord;
|
||||||
extern char const* const _PREHASH_FaceIndex;
|
extern char const* const _PREHASH_FaceIndex;
|
||||||
|
|||||||
@@ -1545,7 +1545,7 @@ void LLSnapshotLivePreview::saveTextureDone(LLUUID const& asset_id, void* user_d
|
|||||||
|
|
||||||
// Call the default call back.
|
// Call the default call back.
|
||||||
LLAssetStorage::LLStoreAssetCallback asset_callback = temporary ? &temp_upload_callback : &upload_done_callback;
|
LLAssetStorage::LLStoreAssetCallback asset_callback = temporary ? &temp_upload_callback : &upload_done_callback;
|
||||||
(*asset_callback)(asset_id, user_data, status, ext_status);
|
asset_callback(asset_id, user_data, status, ext_status);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This callback used when the capability NewFileAgentInventory is available and it wasn't a temporary.
|
// This callback used when the capability NewFileAgentInventory is available and it wasn't a temporary.
|
||||||
|
|||||||
@@ -66,18 +66,17 @@ public:
|
|||||||
F64Seconds timeout=LL_ASSET_STORAGE_TIMEOUT);
|
F64Seconds timeout=LL_ASSET_STORAGE_TIMEOUT);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
// virtual
|
// virtual
|
||||||
void _queueDataRequest(const LLUUID& uuid,
|
void _queueDataRequest(const LLUUID& uuid,
|
||||||
LLAssetType::EType type,
|
LLAssetType::EType type,
|
||||||
void (*callback) (LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat),
|
LLGetAssetCallback callback,
|
||||||
void *user_data,
|
void *user_data,
|
||||||
BOOL duplicate,
|
BOOL duplicate,
|
||||||
BOOL is_priority);
|
BOOL is_priority);
|
||||||
|
|
||||||
void queueRequestUDP(const LLUUID& uuid,
|
void queueRequestUDP(const LLUUID& uuid,
|
||||||
LLAssetType::EType type,
|
LLAssetType::EType type,
|
||||||
void (*callback) (LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat),
|
LLGetAssetCallback callback,
|
||||||
void *user_data,
|
void *user_data,
|
||||||
BOOL duplicate,
|
BOOL duplicate,
|
||||||
BOOL is_priority);
|
BOOL is_priority);
|
||||||
@@ -87,7 +86,7 @@ protected:
|
|||||||
void assetRequestCoro(LLViewerAssetRequest *req,
|
void assetRequestCoro(LLViewerAssetRequest *req,
|
||||||
const LLUUID uuid,
|
const LLUUID uuid,
|
||||||
LLAssetType::EType atype,
|
LLAssetType::EType atype,
|
||||||
void (*callback) (LLVFS *vfs, const LLUUID&, LLAssetType::EType, void *, S32, LLExtStat),
|
LLGetAssetCallback callback,
|
||||||
void *user_data);
|
void *user_data);
|
||||||
|
|
||||||
std::string getAssetURL(const std::string& cap_url, const LLUUID& uuid, LLAssetType::EType atype);
|
std::string getAssetURL(const std::string& cap_url, const LLUUID& uuid, LLAssetType::EType atype);
|
||||||
|
|||||||
Reference in New Issue
Block a user