コード例 #1
0
#pragma warning disable 1570
        /// <summary>
        /// Parses query string (e.g. "id=457&name=zelemhan") into dictionary (e.g. {{"id", "457"}, {"name", "zelemhan"}})
        /// </summary>
#pragma warning restore 1570
        public static JSONDataMap ParseQueryString(string query)
        {
            if (query.IsNullOrWhiteSpace())
            {
                return(new JSONDataMap());
            }

            var dict     = new JSONDataMap();
            int queryLen = query.Length;

            int startIdx = 0;

            while (startIdx < queryLen)
            {
                int ampIdx = query.IndexOf('&', startIdx);
                int kvLen  = (ampIdx != -1) ? ampIdx - startIdx : queryLen - startIdx;

                if (kvLen < 1)
                {
                    startIdx = ampIdx + 1;
                    continue;
                }

                int eqIdx = query.IndexOf('=', startIdx, kvLen);
                if (eqIdx == -1)
                {
                    var key = Uri.UnescapeDataString(query.Substring(startIdx, kvLen));
                    dict.Add(key, null);
                }
                else
                {
                    int keyLen = eqIdx - startIdx;
                    if (keyLen > 0)
                    {
                        string key    = Uri.UnescapeDataString(query.Substring(startIdx, keyLen));
                        string val    = null;
                        int    valLen = kvLen - (eqIdx - startIdx) - 1;
                        if (valLen > 0)
                        {
                            val = Uri.UnescapeDataString(query.Substring(eqIdx + 1, kvLen - (eqIdx - startIdx) - 1));
                        }
                        dict.Add(key, val);
                    }
                }

                startIdx += kvLen + 1;
            }

            return(dict);
        }
コード例 #2
0
        private JSONDataMap getByNamespace(IInstrumentation instr)
        {
            var data = new JSONDataMap();

            IEnumerable <Type> typeKeys = instr.DataTypes.OrderBy(t => t.FullName);

            foreach (var tkey in typeKeys)
            {
                Datum datum      = null;
                var   sourceKeys = instr.GetDatumTypeSources(tkey, out datum).OrderBy(s => s);
                if (datum == null)
                {
                    continue;
                }

                var tData = new JSONDataMap();
                tData["data"] = sourceKeys;

                tData["descr"] = datum.Description;
                tData["unit"]  = datum.ValueUnitName;
                tData["error"] = datum is IErrorInstrument;
                tData["gauge"] = datum is Gauge;

                data.Add(tkey.FullName, tData);
            }

            return(data);
        }
コード例 #3
0
ファイル: Utils.cs プロジェクト: vlapchenko/nfx
#pragma warning disable 1570
    /// <summary>
    /// Parses query string (e.g. "id=457&name=zelemhan") into dictionary (e.g. {{"id", "457"}, {"name", "zelemhan"}})
    /// </summary>
#pragma warning restore 1570
    public static JSONDataMap ParseQueryString(string query)
    {
      if (query.IsNullOrWhiteSpace()) return new JSONDataMap();

      var dict = new JSONDataMap();
      int queryLen = query.Length;

      int startIdx = 0;
      while (startIdx < queryLen)
      {
        int ampIdx = query.IndexOf('&', startIdx);
        int kvLen = (ampIdx != -1) ? ampIdx - startIdx : queryLen - startIdx;

        if (kvLen < 1)
        {
          startIdx = ampIdx + 1;
          continue;
        }

        int eqIdx = query.IndexOf('=', startIdx, kvLen);
        if (eqIdx == -1)
        {
          var key = Uri.UnescapeDataString(query.Substring(startIdx, kvLen));
          dict.Add(key, null);
        }
        else
        {
          int keyLen = eqIdx - startIdx;
          if (keyLen > 0)
          {
            string key = Uri.UnescapeDataString(query.Substring(startIdx, keyLen));
            string val = null;
            int valLen = kvLen - (eqIdx - startIdx) - 1;
            if (valLen > 0)
              val = Uri.UnescapeDataString(query.Substring(eqIdx + 1, kvLen - (eqIdx - startIdx) - 1));
            dict.Add(key, val);
          }
        }

        startIdx += kvLen + 1;
      }

      return dict;
    }
コード例 #4
0
        public virtual void Serialize(Stream stream)
        {
            if (!m_Built)
            {
                throw new MLException("Node is not built");
            }

            var body = new JSONDataMap();

            body.Add("type", this.GetType().AssemblyQualifiedName);
            body.Add("name", Name);
            body.Add("index", Index);
            body.Add("is-input", IsInput);
            body.Add("is-output", IsOutput);
            body.Add("is-trainable", IsTrainable);
            body.Add("param-count", ParamCount);

            var inputs  = m_Inputs ?? new _ComputingNode <TVal> [0];
            var outputs = m_Outputs ?? new _ComputingNode <TVal> [0];

            body.Add("inputs", new JSONDataArray(inputs));
            body.Add("outputs", new JSONDataArray(outputs));

            DoSerialize(body);

            // TODO: store parameters separately in HD5 or CDF?
            var paramBytes = new byte[ParamCount * sizeof(double)];

            Buffer.BlockCopy(Parameters, 0, paramBytes, 0, paramBytes.Length);
            var parameters = Convert.ToBase64String(paramBytes);

            body.Add("parameters", parameters);
            // TODO: store parameters separately in HD5 or CDF?

            var root = new JSONDataMap {
                { "node", body }
            };

            JSONWriter.Write(root, stream);
        }
コード例 #5
0
        private JSONDataMap getByInterface(IInstrumentation instr)
        {
            var data = new JSONDataMap();

            var sortedTypes = instr.DataTypes.OrderBy(t => t.FullName);

            IEnumerable <Type> intfKeys = instr.DataTypes.SelectMany(t => Datum.GetViewGroupInterfaces(t)).Distinct().OrderBy(ti => ti.FullName);

            foreach (var ikey in intfKeys)
            {
                var iData = new JSONDataMap();

                IEnumerable <Type> typeKeys = sortedTypes.Where(t => Datum.GetViewGroupInterfaces(t).Any(i => i == ikey));
                foreach (var tkey in typeKeys)
                {
                    Datum datum      = null;
                    var   sourceKeys = instr.GetDatumTypeSources(tkey, out datum);
                    if (datum == null)
                    {
                        continue;
                    }

                    var tData = new JSONDataMap();
                    tData["descr"] = datum.Description;
                    tData["unit"]  = datum.ValueUnitName;
                    tData["error"] = datum is IErrorInstrument;
                    tData["gauge"] = datum is Gauge;
                    tData["data"]  = sourceKeys;

                    iData.Add(tkey.FullName, tData);
                }

                data.Add(ikey.Name, iData);
            }

            return(data);
        }
コード例 #6
0
ファイル: BSON.cs プロジェクト: itadapter/nfx
        public void Templatization_Recursive()
        {
            var map1 = new JSONDataMap { { "a", 1 } };
              var map2 = new JSONDataMap { { "b", 2 }, { "c", map1 } };
              map1.Add("d", map2);

              var qry = new BSONDocument("{ rec: '$$value' }", true, new TemplateArg("value", map1));
        }
コード例 #7
0
ファイル: HashedPassword.cs プロジェクト: sergey-msu/azos
 public void Add(string key, object value)
 {
     m_Content.Add(key, value);
 }