public override bool SetString(int nRow, int nCol, string value) { if (nRow >= 0 && nRow < mnRow) { if (!mhtRecordVec.ContainsKey(nRow)) { AddRow(nRow); } AFIDataList valueList = (AFIDataList)mhtRecordVec[nRow]; if (valueList.GetType(nCol) == AFIDataList.VARIANT_TYPE.VTYPE_STRING) { if (valueList.StringVal(nCol) != value) { AFCDataList oldValue = new AFCDataList(); oldValue.AddString(valueList.StringVal(nCol)); valueList.SetString(nCol, value); AFCDataList newValue = new AFCDataList(); newValue.AddString(valueList.StringVal(nCol)); if (null != doHandleDel) { doHandleDel(mSelf, mstrRecordName, eRecordOptype.Updata, nRow, nCol, oldValue, newValue); } } } return(true); } return(false); }
public override AFIDataList GetRecordList() { AFIDataList varData = new AFCDataList(); foreach (KeyValuePair <string, AFIRecord> de in mhtRecord) { varData.AddString(de.Key); } return(varData); }
public override AFIDataList GetPropertyList() { AFIDataList varData = new AFCDataList(); foreach (DictionaryEntry de in mhtProperty) { varData.AddString(de.Key.ToString()); } return(varData); }
public override bool SetPropertyString(string strPropertyName, string strValue) { AFIProperty property = mPropertyManager.GetProperty(strPropertyName); if (null == property) { AFIDataList valueList = new AFCDataList(); valueList.AddString(""); property = mPropertyManager.AddProperty(strPropertyName, valueList); } property.SetString(strValue); return(true); }
private void LoadLogicClassDataTables(string strName) { AFILogicClass xLogicClass = GetElement(strName); if (null != xLogicClass) { string strLogicPath = mstrRootPath + xLogicClass.GetPath(); XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(strLogicPath); ///////////////////////////////////////////////////////////////// XmlNode xRoot = xmldoc.SelectSingleNode("XML"); XmlNode xNodePropertys = xRoot.SelectSingleNode("DataTables"); if (null != xNodePropertys) { XmlNodeList xNodeList = xNodePropertys.SelectNodes("DataTable"); if (null != xNodeList) { for (int i = 0; i < xNodeList.Count; ++i) { XmlNode xRecordNode = xNodeList.Item(i); string strID = xRecordNode.Attributes["Id"].Value; string strRow = xRecordNode.Attributes["Row"].Value; AFIDataList xValue = new AFCDataList(); XmlNodeList xTagNodeList = xRecordNode.SelectNodes("Col"); for (int j = 0; j < xTagNodeList.Count; ++j) { XmlNode xColTagNode = xTagNodeList.Item(j); XmlAttribute strTagID = xColTagNode.Attributes["Tag"]; XmlAttribute strTagType = xColTagNode.Attributes["Type"]; switch (strTagType.Value) { case "int": { xValue.AddInt64(0); } break; case "float": { xValue.AddFloat(0.0f); } break; case "double": { xValue.AddDouble(0.0f); } break; case "string": { xValue.AddString(""); } break; case "object": { xValue.AddObject(new AFIDENTID(0, 0)); } break; default: break; } } xLogicClass.GetRecordManager().AddRecord(strID, int.Parse(strRow), xValue); } } } } }
private void LoadLogicClassDataNodes(string strName) { AFILogicClass xLogicClass = GetElement(strName); if (null != xLogicClass) { string strLogicPath = mstrRootPath + xLogicClass.GetPath(); XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(strLogicPath); ///////////////////////////////////////////////////////////////// XmlNode xRoot = xmldoc.SelectSingleNode("XML"); XmlNode xNodePropertys = xRoot.SelectSingleNode("DataNodes"); XmlNodeList xNodeList = xNodePropertys.SelectNodes("DataNode"); for (int i = 0; i < xNodeList.Count; ++i) { XmlNode xPropertyNode = xNodeList.Item(i); XmlAttribute strID = xPropertyNode.Attributes["Id"]; XmlAttribute strType = xPropertyNode.Attributes["Type"]; switch (strType.Value) { case "int": { AFIDataList xValue = new AFCDataList(); xValue.AddInt64(0); xLogicClass.GetPropertyManager().AddProperty(strID.Value, xValue); } break; case "float": { AFIDataList xValue = new AFCDataList(); xValue.AddFloat(0.0f); xLogicClass.GetPropertyManager().AddProperty(strID.Value, xValue); } break; case "double": { AFIDataList xValue = new AFCDataList(); xValue.AddDouble(0.0f); xLogicClass.GetPropertyManager().AddProperty(strID.Value, xValue); } break; case "string": { AFIDataList xValue = new AFCDataList(); xValue.AddString(""); xLogicClass.GetPropertyManager().AddProperty(strID.Value, xValue); } break; case "object": { AFIDataList xValue = new AFCDataList(); xValue.AddObject(new AFIDENTID(0, 0)); xLogicClass.GetPropertyManager().AddProperty(strID.Value, xValue); } break; default: break; } } } }
public override AFIObject CreateObject(AFIDENTID self, int nContainerID, int nGroupID, string strClassName, string strConfigIndex, AFIDataList arg) { if (!mhtObject.ContainsKey(self)) { AFIObject xNewObject = new AFCObject(self, nContainerID, nGroupID, strClassName, strConfigIndex); mhtObject.Add(self, xNewObject); AFCDataList varConfigID = new AFCDataList(); varConfigID.AddString(strConfigIndex); xNewObject.GetPropertyManager().AddProperty("ConfigID", varConfigID); AFCDataList varConfigClass = new AFCDataList(); varConfigClass.AddString(strClassName); xNewObject.GetPropertyManager().AddProperty("ClassName", varConfigClass); if (arg.Count() % 2 == 0) { for (int i = 0; i < arg.Count() - 1; i += 2) { string strPropertyName = arg.StringVal(i); AFIDataList.VARIANT_TYPE eType = arg.GetType(i + 1); switch (eType) { case AFIDataList.VARIANT_TYPE.VTYPE_INT: { AFIDataList xDataList = new AFCDataList(); xDataList.AddInt64(arg.Int64Val(i + 1)); xNewObject.GetPropertyManager().AddProperty(strPropertyName, xDataList); } break; case AFIDataList.VARIANT_TYPE.VTYPE_FLOAT: { AFIDataList xDataList = new AFCDataList(); xDataList.AddFloat(arg.FloatVal(i + 1)); xNewObject.GetPropertyManager().AddProperty(strPropertyName, xDataList); } break; case AFIDataList.VARIANT_TYPE.VTYPE_DOUBLE: { AFIDataList xDataList = new AFCDataList(); xDataList.AddDouble(arg.DoubleVal(i + 1)); xNewObject.GetPropertyManager().AddProperty(strPropertyName, xDataList); } break; case AFIDataList.VARIANT_TYPE.VTYPE_STRING: { AFIDataList xDataList = new AFCDataList(); xDataList.AddString(arg.StringVal(i + 1)); xNewObject.GetPropertyManager().AddProperty(strPropertyName, xDataList); } break; case AFIDataList.VARIANT_TYPE.VTYPE_OBJECT: { AFIDataList xDataList = new AFCDataList(); xDataList.AddObject(arg.ObjectVal(i + 1)); xNewObject.GetPropertyManager().AddProperty(strPropertyName, xDataList); } break; default: break; } } } InitProperty(self, strClassName); InitRecord(self, strClassName); if (mhtClassHandleDel.ContainsKey(strClassName)) { ClassHandleDel xHandleDel = (ClassHandleDel)mhtClassHandleDel[strClassName]; if (null != xHandleDel && null != xHandleDel.GetHandler()) { AFIObject.ClassEventHandler xHandlerList = xHandleDel.GetHandler(); xHandlerList(self, nContainerID, nGroupID, AFIObject.CLASS_EVENT_TYPE.OBJECT_CREATE, strClassName, strConfigIndex); xHandlerList(self, nContainerID, nGroupID, AFIObject.CLASS_EVENT_TYPE.OBJECT_LOADDATA, strClassName, strConfigIndex); xHandlerList(self, nContainerID, nGroupID, AFIObject.CLASS_EVENT_TYPE.OBJECT_CREATE_FINISH, strClassName, strConfigIndex); } } //AFCLog.Instance.Log(AFCLog.LOG_LEVEL.DEBUG, "Create object: " + self.ToString() + " ClassName: " + strClassName + " SceneID: " + nContainerID + " GroupID: " + nGroupID); return(xNewObject); } return(null); }
public void MainU3D() { Debug.Log("****************AFIDataList******************"); AFIDataList var = new AFCDataList(); for (int i = 0; i < 9; i += 3) { var.AddInt64(i); var.AddFloat((float)i + 1); var.AddString((i + 2).ToString()); } for (int i = 0; i < 9; i += 3) { Int64 n = var.Int64Val(i); float f = var.FloatVal(i + 1); string str = var.StringVal(i + 2); Debug.Log(n); Debug.Log(f); Debug.Log(str); } Debug.Log("***************AFProperty*******************"); AFIDENTID ident = new AFIDENTID(0, 1); AFIObject gameObject = xKernel.CreateObject(ident, 0, 0, "Player", "", new AFCDataList()); AFIDataList valueProperty = new AFCDataList(); valueProperty.AddInt64(112221); gameObject.GetPropertyManager().AddProperty("111", valueProperty); Debug.Log(gameObject.QueryPropertyInt("111")); Debug.Log("***************AFRecord*******************"); AFIDataList valueRecord = new AFCDataList(); valueRecord.AddInt64(0); valueRecord.AddFloat(0); valueRecord.AddString(""); valueRecord.AddObject(ident); gameObject.GetRecordManager().AddRecord("testRecord", 10, valueRecord); xKernel.SetRecordInt(ident, "testRecord", 0, 0, 112221); xKernel.SetRecordFloat(ident, "testRecord", 0, 1, 1122210.0f); xKernel.SetRecordString(ident, "testRecord", 0, 2, ";;;;;;112221"); xKernel.SetRecordObject(ident, "testRecord", 0, 3, ident); Debug.Log(gameObject.QueryRecordInt("testRecord", 0, 0)); Debug.Log(gameObject.QueryRecordFloat("testRecord", 0, 1)); Debug.Log(gameObject.QueryRecordString("testRecord", 0, 2)); Debug.Log(gameObject.QueryRecordObject("testRecord", 0, 3)); Debug.Log(" "); Debug.Log("***************PropertyAFEvent*******************"); //挂属性回调,挂表回调 xKernel.RegisterPropertyCallback(ident, "111", OnPropertydHandler); xKernel.SetPropertyInt(ident, "111", 2456); Debug.Log(" "); Debug.Log("***************RecordAFEvent*******************"); xKernel.RegisterRecordCallback(ident, "testRecord", OnRecordEventHandler); xKernel.SetRecordInt(ident, "testRecord", 0, 0, 1111111); Debug.Log(" "); Debug.Log("***************ClassAFEvent*******************"); xKernel.RegisterClassCallBack("CLASSAAAAA", OnClassHandler); xKernel.CreateObject(new AFIDENTID(0, 2), 0, 0, "CLASSAAAAA", "COAFIGINDEX", new AFCDataList()); xKernel.DestroyObject(new AFIDENTID(0, 2)); Debug.Log(" "); Debug.Log("***************AFHeartBeat*******************"); xKernel.AddHeartBeat(new AFIDENTID(0, 1), "TestHeartBeat", HeartBeatEventHandler, 5.0f, new AFCDataList()); }
public static void Main() { AFIKernel kernel = new AFCKernel(); Console.WriteLine("****************AFIDataList******************"); AFIDataList var = new AFCDataList(); for (int i = 0; i < 9; i += 3) { var.AddInt64(i); var.AddFloat((float)i + 1); var.AddString((i + 2).ToString()); } for (int i = 0; i < 9; i += 3) { Int64 n = var.Int64Val(i); float f = var.FloatVal(i + 1); string str = var.StringVal(i + 2); Console.WriteLine(n); Console.WriteLine(f); Console.WriteLine(str); } Console.WriteLine("***************AFProperty*******************"); AFIDENTID ident = new AFIDENTID(0, 1); AFIObject gameObject = kernel.CreateObject(ident, 0, 0, "", "", new AFCDataList()); AFIDataList valueProperty = new AFCDataList(); valueProperty.AddInt64(112221); gameObject.GetPropertyManager().AddProperty("111", valueProperty); Console.WriteLine(gameObject.QueryPropertyInt("111")); Console.WriteLine("***************AFRecord*******************"); AFIDataList valueRecord = new AFCDataList(); valueRecord.AddInt64(0); valueRecord.AddFloat(0); valueRecord.AddString(""); valueRecord.AddObject(ident); gameObject.GetRecordManager().AddRecord("testRecord", 10, valueRecord); kernel.SetRecordInt(ident, "testRecord", 0, 0, 112221); kernel.SetRecordFloat(ident, "testRecord", 0, 1, 1122210.0f); kernel.SetRecordString(ident, "testRecord", 0, 2, ";;;;;;112221"); kernel.SetRecordObject(ident, "testRecord", 0, 3, ident); Console.WriteLine(gameObject.QueryRecordInt("testRecord", 0, 0)); Console.WriteLine(gameObject.QueryRecordFloat("testRecord", 0, 1)); Console.WriteLine(gameObject.QueryRecordString("testRecord", 0, 2)); Console.WriteLine(gameObject.QueryRecordObject("testRecord", 0, 3)); Console.WriteLine(" "); Console.WriteLine("***************PropertyAFEvent*******************"); //挂属性回调,挂表回调 kernel.RegisterPropertyCallback(ident, "111", OnPropertydHandler); kernel.SetPropertyInt(ident, "111", 2456); Console.WriteLine(" "); Console.WriteLine("***************RecordAFEvent*******************"); kernel.RegisterRecordCallback(ident, "testRecord", OnRecordEventHandler); kernel.SetRecordInt(ident, "testRecord", 0, 0, 1111111); Console.WriteLine(" "); Console.WriteLine("***************ClassAFEvent*******************"); kernel.RegisterClassCallBack("CLASSAAAAA", OnClassHandler); kernel.CreateObject(new AFIDENTID(0, 2), 0, 0, "CLASSAAAAA", "COAFIGINDEX", new AFCDataList()); kernel.DestroyObject(new AFIDENTID(0, 2)); Console.WriteLine(" "); Console.WriteLine("***************AFHeartBeat*******************"); kernel.AddHeartBeat(new AFIDENTID(0, 1), "TestHeartBeat", HeartBeatEventHandler, 5.0f, new AFCDataList()); while (true) { System.Threading.Thread.Sleep(1000); kernel.UpDate(1.0f); } }
private void LoadInstanceElement(AFILogicClass xLogicClass) { string strLogicPath = mstrRootPath; strLogicPath += xLogicClass.GetInstance(); XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(strLogicPath); ///////////////////////////////////////////////////////////////// XmlNode xRoot = xmldoc.SelectSingleNode("XML"); XmlNodeList xNodeList = xRoot.SelectNodes("Entry"); for (int i = 0; i < xNodeList.Count; ++i) { //AFCLog.Instance.Log("Class:" + xLogicClass.GetName()); XmlNode xNodeClass = xNodeList.Item(i); XmlAttribute strID = xNodeClass.Attributes["Id"]; //AFCLog.Instance.Log("ClassID:" + strID.Value); AFIElement xElement = GetElement(strID.Value); if (null == xElement) { xElement = new AFCElement(); AddElement(strID.Value, xElement); xLogicClass.AddConfigName(strID.Value); XmlAttributeCollection xCollection = xNodeClass.Attributes; for (int j = 0; j < xCollection.Count; ++j) { XmlAttribute xAttribute = xCollection[j]; AFIProperty xProperty = xLogicClass.GetPropertyManager().GetProperty(xAttribute.Name); if (null != xProperty) { AFIDataList.VARIANT_TYPE eType = xProperty.GetDataType(); switch (eType) { case AFIDataList.VARIANT_TYPE.VTYPE_INT: { AFIDataList xValue = new AFCDataList(); xValue.AddInt64(int.Parse(xAttribute.Value)); xElement.GetPropertyManager().AddProperty(xAttribute.Name, xValue); } break; case AFIDataList.VARIANT_TYPE.VTYPE_FLOAT: { AFIDataList xValue = new AFCDataList(); xValue.AddFloat(float.Parse(xAttribute.Value)); xElement.GetPropertyManager().AddProperty(xAttribute.Name, xValue); } break; case AFIDataList.VARIANT_TYPE.VTYPE_DOUBLE: { AFIDataList xValue = new AFCDataList(); xValue.AddDouble(double.Parse(xAttribute.Value)); xElement.GetPropertyManager().AddProperty(xAttribute.Name, xValue); } break; case AFIDataList.VARIANT_TYPE.VTYPE_STRING: { AFIDataList xValue = new AFCDataList(); xValue.AddString(xAttribute.Value); AFIProperty xTestProperty = xElement.GetPropertyManager().AddProperty(xAttribute.Name, xValue); } break; case AFIDataList.VARIANT_TYPE.VTYPE_OBJECT: { AFIDataList xValue = new AFCDataList(); xValue.AddObject(new AFIDENTID(0, int.Parse(xAttribute.Value))); xElement.GetPropertyManager().AddProperty(xAttribute.Name, xValue); } break; default: break; } } } } } }