Beispiel #1
0
        public HandleInfoResult HandleInfo(HandleInfoContext ctx, Object msg)
        {
            switch (msg)
            {
            case Tuple <Atom, Pid, String, Byte[]> c when c.Item1 == "write":
                Atom result = (Atom)Erl.Modules.File.WriteFile(c.Item3, c.Item4);
                Erl.Send(c.Item2, new Atom(result));
                break;

            case Tuple <Atom, String> cmd when cmd.Item1 == "open":
                Tuple <Atom, Pid> success = (Tuple <Atom, Pid>)Erl.Modules.File.Open(cmd.Item2, new object[] { new Atom("write") });
                this.fileHandle = success.Item2;
                break;

            case Tuple <Atom, byte[]> cmd when cmd.Item1 == "write":
                Erl.Modules.File.Write(this.fileHandle, cmd.Item2);
                break;

            case Tuple <Atom, Pid> cmd when cmd.Item1 == "close":
                Erl.Modules.File.Close(this.fileHandle);
                Erl.Send(cmd.Item2, new Atom("ok"));
                break;
            }
            return(ctx.NoReply());
        }
Beispiel #2
0
 public HandleInfoResult HandleInfo(HandleInfoContext ctx, InfoMsg msg)
 {
     HandleInfoImpl(msg);
     return(ctx.NoReply());
 }