annotate src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle-main/persistent/msgpack/src/ReflectionCache.cs @ 10:abe0c247f5a5

Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
author Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
date Sun, 23 Oct 2016 07:40:50 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
1 //
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
2 // Copyright 2011 Kazuki Oikawa
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
3 //
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
4 // Licensed under the Apache License, Version 2.0 (the "License");
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
5 // you may not use this file except in compliance with the License.
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
6 // You may obtain a copy of the License at
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
7 //
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
8 // http://www.apache.org/licenses/LICENSE-2.0
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
9 //
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
10 // Unless required by applicable law or agreed to in writing, software
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
11 // distributed under the License is distributed on an "AS IS" BASIS,
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
13 // See the License for the specific language governing permissions and
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
14 // limitations under the License.
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
15 //
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
16
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
17 using System;
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
18 using System.Collections.Generic;
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
19
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
20 namespace MsgPack
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
21 {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
22 public static class ReflectionCache
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
23 {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
24 static Dictionary<Type, ReflectionCacheEntry> _cache;
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
25
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
26 static ReflectionCache ()
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
27 {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
28 _cache = new Dictionary<Type,ReflectionCacheEntry> ();
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
29 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
30
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
31 public static ReflectionCacheEntry Lookup (Type type)
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
32 {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
33 ReflectionCacheEntry entry;
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
34 lock (_cache) {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
35 if (_cache.TryGetValue (type, out entry))
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
36 return entry;
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
37 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
38
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
39 entry = new ReflectionCacheEntry (type);
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
40 lock (_cache) {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
41 _cache[type] = entry;
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
42 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
43 return entry;
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
44 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
45
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
46 public static void RemoveCache (Type type)
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
47 {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
48 lock (_cache) {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
49 _cache.Remove (type);
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
50 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
51 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
52
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
53 public static void Clear ()
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
54 {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
55 lock (_cache) {
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
56 _cache.Clear ();
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
57 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
58 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
59 }
abe0c247f5a5 Add Network module. but, unComplete NetworkDefaultJungleTreeEditor.cs
Kazuma Takeda <kazuma-arashi@hotmail.co.jp>
parents:
diff changeset
60 }