示例#1
0
 public static BooruPost FromReader(ReaderWriter Reader)
 {
     return(new BooruPost()
     {
         ID = Reader.ReadULong(),
         User = Reader.ReadString(),
         Private = Reader.ReadBool(),
         Source = Reader.ReadString(),
         Description = Reader.ReadString(),
         Rating = Reader.ReadByte(),
         Width = Reader.ReadUInt(),
         Height = Reader.ReadUInt(),
         CreationDate = Helper.UnixTimeToDateTime(Reader.ReadUInt()),
         ViewCount = Reader.ReadULong(),
         EditCount = Reader.ReadULong(),
         Score = Reader.ReadLong(),
         ImageHash = Reader.ReadBytes()
     });
 }
示例#2
0
 private static void Request(Stream str, RequestCode RQ, Action <ReaderWriter> ReqCB, Action <ReaderWriter> RespCB)
 {
     using (ReaderWriter rw = new ReaderWriter(str))
     {
         rw.Write((ushort)RQ);
         using (MemoryStream ms = new MemoryStream())
         {
             using (ReaderWriter req_rw = new ReaderWriter(ms))
                 ReqCB(req_rw);
             rw.Write(ms.ToArray(), true);
         }
         rw.Flush();
         if (rw.ReadBool())
         {
             using (MemoryStream ms = new MemoryStream(rw.ReadBytes()))
                 using (ReaderWriter resp_rw = new ReaderWriter(ms))
                     RespCB(resp_rw);
         }
         else
         {
             throw new Exception(rw.ReadString());
         }
     }
 }
示例#3
0
        /*
         * public void ToWriter(BinaryWriter Writer, Action<float> ProgressCallback)
         * {
         *  Writer.Write(Bytes.Length);
         *  if (ProgressCallback != null)
         *  {
         *      int chunkSize = 1024 * 5;
         *      int chunkCount = Bytes.Length / chunkSize;
         *      for (int i = 0; i < chunkCount; i++)
         *      {
         *          Writer.Write(Bytes, i * chunkSize, chunkSize);
         *          ProgressCallback(i * (float)chunkSize / Bytes.Length);
         *      }
         *      Writer.Write(Bytes, chunkCount * chunkSize, Bytes.Length % chunkSize);
         *      ProgressCallback(1f);
         *  }
         *  else Writer.Write(Bytes);
         * }
         */

        public static BooruImage FromReader(ReaderWriter Reader)
        {
            return(BooruImage.FromBytes(Reader.ReadBytes()));
        }