00001
00031 #ifndef LL_LLPARCEL_H
00032 #define LL_LLPARCEL_H
00033
00034 #include <time.h>
00035 #include <iostream>
00036
00037 #include "lluuid.h"
00038 #include "llparcelflags.h"
00039 #include "llpermissions.h"
00040 #include "v3math.h"
00041
00042
00043
00044 const F32 PARCEL_GRID_STEP_METERS = 4.f;
00045
00046
00047 const S32 PARCEL_UNIT_AREA = 16;
00048
00049
00050 const F32 PARCEL_HEIGHT = 50.f;
00051
00052
00053 const F32 BAN_HEIGHT = 768.f;
00054
00055
00056 const S32 PARCEL_MAX_ACCESS_LIST = 300;
00057
00058
00059 const F32 PARCEL_MAX_ENTRIES_PER_PACKET = 48.f;
00060
00061
00062 const S32 PARCEL_DIRECTORY_FEE = 30;
00063
00064 const S32 PARCEL_PASS_PRICE_DEFAULT = 10;
00065 const F32 PARCEL_PASS_HOURS_DEFAULT = 1.f;
00066
00067
00068
00069 const S32 PARCEL_OVERLAY_CHUNKS = 4;
00070
00071
00072 const U8 PARCEL_COLOR_MASK = 0x07;
00073 const U8 PARCEL_PUBLIC = 0x00;
00074 const U8 PARCEL_OWNED = 0x01;
00075 const U8 PARCEL_GROUP = 0x02;
00076 const U8 PARCEL_SELF = 0x03;
00077 const U8 PARCEL_FOR_SALE = 0x04;
00078 const U8 PARCEL_AUCTION = 0x05;
00079
00080
00081
00082
00083 const U8 PARCEL_SOUND_LOCAL = 0x20;
00084 const U8 PARCEL_WEST_LINE = 0x40;
00085 const U8 PARCEL_SOUTH_LINE = 0x80;
00086
00087
00088 const S32 PARCEL_RESULT_NO_DATA = -1;
00089 const S32 PARCEL_RESULT_SUCCESS = 0;
00090 const S32 PARCEL_RESULT_MULTIPLE = 1;
00091
00092 const S32 SELECTED_PARCEL_SEQ_ID = -10000;
00093 const S32 COLLISION_NOT_IN_GROUP_PARCEL_SEQ_ID = -20000;
00094 const S32 COLLISION_BANNED_PARCEL_SEQ_ID = -30000;
00095 const S32 COLLISION_NOT_ON_LIST_PARCEL_SEQ_ID = -40000;
00096 const S32 HOVERED_PARCEL_SEQ_ID = -50000;
00097
00098 const U32 RT_NONE = 0x1 << 0;
00099 const U32 RT_OWNER = 0x1 << 1;
00100 const U32 RT_GROUP = 0x1 << 2;
00101 const U32 RT_OTHER = 0x1 << 3;
00102 const U32 RT_LIST = 0x1 << 4;
00103 const U32 RT_SELL = 0x1 << 5;
00104
00105 class LLMessageSystem;
00106 class LLSD;
00107
00108 class LLAccessEntry
00109 {
00110 public:
00111 LLUUID mID;
00112 S32 mTime;
00113 U32 mFlags;
00114 };
00115
00116 typedef std::map<LLUUID,LLAccessEntry>::iterator access_map_iterator;
00117 typedef std::map<LLUUID,LLAccessEntry>::const_iterator access_map_const_iterator;
00118
00119 class LLParcel
00120 {
00121 public:
00122 enum EOwnershipStatus
00123 {
00124 OS_LEASED = 0,
00125 OS_LEASE_PENDING = 1,
00126 OS_ABANDONED = 2,
00127 OS_COUNT = 3,
00128 OS_NONE = -1
00129 };
00130 enum ECategory
00131 {
00132 C_NONE = 0,
00133 C_LINDEN,
00134 C_ADULT,
00135 C_ARTS,
00136 C_BUSINESS,
00137 C_EDUCATIONAL,
00138 C_GAMING,
00139 C_HANGOUT,
00140 C_NEWCOMER,
00141 C_PARK,
00142 C_RESIDENTIAL,
00143 C_SHOPPING,
00144 C_STAGE,
00145 C_OTHER,
00146 C_COUNT,
00147 C_ANY = -1
00148 };
00149 enum EAction
00150 {
00151 A_CREATE = 0,
00152 A_RELEASE = 1,
00153 A_ABSORB = 2,
00154 A_ABSORBED = 3,
00155 A_DIVIDE = 4,
00156 A_DIVISION = 5,
00157 A_ACQUIRE = 6,
00158 A_RELINQUISH = 7,
00159 A_CONFIRM = 8,
00160 A_COUNT = 9,
00161 A_UNKNOWN = -1
00162 };
00163
00164 enum ELandingType
00165 {
00166 L_NONE = 0,
00167 L_LANDING_POINT = 1,
00168 L_DIRECT = 2
00169 };
00170
00171
00172 LLParcel();
00173 LLParcel(
00174 const LLUUID &owner_id,
00175 BOOL modify,
00176 BOOL terraform,
00177 BOOL damage,
00178 time_t claim_date,
00179 S32 claim_price,
00180 S32 rent_price,
00181 S32 area,
00182 S32 sim_object_limit,
00183 F32 parcel_object_bonus,
00184 BOOL is_group_owned = FALSE);
00185 virtual ~LLParcel();
00186
00187 void init(
00188 const LLUUID &owner_id,
00189 BOOL modify,
00190 BOOL terraform,
00191 BOOL damage,
00192 time_t claim_date,
00193 S32 claim_price,
00194 S32 rent_price,
00195 S32 area,
00196 S32 sim_object_limit,
00197 F32 parcel_object_bonus,
00198 BOOL is_group_owned = FALSE);
00199
00200
00201 void overrideParcelFlags(U32 flags);
00202
00203 void overrideOwner(
00204 const LLUUID& owner_id,
00205 BOOL is_group_owned = FALSE);
00206 void overrideSaleTimerExpires(F32 secs_left) { mSaleTimerExpires.setTimerExpirySec(secs_left); }
00207
00208
00209 void generateNewID() { mID.generate(); }
00210 void setName(const LLString& name);
00211 void setDesc(const LLString& desc);
00212 void setMusicURL(const LLString& url);
00213 void setMediaURL(const LLString& url);
00214 void setMediaID(const LLUUID& id) { mMediaID = id; }
00215 void setMediaAutoScale ( U8 flagIn ) { mMediaAutoScale = flagIn; }
00216 virtual void setLocalID(S32 local_id);
00217
00218
00219 void clearParcel();
00220
00221
00222
00223 void setInEscrow(bool in_escrow) { mInEscrow = in_escrow; }
00224
00225 void setAuthorizedBuyerID(const LLUUID& id) { mAuthBuyerID = id; }
00226
00227 void setCategory(ECategory category) { mCategory = category; }
00228 void setSnapshotID(const LLUUID& id) { mSnapshotID = id; }
00229 void setUserLocation(const LLVector3& pos) { mUserLocation = pos; }
00230 void setUserLookAt(const LLVector3& rot) { mUserLookAt = rot; }
00231 void setLandingType(const ELandingType type) { mLandingType = type; }
00232
00233 void setAuctionID(U32 auction_id) { mAuctionID = auction_id;}
00234
00235 void setAllParcelFlags(U32 flags);
00236 void setParcelFlag(U32 flag, BOOL b);
00237
00238 void setArea(S32 area, S32 sim_object_limit);
00239 void setDiscountRate(F32 rate);
00240
00241 void setAllowModify(BOOL b) { setParcelFlag(PF_CREATE_OBJECTS, b); }
00242 void setAllowGroupModify(BOOL b) { setParcelFlag(PF_CREATE_GROUP_OBJECTS, b); }
00243 void setAllowAllObjectEntry(BOOL b) { setParcelFlag(PF_ALLOW_ALL_OBJECT_ENTRY, b); }
00244 void setAllowGroupObjectEntry(BOOL b) { setParcelFlag(PF_ALLOW_GROUP_OBJECT_ENTRY, b); }
00245 void setAllowTerraform(BOOL b){setParcelFlag(PF_ALLOW_TERRAFORM, b); }
00246 void setAllowDamage(BOOL b) { setParcelFlag(PF_ALLOW_DAMAGE, b); }
00247 void setAllowFly(BOOL b) { setParcelFlag(PF_ALLOW_FLY, b); }
00248 void setAllowLandmark(BOOL b){ setParcelFlag(PF_ALLOW_LANDMARK, b); }
00249 void setAllowGroupScripts(BOOL b) { setParcelFlag(PF_ALLOW_GROUP_SCRIPTS, b); }
00250 void setAllowOtherScripts(BOOL b) { setParcelFlag(PF_ALLOW_OTHER_SCRIPTS, b); }
00251 void setAllowDeedToGroup(BOOL b) { setParcelFlag(PF_ALLOW_DEED_TO_GROUP, b); }
00252 void setContributeWithDeed(BOOL b) { setParcelFlag(PF_CONTRIBUTE_WITH_DEED, b); }
00253 void setForSale(BOOL b) { setParcelFlag(PF_FOR_SALE, b); }
00254 void setSoundOnly(BOOL b) { setParcelFlag(PF_SOUND_LOCAL, b); }
00255 void setDenyAnonymous(BOOL b) { setParcelFlag(PF_DENY_ANONYMOUS, b); }
00256 void setDenyIdentified(BOOL b) { setParcelFlag(PF_DENY_IDENTIFIED, b); }
00257 void setDenyTransacted(BOOL b) { setParcelFlag(PF_DENY_TRANSACTED, b); }
00258 void setRestrictPushObject(BOOL b) { setParcelFlag(PF_RESTRICT_PUSHOBJECT, b); }
00259
00260 void setDrawDistance(F32 dist) { mDrawDistance = dist; }
00261 void setSalePrice(S32 price) { mSalePrice = price; }
00262 void setGroupID(const LLUUID& id) { mGroupID = id; }
00263
00264 void setPassPrice(S32 price) { mPassPrice = price; }
00265 void setPassHours(F32 hours) { mPassHours = hours; }
00266
00267 BOOL importStream(std::istream& input_stream);
00268 BOOL importAccessEntry(std::istream& input_stream, LLAccessEntry* entry);
00269 BOOL exportStream(std::ostream& output_stream);
00270
00271 void packMessage(LLMessageSystem* msg);
00272 void unpackMessage(LLMessageSystem* msg);
00273
00274 void packAccessEntries(LLMessageSystem* msg,
00275 const std::map<LLUUID,LLAccessEntry>& list);
00276 void unpackAccessEntries(LLMessageSystem* msg,
00277 std::map<LLUUID,LLAccessEntry>* list);
00278
00279 void setAABBMin(const LLVector3& min) { mAABBMin = min; }
00280 void setAABBMax(const LLVector3& max) { mAABBMax = max; }
00281
00282
00283 void extendAABB(const LLVector3& box_min, const LLVector3& box_max);
00284
00285 void dump();
00286
00287
00288
00289 void expirePasses(S32 now);
00290
00291
00292 BOOL addToAccessList(const LLUUID& agent_id, S32 time);
00293 BOOL addToBanList(const LLUUID& agent_id, S32 time);
00294 BOOL removeFromAccessList(const LLUUID& agent_id);
00295 BOOL removeFromBanList(const LLUUID& agent_id);
00296
00297
00298 const LLUUID& getID() const { return mID; }
00299 const LLString& getName() const { return mName; }
00300 const LLString& getDesc() const { return mDesc; }
00301 const LLString& getMusicURL() const { return mMusicURL; }
00302 const LLString& getMediaURL() const { return mMediaURL; }
00303 const LLUUID& getMediaID() const { return mMediaID; }
00304 U8 getMediaAutoScale() const { return mMediaAutoScale; }
00305 S32 getLocalID() const { return mLocalID; }
00306 const LLUUID& getOwnerID() const { return mOwnerID; }
00307 const LLUUID& getGroupID() const { return mGroupID; }
00308 S32 getPassPrice() const { return mPassPrice; }
00309 F32 getPassHours() const { return mPassHours; }
00310 BOOL getIsGroupOwned() const { return mGroupOwned; }
00311
00312 U32 getAuctionID() const { return mAuctionID; }
00313 bool isInEscrow() const { return mInEscrow; }
00314
00315 BOOL isPublic() const;
00316
00317
00318 const LLVector3& getUserLocation() const { return mUserLocation; }
00319 const LLVector3& getUserLookAt() const { return mUserLookAt; }
00320 ELandingType getLandingType() const { return mLandingType; }
00321
00322
00323 const LLUUID& getSnapshotID() const { return mSnapshotID; }
00324
00325
00326
00327
00328 const LLUUID& getAuthorizedBuyerID() const { return mAuthBuyerID; }
00329
00330
00331 BOOL isBuyerAuthorized(const LLUUID& buyer_id) const;
00332
00333
00334
00335
00336
00337
00338
00339 EOwnershipStatus getOwnershipStatus() const { return mStatus; }
00340 static const char* getOwnershipStatusString(EOwnershipStatus status);
00341 void setOwnershipStatus(EOwnershipStatus status) { mStatus = status; }
00342
00343
00344 ECategory getCategory() const {return mCategory; }
00345 static const char* getCategoryString(ECategory category);
00346 static const char* getCategoryUIString(ECategory category);
00347 static ECategory getCategoryFromString(const char* string);
00348 static ECategory getCategoryFromUIString(const char* string);
00349
00350
00351 static const char* getActionString(EAction action);
00352
00353
00354
00355
00356
00357
00358 BOOL isSaleTimerExpired(const U64& time);
00359
00360 F32 getSaleTimerExpires() { return mSaleTimerExpires.getRemainingTimeF32(); }
00361
00362
00363
00364
00365
00366
00367 void startSale(const LLUUID& buyer_id, BOOL is_buyer_group);
00368
00369
00370
00371 void expireSale(U32& type, U8& flags, LLUUID& from_id, LLUUID& to_id);
00372 void completeSale(U32& type, U8& flags, LLUUID& to_id);
00373 void clearSale();
00374
00375
00376
00377 BOOL getRecordTransaction() const { return mRecordTransaction; }
00378 void setRecordTransaction(BOOL record) { mRecordTransaction = record; }
00379
00380
00381
00382 U32 getParcelFlags() const { return mParcelFlags; }
00383
00384 BOOL getParcelFlag(U32 flag) const
00385 { return (mParcelFlags & flag) ? TRUE : FALSE; }
00386
00387
00388 BOOL getAllowModify() const
00389 { return (mParcelFlags & PF_CREATE_OBJECTS) ? TRUE : FALSE; }
00390
00391
00392 BOOL getAllowGroupModify() const
00393 { return (mParcelFlags & PF_CREATE_GROUP_OBJECTS) ? TRUE : FALSE; }
00394
00395
00396 BOOL getAllowDeedToGroup() const
00397 { return (mParcelFlags & PF_ALLOW_DEED_TO_GROUP) ? TRUE : FALSE; }
00398
00399
00400 BOOL getContributeWithDeed() const
00401 { return (mParcelFlags & PF_CONTRIBUTE_WITH_DEED) ? TRUE : FALSE; }
00402
00403
00404 BOOL getAllowTerraform() const
00405 { return (mParcelFlags & PF_ALLOW_TERRAFORM) ? TRUE : FALSE; }
00406
00407
00408 BOOL getAllowDamage() const
00409 { return (mParcelFlags & PF_ALLOW_DAMAGE) ? TRUE : FALSE; }
00410
00411 BOOL getAllowFly() const
00412 { return (mParcelFlags & PF_ALLOW_FLY) ? TRUE : FALSE; }
00413
00414 BOOL getAllowLandmark() const
00415 { return (mParcelFlags & PF_ALLOW_LANDMARK) ? TRUE : FALSE; }
00416
00417 BOOL getAllowGroupScripts() const
00418 { return (mParcelFlags & PF_ALLOW_GROUP_SCRIPTS) ? TRUE : FALSE; }
00419
00420 BOOL getAllowOtherScripts() const
00421 { return (mParcelFlags & PF_ALLOW_OTHER_SCRIPTS) ? TRUE : FALSE; }
00422
00423 BOOL getAllowAllObjectEntry() const
00424 { return (mParcelFlags & PF_ALLOW_ALL_OBJECT_ENTRY) ? TRUE : FALSE; }
00425
00426 BOOL getAllowGroupObjectEntry() const
00427 { return (mParcelFlags & PF_ALLOW_GROUP_OBJECT_ENTRY) ? TRUE : FALSE; }
00428
00429 BOOL getForSale() const
00430 { return (mParcelFlags & PF_FOR_SALE) ? TRUE : FALSE; }
00431 BOOL getSoundLocal() const
00432 { return (mParcelFlags & PF_SOUND_LOCAL) ? TRUE : FALSE; }
00433 BOOL getVoiceEnabled() const
00434 { return (mParcelFlags & PF_ALLOW_VOICE_CHAT) ? TRUE : FALSE; }
00435 BOOL getVoiceUseEstateChannel() const
00436 { return (mParcelFlags & PF_USE_ESTATE_VOICE_CHAN) ? TRUE : FALSE; }
00437 BOOL getAllowPublish() const
00438 { return (mParcelFlags & PF_ALLOW_PUBLISH) ? TRUE : FALSE; }
00439 BOOL getMaturePublish() const
00440 { return (mParcelFlags & PF_MATURE_PUBLISH) ? TRUE : FALSE; }
00441 BOOL getRestrictPushObject() const
00442 { return (mParcelFlags & PF_RESTRICT_PUSHOBJECT) ? TRUE : FALSE; }
00443 BOOL getRegionPushOverride() const
00444 { return mRegionPushOverride; }
00445 BOOL getRegionDenyAnonymousOverride() const
00446 { return mRegionDenyAnonymousOverride; }
00447 BOOL getRegionDenyIdentifiedOverride() const
00448 { return mRegionDenyIdentifiedOverride; }
00449 BOOL getRegionDenyTransactedOverride() const
00450 { return mRegionDenyTransactedOverride; }
00451
00452 F32 getDrawDistance() const { return mDrawDistance; }
00453 S32 getSalePrice() const { return mSalePrice; }
00454 time_t getClaimDate() const { return mClaimDate; }
00455 S32 getClaimPricePerMeter() const { return mClaimPricePerMeter; }
00456 S32 getRentPricePerMeter() const { return mRentPricePerMeter; }
00457
00458
00459
00460 S32 getArea() const { return mArea; }
00461
00462
00463
00464
00465 S32 getClaimPrice() const { return mClaimPricePerMeter * mArea; }
00466
00467
00468 BOOL allowModifyBy(const LLUUID &agent_id, const LLUUID &group_id) const;
00469
00470
00471 BOOL allowTerraformBy(const LLUUID &agent_id) const;
00472
00473
00474 S32 blockAccess(const LLUUID& agent_id, const LLUUID& group_id, const BOOL is_agent_identified, const BOOL is_agent_transacted) const;
00475
00476
00477 BOOL isAgentBanned(const LLUUID& agent_id) const;
00478
00479 static bool isAgentBlockedFromParcel(LLParcel* parcelp,
00480 const LLUUID& agent_id,
00481 const std::vector<LLUUID>& group_ids,
00482 const BOOL is_agent_identified,
00483 const BOOL is_agent_transacted);
00484
00485 bool operator==(const LLParcel &rhs) const;
00486
00487
00488 S32 getTotalRent() const;
00489 F32 getAdjustedRentPerMeter() const;
00490
00491 const LLVector3& getAABBMin() const { return mAABBMin; }
00492 const LLVector3& getAABBMax() const { return mAABBMax; }
00493 LLVector3 getCenterpoint() const;
00494
00495
00496 S32 getSimWideMaxPrimCapacity() const { return mSimWideMaxPrimCapacity; }
00497 S32 getSimWidePrimCount() const { return mSimWidePrimCount; }
00498
00499
00500 S32 getMaxPrimCapacity() const { return mMaxPrimCapacity; }
00501 S32 getPrimCount() const { return mOwnerPrimCount + mGroupPrimCount + mOtherPrimCount + mSelectedPrimCount; }
00502 S32 getOwnerPrimCount() const { return mOwnerPrimCount; }
00503 S32 getGroupPrimCount() const { return mGroupPrimCount; }
00504 S32 getOtherPrimCount() const { return mOtherPrimCount; }
00505 S32 getSelectedPrimCount() const{ return mSelectedPrimCount; }
00506 S32 getTempPrimCount() const { return mTempPrimCount; }
00507 F32 getParcelPrimBonus() const { return mParcelPrimBonus; }
00508
00509 S32 getCleanOtherTime() const { return mCleanOtherTime; }
00510
00511 void setMaxPrimCapacity(S32 max) { mMaxPrimCapacity = max; }
00512
00513 void setSimWideMaxPrimCapacity(S32 current) { mSimWideMaxPrimCapacity = current; }
00514 void setSimWidePrimCount(S32 current) { mSimWidePrimCount = current; }
00515
00516
00517 void setOwnerPrimCount(S32 current) { mOwnerPrimCount = current; }
00518 void setGroupPrimCount(S32 current) { mGroupPrimCount = current; }
00519 void setOtherPrimCount(S32 current) { mOtherPrimCount = current; }
00520 void setSelectedPrimCount(S32 current) { mSelectedPrimCount = current; }
00521 void setTempPrimCount(S32 current) { mTempPrimCount = current; }
00522 void setParcelPrimBonus(F32 bonus) { mParcelPrimBonus = bonus; }
00523
00524 void setCleanOtherTime(S32 time) { mCleanOtherTime = time; }
00525 void setRegionPushOverride(BOOL override) {mRegionPushOverride = override; }
00526 void setRegionDenyAnonymousOverride(BOOL override) { mRegionDenyAnonymousOverride = override; }
00527 void setRegionDenyIdentifiedOverride(BOOL override) { mRegionDenyIdentifiedOverride = override; }
00528 void setRegionDenyTransactedOverride(BOOL override) { mRegionDenyTransactedOverride = override; }
00529
00530
00531 void setPreviousOwnerID(LLUUID prev_owner) { mPreviousOwnerID = prev_owner; }
00532 void setPreviouslyGroupOwned(BOOL b) { mPreviouslyGroupOwned = b; }
00533 void setSellWithObjects(BOOL b) { setParcelFlag(PF_SELL_PARCEL_OBJECTS, b); }
00534
00535 LLUUID getPreviousOwnerID() const { return mPreviousOwnerID; }
00536 BOOL getPreviouslyGroupOwned() const { return mPreviouslyGroupOwned; }
00537 BOOL getSellWithObjects() const { return (mParcelFlags & PF_SELL_PARCEL_OBJECTS) ? TRUE : FALSE; }
00538
00539 protected:
00540 LLUUID mID;
00541 LLUUID mOwnerID;
00542 LLUUID mGroupID;
00543 BOOL mGroupOwned;
00544 LLUUID mPreviousOwnerID;
00545 BOOL mPreviouslyGroupOwned;
00546
00547 EOwnershipStatus mStatus;
00548 ECategory mCategory;
00549 LLUUID mAuthBuyerID;
00550 LLUUID mSnapshotID;
00551 LLVector3 mUserLocation;
00552 LLVector3 mUserLookAt;
00553 ELandingType mLandingType;
00554 LLTimer mSaleTimerExpires;
00555 S32 mGraceExtension;
00556 BOOL mRecordTransaction;
00557
00558
00559
00560
00561 U32 mAuctionID;
00562
00563
00564 bool mInEscrow;
00565
00566 time_t mClaimDate;
00567 S32 mClaimPricePerMeter;
00568 S32 mRentPricePerMeter;
00569 S32 mArea;
00570 F32 mDiscountRate;
00571 F32 mDrawDistance;
00572 U32 mParcelFlags;
00573 S32 mSalePrice;
00574 LLString mName;
00575 LLString mDesc;
00576 LLString mMusicURL;
00577 LLString mMediaURL;
00578 U8 mMediaAutoScale;
00579 LLUUID mMediaID;
00580 S32 mPassPrice;
00581 F32 mPassHours;
00582 LLVector3 mAABBMin;
00583 LLVector3 mAABBMax;
00584 S32 mMaxPrimCapacity;
00585 S32 mSimWidePrimCount;
00586 S32 mSimWideMaxPrimCapacity;
00587
00588 S32 mOwnerPrimCount;
00589 S32 mGroupPrimCount;
00590 S32 mOtherPrimCount;
00591 S32 mSelectedPrimCount;
00592 S32 mTempPrimCount;
00593 F32 mParcelPrimBonus;
00594 S32 mCleanOtherTime;
00595 BOOL mRegionPushOverride;
00596 BOOL mRegionDenyAnonymousOverride;
00597 BOOL mRegionDenyIdentifiedOverride;
00598 BOOL mRegionDenyTransactedOverride;
00599
00600
00601 public:
00602
00603 S32 mLocalID;
00604 LLUUID mBanListTransactionID;
00605 LLUUID mAccessListTransactionID;
00606 std::map<LLUUID,LLAccessEntry> mAccessList;
00607 std::map<LLUUID,LLAccessEntry> mBanList;
00608 std::map<LLUUID,LLAccessEntry> mTempBanList;
00609 std::map<LLUUID,LLAccessEntry> mTempAccessList;
00610 };
00611
00612
00613 #endif