Changeset 518 in Corrade


Ignore:
Timestamp:
Apr 7, 2017, 7:58:46 PM (6 months ago)
Author:
office
Message:
  • Fix group cache loose typing.
Location:
wasOpenMetaverse
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • wasOpenMetaverse/Caches/GroupCache.cs

    r487 r518  
    1515    {
    1616        public Dictionary<UUID, Cache.Group> nameCache = new Dictionary<UUID, Cache.Group>();
     17        public Dictionary<string, Cache.Group> groupCache = new Dictionary<string, Cache.Group>();
    1718
    18         public MultiKeyDictionary<string, UUID, Cache.Group> nameHandleCache =
     19        public MultiKeyDictionary<string, UUID, Cache.Group> nameUUIDHandleCache =
    1920            new MultiKeyDictionary<string, UUID, Cache.Group>();
    2021
     
    2425            {
    2526                Cache.Group group;
    26                 nameHandleCache.TryGetValue(name, UUID, out group);
     27                nameUUIDHandleCache.TryGetValue(name, UUID, out group);
    2728                return group;
    2829            }
     
    3536                Cache.Group group;
    3637                nameCache.TryGetValue(UUID, out group);
     38                return group;
     39            }
     40        }
     41
     42        public Cache.Group this[string name]
     43        {
     44            get
     45            {
     46                Cache.Group group;
     47                groupCache.TryGetValue(name, out group);
    3748                return group;
    3849            }
     
    6172        {
    6273            nameCache.Clear();
    63             nameHandleCache.Clear();
     74            nameUUIDHandleCache.Clear();
    6475            base.Clear();
    6576        }
     
    6980            if (!nameCache.ContainsKey(group.UUID))
    7081                nameCache.Add(group.UUID, group);
    71             if (!nameHandleCache.ContainsKey(group.Name, group.UUID))
    72                 nameHandleCache.Add(group.Name, group.UUID, group);
     82            if (!nameUUIDHandleCache.ContainsKey(group.Name, group.UUID))
     83                nameUUIDHandleCache.Add(group.Name, group.UUID, group);
     84            if (!groupCache.ContainsKey(group.Name))
     85                groupCache.Add(group.Name, group);
    7386            base.Add(group);
    7487        }
     
    7790        {
    7891            nameCache.Remove(group.UUID);
    79             nameHandleCache.Remove(group.Name, group.UUID);
     92            nameUUIDHandleCache.Remove(group.Name, group.UUID);
     93            groupCache.Remove(group.Name);
    8094            return base.Remove(group);
    8195        }
     
    87101            {
    88102                nameCache.Remove(group.UUID);
    89                 nameHandleCache.Remove(group.Name, group.UUID);
     103                nameUUIDHandleCache.Remove(group.Name, group.UUID);
     104                groupCache.Remove(group.Name);
    90105            });
    91106
     
    95110        public bool Contains(string name)
    96111        {
    97             return nameHandleCache.ContainsKey(name);
     112            return groupCache.ContainsKey(name);
    98113        }
    99114
  • wasOpenMetaverse/Constants.cs

    r496 r518  
    118118            {
    119119                public const string REGION_RESTART_MESSAGE = @"restart";
     120                public const string ESTATE_MESSAGE = @"instantmessage";
    120121            }
    121122        }
     
    204205            public static readonly UUID TEXTURE_TRANSPARENT = new UUID(@"8dcd4a48-2d37-4909-9f78-f7a9eb4ef903");
    205206            public static readonly UUID TEXTURE_MEDIA = new UUID(@"8b5fec65-8d8d-9dc5-cda8-8fdf2716e361");
     207
    206208            // Default texture in Second Life is the plywood texture.
    207209            public static readonly UUID TEXTURE_DEFAULT = TEXTURE_BLANK;
     210
    208211            public static readonly UUID DEFAULT_SCULPT = new UUID(@"be293869-d0d9-0a69-5989-ad27f1946fd4");
    209212            public static readonly int MAX_PIXEL_WIDTH = 1024;
  • wasOpenMetaverse/Inventory.cs

    r511 r518  
    1414using wasSharp;
    1515
    16 
    1716namespace wasOpenMetaverse
    1817{
     
    4241                return item.IsLink() && Client.Inventory.Store.Contains(item.AssetUUID) &&
    4342                       Client.Inventory.Store[item.AssetUUID] is InventoryItem
    44                     ? (InventoryItem) Client.Inventory.Store[item.AssetUUID]
     43                    ? (InventoryItem)Client.Inventory.Store[item.AssetUUID]
    4544                    : item;
    4645            }
     
    6261                return Client.Inventory.Store.GetContents(outfitFolder)
    6362                    .AsParallel()
    64                     .Where(o => CanBeWorn(o) && ((InventoryItem) o).AssetType.Equals(AssetType.Link))
     63                    .Where(o => CanBeWorn(o) && ((InventoryItem)o).AssetType.Equals(AssetType.Link))
    6564                    .Select(o => o as InventoryItem);
    6665            }
     
    9594                            StringComparison.OrdinalIgnoreCase))) return;
    9695
    97                     attachmentPoint = (AttachmentPoint) (((prim.PrimData.State & 0xF0) >> 4) |
     96                    attachmentPoint = (AttachmentPoint)(((prim.PrimData.State & 0xF0) >> 4) |
    9897                                                         ((prim.PrimData.State & ~0xF0) << 4));
    9998
     
    105104                    Client.Objects.ObjectUpdate += ObjectUpdateEventHandler;
    106105                    Client.Appearance.Attach(realItem, point, replace);
    107                     objectAttachedEvent.WaitOne((int) millisecondsTimeout, false);
     106                    objectAttachedEvent.WaitOne((int)millisecondsTimeout, false);
    108107                    Client.Objects.ObjectUpdate -= ObjectUpdateEventHandler;
    109108                }
     
    151150                            StringComparison.OrdinalIgnoreCase))) return;
    152151
    153                     attachmentPoint = (AttachmentPoint) (((prim.PrimData.State & 0xF0) >> 4) |
     152                    attachmentPoint = (AttachmentPoint)(((prim.PrimData.State & 0xF0) >> 4) |
    154153                                                         ((prim.PrimData.State & ~0xF0) << 4));
    155154
     
    161160                    Client.Objects.KillObject += KillObjectEventHandler;
    162161                    Client.Appearance.Detach(realItem);
    163                     objectDetachedEvent.WaitOne((int) millisecondsTimeout, false);
     162                    objectDetachedEvent.WaitOne((int)millisecondsTimeout, false);
    164163                    Client.Objects.KillObject -= KillObjectEventHandler;
    165164                }
     
    213212            var realItem = ResolveItemLink(Client, item);
    214213            if (!(realItem is InventoryWearable)) return false;
    215             var t = ((InventoryWearable) realItem).WearableType;
     214            var t = ((InventoryWearable)realItem).WearableType;
    216215            return t.Equals(WearableType.Shape) ||
    217216                   t.Equals(WearableType.Skin) ||
     
    241240                    Client.Inventory.CreateLink(outfitFolder.UUID, item.UUID, item.Name,
    242241                        item.InventoryType.Equals(InventoryType.Wearable) && !IsBodyPart(Client, item)
    243                             ? $"@{(int) ((InventoryWearable) item).WearableType}{0:00}"
     242                            ? $"@{(int)((InventoryWearable)item).WearableType}{0:00}"
    244243                            : string.Empty, AssetType.Link, item.InventoryType, UUID.Random(), (success, newItem) =>
    245244                            {
     
    280279        }
    281280
    282 
    283281        ///////////////////////////////////////////////////////////////////////////
    284282        //    Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3    //
     
    308306                .AsParallel()
    309307                .Select(o => new KeyValuePair<Primitive, AttachmentPoint>(o,
    310                     (AttachmentPoint) (((o.PrimData.State & 0xF0) >> 4) |
     308                    (AttachmentPoint)(((o.PrimData.State & 0xF0) >> 4) |
    311309                                       ((o.PrimData.State & ~0xF0) << 4))));
    312310        }
     
    327325                lock (Locks.ClientInstanceInventoryLock)
    328326                {
    329                     return Client.Inventory.Store[prim.NameValues[i].Value.ToString()] as InventoryItem;
     327                    return Client.Inventory.Store[new UUID(prim.NameValues[i].Value.ToString())] as InventoryItem;
    330328                }
    331329            }
     
    376374
    377375            // Split all paths.
    378             var unpack = new List<string>(path.PathSplit(separator, escape));
     376            var unpack = new List<string>(path.PathSplit(separator, escape, false));
    379377            // Pop first item to process.
    380378            var first = unpack.First();
     
    406404                        // If not, the path is phony!
    407405                        return null;
     406
    408407                    default: // There is no root and the first of the path is a name, hmm...
    409408                        if (string.Equals(Client.Inventory.Store.RootFolder.Name, first, comparison))
     
    434433                case true:
    435434                    contents.UnionWith(Client.Inventory.FolderContents(root.UUID, root.OwnerID, true, true,
    436                         InventorySortOrder.ByDate, (int) millisecondsTimeout));
     435                        InventorySortOrder.ByDate, (int)millisecondsTimeout));
    437436                    break;
     437
    438438                default:
    439439                    contents.UnionWith(Client.Inventory.Store.GetContents(root.UUID));
     
    470470            }
    471471
    472             CONTINUE:
     472        CONTINUE:
    473473            return directFindInventory(Client,
    474474                string.Join(separator.ToString(),
     
    510510                return default(T);
    511511
    512             if (typeof(T) != typeof(InventoryNode)) return (T) (object) inventoryBase;
     512            if (typeof(T) != typeof(InventoryNode)) return (T)(object)inventoryBase;
    513513
    514514            lock (Locks.ClientInstanceInventoryLock)
    515515            {
    516                 return (T) (object) Client.Inventory.Store.GetNodeFor(inventoryBase.UUID);
     516                return (T)(object)Client.Inventory.Store.GetNodeFor(inventoryBase.UUID);
    517517            }
    518518        }
     
    547547                    if (typeof(T) == typeof(InventoryNode))
    548548                    {
    549                         yield return (T) (object) Client.Inventory.Store.GetNodeFor(item.UUID);
     549                        yield return (T)(object)Client.Inventory.Store.GetNodeFor(item.UUID);
    550550                    }
    551551                    if (typeof(T) == typeof(InventoryBase))
    552552                    {
    553                         yield return (T) (object) item;
     553                        yield return (T)(object)item;
    554554                    }
    555555                }
     
    572572                    Client.Inventory.RequestFolderContents(folder.UUID, Client.Self.AgentID, true, true,
    573573                        InventorySortOrder.ByDate);
    574                     FolderUpdatedEvent.WaitOne((int) millisecondsTimeout, false);
     574                    FolderUpdatedEvent.WaitOne((int)millisecondsTimeout, false);
    575575                    Client.Inventory.FolderUpdated -= FolderUpdatedEventHandler;
    576576                }
     
    613613                {
    614614                    yield return
    615                         new KeyValuePair<T, LinkedList<string>>((T) (object) Client.Inventory.Store[root.Data.UUID],
     615                        new KeyValuePair<T, LinkedList<string>>((T)(object)Client.Inventory.Store[root.Data.UUID],
    616616                            new LinkedList<string>(
    617                                 prefix.Concat(new[] {root.Data.Name})));
     617                                prefix.Concat(new[] { root.Data.Name })));
    618618                }
    619619                if (typeof(T) == typeof(InventoryNode))
    620620                {
    621621                    yield return
    622                         new KeyValuePair<T, LinkedList<string>>((T) (object) root,
     622                        new KeyValuePair<T, LinkedList<string>>((T)(object)root,
    623623                            new LinkedList<string>(
    624                                 prefix.Concat(new[] {root.Data.Name})));
     624                                prefix.Concat(new[] { root.Data.Name })));
    625625                }
    626626            }
     
    629629                    root.Nodes.Values.AsParallel()
    630630                        .SelectMany(o => directFindInventoryPath<T>(Client, o, criteria, new LinkedList<string>(
    631                             prefix.Concat(new[] {root.Data.Name})))))
     631                            prefix.Concat(new[] { root.Data.Name })))))
    632632            {
    633633                yield return o;
     
    664664                {
    665665                    yield return
    666                         new KeyValuePair<T, LinkedList<string>>((T) (object) Client.Inventory.Store[root.Data.UUID],
     666                        new KeyValuePair<T, LinkedList<string>>((T)(object)Client.Inventory.Store[root.Data.UUID],
    667667                            new LinkedList<string>(
    668                                 prefix.Concat(new[] {root.Data.Name})));
     668                                prefix.Concat(new[] { root.Data.Name })));
    669669                }
    670670                if (typeof(T) == typeof(InventoryNode))
    671671                {
    672672                    yield return
    673                         new KeyValuePair<T, LinkedList<string>>((T) (object) root,
     673                        new KeyValuePair<T, LinkedList<string>>((T)(object)root,
    674674                            new LinkedList<string>(
    675                                 prefix.Concat(new[] {root.Data.Name})));
     675                                prefix.Concat(new[] { root.Data.Name })));
    676676                }
    677677            }
     
    680680                    root.Nodes.Values.AsParallel()
    681681                        .SelectMany(o => directFindInventoryPath<T>(Client, o, criteria, new LinkedList<string>(
    682                             prefix.Concat(new[] {root.Data.Name})))))
     682                            prefix.Concat(new[] { root.Data.Name })))))
    683683            {
    684684                yield return o;
     
    760760                {
    761761                    contents.UnionWith(Client.Inventory.FolderContents(queueFolder.UUID, clientUUID, true, true,
    762                         InventorySortOrder.ByDate, (int) millisecondsTimeout));
     762                        InventorySortOrder.ByDate, (int)millisecondsTimeout));
    763763                }
    764764                foreach (var item in contents)
     
    809809                Client.Inventory.RequestFolderContents(root.Data.UUID, root.Data.OwnerID, true, true,
    810810                    InventorySortOrder.ByDate);
    811                 FolderUpdatedEvent.WaitOne((int) millisecondsTimeout, false);
     811                FolderUpdatedEvent.WaitOne((int)millisecondsTimeout, false);
    812812                Client.Inventory.FolderUpdated -= FolderUpdatedEventHandler;
    813813            }
     
    839839                    EventHandler<EventQueueRunningEventArgs> handler = (sender, e) => { EventQueueRunningEvent.Set(); };
    840840                    Client.Network.EventQueueRunning += handler;
    841                     EventQueueRunningEvent.WaitOne((int) millisecondsTimeout, false);
     841                    EventQueueRunningEvent.WaitOne((int)millisecondsTimeout, false);
    842842                    Client.Network.EventQueueRunning -= handler;
    843843                }
     
    872872                    EventHandler<EventQueueRunningEventArgs> handler = (sender, e) => { EventQueueRunningEvent.Set(); };
    873873                    Client.Network.EventQueueRunning += handler;
    874                     EventQueueRunningEvent.WaitOne((int) millisecondsTimeout, false);
     874                    EventQueueRunningEvent.WaitOne((int)millisecondsTimeout, false);
    875875                    Client.Network.EventQueueRunning -= handler;
    876876                }
     
    882882            }
    883883        }
    884 
    885884
    886885        ///////////////////////////////////////////////////////////////////////////
     
    900899                var seg = new StringBuilder();
    901900
    902                 switch (!((uint) o & (uint) PermissionMask.Copy).Equals(0))
     901                switch (!((uint)o & (uint)PermissionMask.Copy).Equals(0))
    903902                {
    904903                    case true:
    905904                        seg.Append("c");
    906905                        break;
     906
    907907                    default:
    908908                        seg.Append("-");
     
    910910                }
    911911
    912                 switch (!((uint) o & (uint) PermissionMask.Damage).Equals(0))
     912                switch (!((uint)o & (uint)PermissionMask.Damage).Equals(0))
    913913                {
    914914                    case true:
    915915                        seg.Append("d");
    916916                        break;
     917
    917918                    default:
    918919                        seg.Append("-");
     
    920921                }
    921922
    922                 switch (!((uint) o & (uint) PermissionMask.Export).Equals(0))
     923                switch (!((uint)o & (uint)PermissionMask.Export).Equals(0))
    923924                {
    924925                    case true:
    925926                        seg.Append("e");
    926927                        break;
     928
    927929                    default:
    928930                        seg.Append("-");
     
    930932                }
    931933
    932                 switch (!((uint) o & (uint) PermissionMask.Modify).Equals(0))
     934                switch (!((uint)o & (uint)PermissionMask.Modify).Equals(0))
    933935                {
    934936                    case true:
    935937                        seg.Append("m");
    936938                        break;
     939
    937940                    default:
    938941                        seg.Append("-");
     
    940943                }
    941944
    942                 switch (!((uint) o & (uint) PermissionMask.Move).Equals(0))
     945                switch (!((uint)o & (uint)PermissionMask.Move).Equals(0))
    943946                {
    944947                    case true:
    945948                        seg.Append("v");
    946949                        break;
     950
    947951                    default:
    948952                        seg.Append("-");
     
    950954                }
    951955
    952                 switch (!((uint) o & (uint) PermissionMask.Transfer).Equals(0))
     956                switch (!((uint)o & (uint)PermissionMask.Transfer).Equals(0))
    953957                {
    954958                    case true:
    955959                        seg.Append("t");
    956960                        break;
     961
    957962                    default:
    958963                        seg.Append("-");
     
    990995                {
    991996                    case false:
    992                         r |= (uint) PermissionMask.Copy;
     997                        r |= (uint)PermissionMask.Copy;
    993998                        break;
    994999                }
     
    9971002                {
    9981003                    case false:
    999                         r |= (uint) PermissionMask.Damage;
     1004                        r |= (uint)PermissionMask.Damage;
    10001005                        break;
    10011006                }
     
    10041009                {
    10051010                    case false:
    1006                         r |= (uint) PermissionMask.Export;
     1011                        r |= (uint)PermissionMask.Export;
    10071012                        break;
    10081013                }
     
    10111016                {
    10121017                    case false:
    1013                         r |= (uint) PermissionMask.Modify;
     1018                        r |= (uint)PermissionMask.Modify;
    10141019                        break;
    10151020                }
     
    10181023                {
    10191024                    case false:
    1020                         r |= (uint) PermissionMask.Move;
     1025                        r |= (uint)PermissionMask.Move;
    10211026                        break;
    10221027                }
     
    10251030                {
    10261031                    case false:
    1027                         r |= (uint) PermissionMask.Transfer;
     1032                        r |= (uint)PermissionMask.Transfer;
    10281033                        break;
    10291034                }
  • wasOpenMetaverse/Properties/AssemblyInfo.cs

    r511 r518  
    2727// [assembly: AssemblyVersion("1.0.*")]
    2828
    29 [assembly: AssemblyVersion("1.26.*")]
     29[assembly: AssemblyVersion("1.27.*")]
  • wasOpenMetaverse/Services.cs

    r511 r518  
    1515using OpenMetaverse.Packets;
    1616
    17 
    1817namespace wasOpenMetaverse
    1918{
     
    3837                Client.Self.MoneyBalanceReply += MoneyBalanceEventHandler;
    3938                Client.Self.RequestBalance();
    40                 if (!MoneyBalanceEvent.WaitOne((int) millisecondsTimeout, false))
     39                if (!MoneyBalanceEvent.WaitOne((int)millisecondsTimeout, false))
    4140                {
    4241                    Client.Self.MoneyBalanceReply -= MoneyBalanceEventHandler;
     
    4746            return true;
    4847        }
    49 
    5048
    5149        ///////////////////////////////////////////////////////////////////////////
     
    6866                Client.Self.MuteListUpdated += MuteListUpdatedEventHandler;
    6967                Client.Self.RequestMuteList();
    70                 MuteListUpdatedEvent.WaitOne((int) millisecondsTimeout, false);
     68                MuteListUpdatedEvent.WaitOne((int)millisecondsTimeout, false);
    7169                Client.Self.MuteListUpdated -= MuteListUpdatedEventHandler;
    7270            }
     
    130128                Client.Groups.BannedAgents += BannedAgentsEventHandler;
    131129                Client.Groups.RequestBannedAgents(groupUUID);
    132                 if (!BannedAgentsEvent.WaitOne((int) millisecondsTimeout, false))
     130                if (!BannedAgentsEvent.WaitOne((int)millisecondsTimeout, false))
    133131                {
    134132                    Client.Groups.BannedAgents -= BannedAgentsEventHandler;
     
    165163            Client.Groups.CurrentGroups += CurrentGroupsEventHandler;
    166164            Client.Groups.RequestCurrentGroups();
    167             if (!CurrentGroupsReceivedEvent.WaitOne((int) millisecondsTimeout, false))
     165            if (!CurrentGroupsReceivedEvent.WaitOne((int)millisecondsTimeout, false))
    168166            {
    169167                Client.Groups.CurrentGroups -= CurrentGroupsEventHandler;
     
    176174                    groups = currentGroups.Keys;
    177175                    return true;
     176
    178177                default:
    179178                    return false;
     
    241240                Client.Avatars.AvatarGroupsReply += AvatarGroupsReplyEventHandler;
    242241                Client.Avatars.RequestAvatarProperties(agentUUID);
    243                 if (!alarm.Signal.WaitOne((int) millisecondsTimeout, false))
     242                if (!alarm.Signal.WaitOne((int)millisecondsTimeout, false))
    244243                {
    245244                    Client.Avatars.AvatarGroupsReply -= AvatarGroupsReplyEventHandler;
     
    277276                Client.Self.GroupChatJoined += GroupChatJoinedEventHandler;
    278277                Client.Self.RequestJoinGroupChat(groupUUID);
    279                 if (!GroupChatJoinedEvent.WaitOne((int) millisecondsTimeout, false))
     278                if (!GroupChatJoinedEvent.WaitOne((int)millisecondsTimeout, false))
    280279                {
    281280                    Client.Self.GroupChatJoined -= GroupChatJoinedEventHandler;
     
    289288        public static bool UpdateParcelAccessList(GridClient Client, Simulator simulator, int parcelLocalID, AccessList accessListType, List<ParcelManager.ParcelAccessEntry> accessList)
    290289        {
    291             lock(Locks.ClientInstanceNetworkLock)
     290            lock (Locks.ClientInstanceNetworkLock)
    292291            {
    293292                Client.Network.SendPacket(new ParcelAccessListUpdatePacket
     
    312311                    },
    313312                    Type = PacketType.ParcelAccessListUpdate
    314 
    315313                }, simulator);
    316314            }
     
    344342                Client.Groups.GroupMembersReply += HandleGroupMembersReplyDelegate;
    345343                Client.Groups.RequestGroupMembers(groupUUID);
    346                 if (!groupMembersReceivedEvent.WaitOne((int) millisecondsTimeout, false))
     344                if (!groupMembersReceivedEvent.WaitOne((int)millisecondsTimeout, false))
    347345                {
    348346                    Client.Groups.GroupMembersReply -= HandleGroupMembersReplyDelegate;
     
    378376                Client.Groups.GroupProfile += GroupProfileDelegate;
    379377                Client.Groups.RequestGroupProfile(groupUUID);
    380                 if (!GroupProfileEvent.WaitOne((int) millisecondsTimeout, false))
     378                if (!GroupProfileEvent.WaitOne((int)millisecondsTimeout, false))
    381379                {
    382380                    Client.Groups.GroupProfile -= GroupProfileDelegate;
     
    416414                        Client.Parcels.RequestAllSimParcels(simulator);
    417415                        break;
     416
    418417                    default:
    419418                        RequestAllSimParcelsEvent.Set();
    420419                        break;
    421420                }
    422                 if (!RequestAllSimParcelsEvent.WaitOne((int) millisecondsTimeout, false))
     421                if (!RequestAllSimParcelsEvent.WaitOne((int)millisecondsTimeout, false))
    423422                {
    424423                    Client.Parcels.SimParcelsDownloaded -= SimParcelsDownloadedDelegate;
     
    472471                Client.Parcels.ParcelInfoReply += ParcelInfoEventHandler;
    473472                Client.Parcels.RequestParcelInfo(parcelUUID);
    474                 if (!ParcelInfoEvent.WaitOne((int) millisecondsTimeout, false))
     473                if (!ParcelInfoEvent.WaitOne((int)millisecondsTimeout, false))
    475474                {
    476475                    Client.Parcels.ParcelInfoReply -= ParcelInfoEventHandler;
     
    507506                    .ToDictionary(o => o.LocalID, p => p);
    508507                return new HashSet<Primitive>(Client.Network.Simulators.AsParallel()
    509                     .Select(o => new {s = o, a = o?.ObjectsPrimitives?.Copy()?.Values})
     508                    .Select(o => new { s = o, a = o?.ObjectsPrimitives?.Copy()?.Values })
    510509                    .SelectMany(o => o.a.AsParallel().Where(p =>
    511510                    {
     
    545544                    .ToDictionary(o => o.LocalID, p => p);
    546545                return new HashSet<Primitive>(Client.Network.Simulators.AsParallel()
    547                     .Select(o => new {s = o, a = o.ObjectsPrimitives.Copy().Values})
     546                    .Select(o => new { s = o, a = o.ObjectsPrimitives.Copy().Values })
    548547                    .SelectMany(o => o.a.AsParallel().Where(p =>
    549548                    {
     
    581580                    .ToDictionary(o => o.LocalID, p => p);
    582581                return new HashSet<Avatar>(Client.Network.Simulators.AsParallel()
    583                     .Select(o => new {s = o, a = o?.ObjectsAvatars?.Copy()?.Values})
     582                    .Select(o => new { s = o, a = o?.ObjectsAvatars?.Copy()?.Values })
    584583                    .SelectMany(o => o.a.AsParallel().Where(p =>
    585584                    {
     
    633632                                .ToArray(), true);
    634633                    }
    635                     ObjectPropertiesEvent.WaitOne((int) dataTimeout, false);
     634                    ObjectPropertiesEvent.WaitOne((int)dataTimeout, false);
    636635                    Client.Objects.ObjectProperties -= ObjectPropertiesEventHandler;
    637636                }
     
    640639            return true;
    641640        }
    642 
    643641
    644642        ///////////////////////////////////////////////////////////////////////////
     
    666664                    Client.Network.Simulators.AsParallel().FirstOrDefault(p => p.Handle.Equals(regionHandle)),
    667665                    localPrimitive.LocalID, true);
    668                 ObjectPropertiesEvent.WaitOne((int) dataTimeout, false);
     666                ObjectPropertiesEvent.WaitOne((int)dataTimeout, false);
    669667                Client.Objects.ObjectProperties -= ObjectPropertiesEventHandler;
    670668            }
     
    753751                        avatarAlarm = avatarAlarms[o.ID];
    754752                    }
    755                     avatarAlarm.Signal.WaitOne((int) millisecondsTimeout, false);
     753                    avatarAlarm.Signal.WaitOne((int)millisecondsTimeout, false);
    756754                    Client.Avatars.AvatarInterestsReply -= AvatarInterestsReplyEventHandler;
    757755                    Client.Avatars.AvatarPropertiesReply -= AvatarPropertiesReplyEventHandler;
     
    799797                .SelectMany(o => o).ToDictionary(o => o.LocalID, p => p);
    800798            var localPrimitive = Client.Network.Simulators.AsParallel()
    801                 .Select(o => new {s = o, a = o.ObjectsPrimitives.Copy().Values})
     799                .Select(o => new { s = o, a = o.ObjectsPrimitives.Copy().Values })
    802800                .SelectMany(o => o.a.AsParallel().Where(p =>
    803801                {
     
    844842                .SelectMany(o => o).ToDictionary(o => o.LocalID, p => p);
    845843            var localPrimitive = Client.Network.Simulators.AsParallel()
    846                 .Select(o => new {s = o, a = o.ObjectsPrimitives.Copy().Values})
     844                .Select(o => new { s = o, a = o.ObjectsPrimitives.Copy().Values })
    847845                .SelectMany(o => o.a.AsParallel().Where(p =>
    848846                {
     
    890888            var primitives =
    891889                new HashSet<Primitive>(Client.Network.Simulators.AsParallel()
    892                     .Select(o => new {s = o, a = o.ObjectsPrimitives.Copy().Values})
     890                    .Select(o => new { s = o, a = o.ObjectsPrimitives.Copy().Values })
    893891                    .SelectMany(o => o.a.AsParallel().Where(p =>
    894892                    {
     
    939937                .SelectMany(o => o).ToDictionary(o => o.LocalID, p => p);
    940938            var primitives = new HashSet<Primitive>(Client.Network.Simulators.AsParallel()
    941                 .Select(o => new {s = o, a = o.ObjectsPrimitives.Copy().Values})
     939                .Select(o => new { s = o, a = o.ObjectsPrimitives.Copy().Values })
    942940                .SelectMany(o => o.a.AsParallel().Where(p =>
    943941                {
     
    993991
    994992            assetData = localAssetData;
    995             return AssetReceivedEvent.WaitOne((int) dataTimeout, false);
     993            return AssetReceivedEvent.WaitOne((int)dataTimeout, false);
    996994        }
    997995
Note: See TracChangeset for help on using the changeset viewer.