public IStyxMessage GetMessage() { IStyxMessage res = null; switch (type) { case MessageType.Twalk: case MessageType.Rwalk: res = new StyxWalkMessage(); break; case MessageType.Tversion: case MessageType.Rversion: res = new StyxVersionMessage(); break; case MessageType.Tclunk: case MessageType.Rclunk: res = new StyxClunkMessage(); break; case MessageType.Tstat: case MessageType.Rstat: res = new StyxStatMessage(); break; case MessageType.Topen: case MessageType.Ropen: res = new StyxOpenMessage(); break; case MessageType.Tread: case MessageType.Rread: res = new StyxReadMessage(); break; case MessageType.Tattach: case MessageType.Rattach: res = new StyxAttachMessage(); break; } if (res != null) { res.SetBinary(data); } return res; }
private IStyxMessage HandleAttach(StyxAttachMessage message) { StyxFileSystemInterface fsitem; server.Attach(message.AFid, message.UserName, message.MountPoint, out fsitem); RegisterFID(message.Fid, fsitem); return new StyxAttachMessage(message.Tag, fsitem.GetQID() ); }