예제 #1
0
        public void BenchmarkLoad()
        {
            var tbl = new List <MetadataSchemaTable>();
            var t   = new MetadataSchemaTable();

            t.TableName = "Measurement";
            t.LastModifiedVersionNumber = 382;
            t.Columns.Add(new MetadataColumn("ID", CtpTypeCode.Integer));
            t.Columns.Add(new MetadataColumn("Name", CtpTypeCode.String));
            t.Columns.Add(new MetadataColumn("DeviceID", CtpTypeCode.Integer));
            tbl.Add(t);
            t           = new MetadataSchemaTable();
            t.TableName = "Device";
            t.LastModifiedVersionNumber = 382;
            t.Columns.Add(new MetadataColumn("ID", CtpTypeCode.Integer));
            t.Columns.Add(new MetadataColumn("Name", CtpTypeCode.String));
            tbl.Add(t);
            var cmd = new CommandMetadataSchema(Guid.NewGuid(), 382, tbl);
            var doc = cmd.ToCommand();
            var obj = (CommandMetadataSchema)doc;

            const int Count = 100_000;
            Stopwatch sw    = Stopwatch.StartNew();

            for (int x = 0; x < Count; x++)
            {
                obj = (CommandMetadataSchema)doc;
            }
            Console.WriteLine(Count / sw.Elapsed.TotalSeconds / 1_000_000);
        }
        public MetadataRepository(DataSet schema)
        {
            RuntimeID      = Guid.NewGuid();
            VersionNumber  = 0;
            m_tablesLookup = new Dictionary <string, int>();
            m_tables       = new List <MetadataTable>();
            m_isReadOnly   = false;

            //--   Fill the schema
            //-------------------------------------

            foreach (DataTable table in schema.Tables)
            {
                var columns = new List <MetadataColumn>();
                foreach (DataColumn c in table.Columns)
                {
                    columns.Add(new MetadataColumn(c.ColumnName, SttpValueTypeCodec.FromType(c.DataType)));
                }
                m_tables.Add(new MetadataTable(table.TableName, columns));
                m_tablesLookup[table.TableName] = m_tables.Count - 1;
            }

            MetadataSchema = new List <MetadataSchemaTable>();
            foreach (var table in m_tables)
            {
                var t = new MetadataSchemaTable();
                t.TableName = table.TableName;
                t.LastModifiedVersionNumber = table.LastModifiedVersionNumber;
                foreach (var col in table.Columns)
                {
                    t.Columns.Add(col);
                }
                MetadataSchema.Add(t);
            }
        }
예제 #3
0
        public void MetadataSchema()
        {
            var tbls = new List <MetadataSchemaTable>();
            var tbl  = new MetadataSchemaTable();

            tbl.Columns.Add(new MetadataColumn("ID", CtpTypeCode.Integer));
            tbl.Columns.Add(new MetadataColumn("SignalID", CtpTypeCode.Guid));
            tbl.Columns.Add(new MetadataColumn("TagName", CtpTypeCode.String));
            tbl.Columns.Add(new MetadataColumn("Enabled", CtpTypeCode.Boolean));
            tbl.TableName = "Measurements";
            tbl.LastModifiedVersionNumber = 1;
            tbls.Add(tbl);
            tbls.Add(tbl);

            var cmd = new CommandMetadataSchema(Guid.NewGuid(), 1, tbls);

            cmd.DebugToConsole();
            cmd = (CommandMetadataSchema)(CtpCommand)cmd;
        }
예제 #4
0
        public void CommandMetadataSchema()
        {
            var tbl = new List <MetadataSchemaTable>();
            var t   = new MetadataSchemaTable();

            t.TableName = "Measurement";
            t.LastModifiedVersionNumber = 382;
            t.Columns.Add(new MetadataColumn("ID", CtpTypeCode.Integer));
            t.Columns.Add(new MetadataColumn("Name", CtpTypeCode.String));
            t.Columns.Add(new MetadataColumn("DeviceID", CtpTypeCode.Integer));
            tbl.Add(t);
            t           = new MetadataSchemaTable();
            t.TableName = "Device";
            t.LastModifiedVersionNumber = 382;
            t.Columns.Add(new MetadataColumn("ID", CtpTypeCode.Integer));
            t.Columns.Add(new MetadataColumn("Name", CtpTypeCode.String));
            tbl.Add(t);
            var cmd = new CommandMetadataSchema(Guid.NewGuid(), 382, tbl);

            Console.WriteLine(((CtpCommand)cmd).ToYAML());
            Console.WriteLine(((CtpCommand)(CommandMetadataSchema)(CtpCommand)cmd).ToYAML());
        }