//
        // Un-marshal an object instance from the data input stream
        //
        public override void LooseUnmarshal(OpenWireFormat wireFormat, Object o, BinaryReader dataIn)
        {
            base.LooseUnmarshal(wireFormat, o, dataIn);

            PartialCommand info = (PartialCommand)o;

            info.CommandId = dataIn.ReadInt32();
            info.Data      = ReadBytes(dataIn, dataIn.ReadBoolean());
        }
        //
        // Un-marshal an object instance from the data input stream
        //
        public override void TightUnmarshal(OpenWireFormat wireFormat, Object o, BinaryReader dataIn, BooleanStream bs)
        {
            base.TightUnmarshal(wireFormat, o, dataIn, bs);

            PartialCommand info = (PartialCommand)o;

            info.CommandId = dataIn.ReadInt32();
            info.Data      = ReadBytes(dataIn, bs.ReadBoolean());
        }
        //
        // Write the booleans that this object uses to a BooleanStream
        //
        public override int TightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs)
        {
            PartialCommand info = (PartialCommand)o;

            int rc = base.TightMarshal1(wireFormat, info, bs);

            bs.WriteBoolean(info.Data != null);
            rc += info.Data == null ? 0 : info.Data.Length + 4;

            return(rc + 4);
        }
        //
        // Write a object instance to data output stream
        //
        public override void TightMarshal2(OpenWireFormat wireFormat, Object o, BinaryWriter dataOut, BooleanStream bs)
        {
            base.TightMarshal2(wireFormat, o, dataOut, bs);

            PartialCommand info = (PartialCommand)o;

            dataOut.Write(info.CommandId);
            if (bs.ReadBoolean())
            {
                dataOut.Write(info.Data.Length);
                dataOut.Write(info.Data);
            }
        }
        //
        // Write a object instance to data output stream
        //
        public override void LooseMarshal(OpenWireFormat wireFormat, Object o, BinaryWriter dataOut)
        {
            PartialCommand info = (PartialCommand)o;

            base.LooseMarshal(wireFormat, o, dataOut);
            dataOut.Write(info.CommandId);
            dataOut.Write(info.Data != null);
            if (info.Data != null)
            {
                dataOut.Write(info.Data.Length);
                dataOut.Write(info.Data);
            }
        }
Exemplo n.º 6
0
        public IEnumerable <string> CompleteCommand([FromBody] PartialCommand command)
        {
            if (command.Args != null && command.Args.Count != 0)
            {
                return(Enumerable.Empty <string>());
            }

            // Method completion.
            ActorDescription actor;

            if (!InvocationController.Actors.Value.TryGetValue(command.Kind, out actor))
            {
                return(Enumerable.Empty <string>());
            }

            var results = new List <string>();
            var method  = command.Method ?? string.Empty;

            results.AddRange(actor.Methods.Where(_ => _.Value.Visible && _.Key.StartsWith(method, StringComparison.OrdinalIgnoreCase)).Select(_ => _.Key));

            return(results);
        }