using System.Collections.Generic;
|
|
public class TBlackBoard {
|
|
class TBlackboardItem {
|
|
private object m_Value;
|
|
public void SetValue(object v) {
|
m_Value = v;
|
}
|
|
public T GetValue<T>() {
|
return (T)m_Value;
|
}
|
}
|
|
private Dictionary<string, TBlackboardItem> m_ItemDict;
|
|
public TBlackBoard() {
|
m_ItemDict = new Dictionary<string, TBlackboardItem>();
|
}
|
|
~TBlackBoard() {
|
m_ItemDict.Clear();
|
m_ItemDict = null;
|
}
|
|
public void SetValue(string key, object v) {
|
TBlackboardItem item;
|
if (m_ItemDict.ContainsKey(key) == false) {
|
item = new TBlackboardItem();
|
m_ItemDict.Add(key, item);
|
}
|
else {
|
item = m_ItemDict[key];
|
}
|
item.SetValue(v);
|
}
|
|
public T GetValue<T>(string key, T defaultValue) {
|
if (m_ItemDict.ContainsKey(key) == false) {
|
return defaultValue;
|
}
|
return m_ItemDict[key].GetValue<T>();
|
}
|
}
|