public virtual IntermediateRepresentation Decode()
        {
            DecodeFrame();

            IList<Token> tokens = new List<Token>();
            while (_offset < _size)
            {
                tokens.Add(DecodeToken());
            }

            int i = 0, size = tokens.Count;

            if (tokens[0].Signal == Signal.BeginComposite)
            {
                i = CaptureHeader(tokens, 0);
            }

            var ir = new IntermediateRepresentation(_irPackageName, _irNamespaceName, _irHeader, _irVersion);

            for (; i < size; i++)
            {
                if (tokens[i].Signal == Signal.BeginMessage)
                {
                    i = CaptureMessage(tokens, i, ir);
                }
            }

            return ir;
        }
        public virtual IntermediateRepresentation Decode()
        {
            DecodeFrame();

            IList <Token> tokens = new List <Token>();

            while (_offset < _size)
            {
                tokens.Add(DecodeToken());
            }

            int i = 0, size = tokens.Count;

            if (tokens[0].Signal == Signal.BeginComposite)
            {
                i = CaptureHeader(tokens, 0);
            }

            var ir = new IntermediateRepresentation(_irPackageName, _irNamespaceName, _irHeader, _irVersion);

            for (; i < size; i++)
            {
                if (tokens[i].Signal == Signal.BeginMessage)
                {
                    i = CaptureMessage(tokens, i, ir);
                }
            }

            return(ir);
        }
Example #3
0
 public IrEncoder(ByteBuffer buffer, IntermediateRepresentation ir)
 {
     Channel      = null;
     ResultBuffer = buffer;
     this.Buffer  = ByteBuffer.allocateDirect(CAPACITY);
     DirectBuffer = new DirectBuffer(this.Buffer);
     this.Ir      = ir;
 }
Example #4
0
 public IrEncoder(string fileName, IntermediateRepresentation ir)
 {
     Channel      = (new FileOutputStream(fileName)).Channel;
     ResultBuffer = null;
     Buffer       = ByteBuffer.allocateDirect(CAPACITY);
     DirectBuffer = new DirectBuffer(Buffer);
     this.Ir      = ir;
 }
	public IrEncoder(ByteBuffer buffer, IntermediateRepresentation ir)
	{
		Channel = null;
		ResultBuffer = buffer;
		this.Buffer = ByteBuffer.allocateDirect(CAPACITY);
		DirectBuffer = new DirectBuffer(this.Buffer);
		this.Ir = ir;
	}
	public IrEncoder(string fileName, IntermediateRepresentation ir)
	{
		Channel = (new FileOutputStream(fileName)).Channel;
		ResultBuffer = null;
		Buffer = ByteBuffer.allocateDirect(CAPACITY);
		DirectBuffer = new DirectBuffer(Buffer);
		this.Ir = ir;
	}
        private int CaptureMessage(IList <Token> tokens, int index, IntermediateRepresentation ir)
        {
            IList <Token> messageTokens = new List <Token>();

            Token token = tokens[index];

            messageTokens.Add(token);
            do
            {
                token = tokens[++index];
                messageTokens.Add(token);
            } while (Signal.EndMessage != token.Signal);

            ir.AddMessage(tokens[index].SchemaId, messageTokens);

            return(index);
        }
        private int CaptureMessage(IList<Token> tokens, int index, IntermediateRepresentation ir)
        {
            IList<Token> messageTokens = new List<Token>();

            Token token = tokens[index];
            messageTokens.Add(token);
            do
            {
                token = tokens[++index];
                messageTokens.Add(token);
            } while (Signal.EndMessage != token.Signal);

            ir.AddMessage(tokens[index].SchemaId, messageTokens);

            return index;
        }