Exemple #1
0
 internal FileParser(
     IInputStream stream,
     files.File file
     ) : base(stream)
 {
     this.file = file;
 }
Exemple #2
0
 internal Reader(
     IInputStream stream,
     files.File file
     )
 {
     this.parser = new FileParser(stream, file);
 }
Exemple #3
0
 internal Parser(
     IInputStream stream,
     files.File file
     )
 {
     this.stream = stream;
     this.file   = file;
 }
Exemple #4
0
   internal FileParser(
 IInputStream stream,
 files.File file
 )
       : base(stream)
   {
       this.file = file;
   }
 internal CompressedWriter(
     files.File file,
     IOutputStream stream
     ) : base(file, stream)
 {
 }
Exemple #6
0
 internal PlainWriter(
     files.File file,
     IOutputStream stream
     ) : base(file, stream)
 {
 }
        public override void WriteTo(
            IOutputStream stream,
            files.File context
            )
        {
            MemoryStream buffer = new MemoryStream();

            {
                byte[] rawValue = RawValue;
                switch (serializationMode)
                {
                case SerializationModeEnum.Literal:
                    buffer.WriteByte(LiteralLeftDelimiterCode);

                    /*
                     * NOTE: Literal lexical conventions prescribe that the following reserved characters
                     * are to be escaped when placed inside string character sequences:
                     *  - \n Line feed (LF)
                     *  - \r Carriage return (CR)
                     *  - \t Horizontal tab (HT)
                     *  - \b Backspace (BS)
                     *  - \f Form feed (FF)
                     *  - \( Left parenthesis
                     *  - \) Right parenthesis
                     *  - \\ Backslash
                     */
                    for (
                        int index = 0;
                        index < rawValue.Length;
                        index++
                        )
                    {
                        byte valueByte = rawValue[index];
                        switch (valueByte)
                        {
                        case LineFeedCode:
                            buffer.WriteByte(LiteralEscapeCode); valueByte = 110; break;

                        case CarriageReturnCode:
                            buffer.WriteByte(LiteralEscapeCode); valueByte = 114; break;

                        case HorizontalTabCode:
                            buffer.WriteByte(LiteralEscapeCode); valueByte = 116; break;

                        case BackspaceCode:
                            buffer.WriteByte(LiteralEscapeCode); valueByte = 98; break;

                        case FormFeedCode:
                            buffer.WriteByte(LiteralEscapeCode); valueByte = 102; break;

                        case LiteralLeftDelimiterCode:
                        case LiteralRightDelimiterCode:
                        case LiteralEscapeCode:
                            buffer.WriteByte(LiteralEscapeCode); break;
                        }
                        buffer.WriteByte(valueByte);
                    }
                    buffer.WriteByte(LiteralRightDelimiterCode);
                    break;

                case SerializationModeEnum.Hex:
                    buffer.WriteByte(HexLeftDelimiterCode);
                    byte[] value = tokens::Encoding.Pdf.Encode(ConvertUtils.ByteArrayToHex(rawValue));
                    buffer.Write(value, 0, value.Length);
                    buffer.WriteByte(HexRightDelimiterCode);
                    break;

                default:
                    throw new NotImplementedException();
                }
            }
            stream.Write(buffer.ToArray());
        }