示例#1
0
        public static OperatorFunctions LoadOperatorFunctions(BinaryReader reader, CSWCSerizlizer serizlizer, IDictionary <int, object> serizlized, int key)
        {
            OperatorFunctions operatorFunctions = new OperatorFunctions(); serizlized.Add(key, operatorFunctions);

            for (int i = 0; i < operatorFunctions.operFunctions.Length; i++)
            {
                var dict  = operatorFunctions.operFunctions[i];
                int count = reader.ReadInt32();
                for (int j = 0; j < count; j++)
                {
                    RunTimeDataType v1 = reader.ReadInt32();
                    RunTimeDataType v2 = reader.ReadInt32();

                    OperatorFunctionKey operatorFunctionKey = new OperatorFunctionKey(v1, v2);

                    rtti.FunctionDefine define   = serizlizer.DeserializeObject <rtti.FunctionDefine>(reader, rtti.FunctionDefine.LoadFunctionDefine);
                    rtData.rtFunction   function = serizlizer.DeserializeObject <rtData.rtFunction>(reader, RunTimeValueBase.LoadRunTimeValueBase);

                    DefineAndFunc defineAndFunc = new DefineAndFunc();
                    defineAndFunc.define = define;
                    defineAndFunc.func   = function;

                    dict.Add(operatorFunctionKey, defineAndFunc);
                }
            }

            return(operatorFunctions);
        }
        public CSWC()
        {
            nativefunctions              = new List <NativeFunctionBase>();
            nativefunctionNameIndex      = new Dictionary <string, int>();
            creator_Class                = new Dictionary <ILinkSystemObjCreator, Class>();
            class_Creator                = new Dictionary <Class, ILinkSystemObjCreator>();
            _dictlinkcreatorfunctionname = new Dictionary <string, Class>();

            for (int i = 0; i < RunTimeDataType.unknown; i++)
            {
                primitive_to_class_table.Add(null);
            }

            operatorOverrides = new OperatorFunctions();

            MemRegList = new List <IMemReg>();

            registedNativeFunctionType = new Dictionary <int, string>();
        }