示例#1
0
        public void AddMetaEntry(FilelistEntryType type, string name, string metahash, long metasize, string metablockhash, IEnumerable <string> metablocklisthashes)
        {
            m_foldercount++;
            m_writer.WriteStartObject();
            m_writer.WritePropertyName("type");
            m_writer.WriteValue(type.ToString());
            m_writer.WritePropertyName("path");
            m_writer.WriteValue(name);
            if (metahash != null)
            {
                WriteMetaProperties(metahash, metasize, metablockhash, metablocklisthashes);
            }

            m_writer.WriteEndObject();
        }
示例#2
0
        private void AddFileEntry(FilelistEntryType type, string name, string filehash, long size, DateTime lastmodified, string metahash, long metasize, string metablockhash, string blockhash, long blocksize, IEnumerable <string> blocklisthashes, IEnumerable <string> metablocklisthashes)
        {
            m_filecount++;
            m_writer.WriteStartObject();
            m_writer.WritePropertyName("type");
            m_writer.WriteValue(type.ToString());
            m_writer.WritePropertyName("path");
            m_writer.WriteValue(name);
            m_writer.WritePropertyName("hash");
            m_writer.WriteValue(filehash);
            m_writer.WritePropertyName("size");
            m_writer.WriteValue(size);
            m_writer.WritePropertyName("time");
            m_writer.WriteValue(Library.Utility.Utility.SerializeDateTime(lastmodified));
            if (metahash != null)
            {
                WriteMetaProperties(metahash, metasize, metablockhash, metablocklisthashes);
            }

            if (blocklisthashes != null)
            {
                //Slightly akward, but we avoid writing if there are no entries
                using (var en = blocklisthashes.GetEnumerator())
                {
                    if (en.MoveNext() && !string.IsNullOrEmpty(en.Current))
                    {
                        m_writer.WritePropertyName("blocklists");
                        m_writer.WriteStartArray();
                        m_writer.WriteValue(en.Current);
                        while (en.MoveNext())
                        {
                            m_writer.WriteValue(en.Current);
                        }
                        m_writer.WriteEndArray();
                    }
                }
            }
            else if (!string.IsNullOrWhiteSpace(blockhash))
            {
                m_writer.WritePropertyName("blockhash");
                m_writer.WriteValue(blockhash);
                m_writer.WritePropertyName("blocksize");
                m_writer.WriteValue(blocksize);
            }

            m_writer.WriteEndObject();
        }
示例#3
0
 public void AddMetaEntry(FilelistEntryType type, string name, string metahash, long metasize)
 {
     m_foldercount++;
     m_writer.WriteStartObject();
     m_writer.WritePropertyName("type");
     m_writer.WriteValue(type.ToString());
     m_writer.WritePropertyName("path");
     m_writer.WriteValue(name);
     if (metahash != null)
     {
         m_writer.WritePropertyName("metahash");
         m_writer.WriteValue(metahash);
         m_writer.WritePropertyName("metasize");
         m_writer.WriteValue(metasize);
     }
     m_writer.WriteEndObject();
 }
        private void AddFileEntry(FilelistEntryType type, string name, string filehash, long size, DateTime lastmodified, string metahash, long metasize, IEnumerable<string> blocklisthashes)
        {
            m_filecount++;
            m_writer.WriteStartObject();
            m_writer.WritePropertyName("type");
            m_writer.WriteValue(type.ToString());
            m_writer.WritePropertyName("path");
            m_writer.WriteValue(name);
            m_writer.WritePropertyName("hash");
            m_writer.WriteValue(filehash);
            m_writer.WritePropertyName("size");
            m_writer.WriteValue(size);
            m_writer.WritePropertyName("time");
            m_writer.WriteValue(Library.Utility.Utility.SerializeDateTime(lastmodified));
            if (metahash != null)
            {
                m_writer.WritePropertyName("metahash");
                m_writer.WriteValue(metahash);
                m_writer.WritePropertyName("metasize");
                m_writer.WriteValue(metasize);
            }

            if (blocklisthashes != null)
            {
                //Slightly akward, but we avoid writing if there are no entries 
                var en = blocklisthashes.GetEnumerator();
                if (en.MoveNext() && !string.IsNullOrEmpty(en.Current))
                {
                    m_writer.WritePropertyName("blocklists");
                    m_writer.WriteStartArray();
                    m_writer.WriteValue(en.Current);
                    while(en.MoveNext())
                        m_writer.WriteValue(en.Current);
                    m_writer.WriteEndArray();
                }
            }

            m_writer.WriteEndObject();
        }
 public void AddMetaEntry(FilelistEntryType type, string name, string metahash, long metasize)
 {
     m_foldercount++;
     m_writer.WriteStartObject();
     m_writer.WritePropertyName("type");
     m_writer.WriteValue(type.ToString());
     m_writer.WritePropertyName("path");
     m_writer.WriteValue(name);
     if (metahash != null)
     {
         m_writer.WritePropertyName("metahash");
         m_writer.WriteValue(metahash);
         m_writer.WritePropertyName("metasize");
         m_writer.WriteValue(metasize);
     }
     m_writer.WriteEndObject();
 }