/// <summary> /// Create an EAnp event having the parameters specified. /// </summary> private AnpMsg MakeEAnpEvent(EAnpEvt type, UInt64 date, UInt32 userID, UInt64 freshness) { AnpMsg m = new AnpMsg(); m.Minor = 1; m.Type = (UInt32)type; m.AddUInt64(InternalID); m.AddUInt64(date); m.AddUInt32(userID); m.AddUInt64(freshness); m.AddBin(Wm.MakeUuid()); return m; }
/// <summary> /// Create a VNC session. /// </summary> private void HandleVncCreateSession(AnpMsg cmd, AnpMsg res) { int i = 0; UInt64 kwsID = cmd.Elements[i++].UInt64; bool supportFlag = cmd.Elements[i++].UInt32 > 0; String subject = cmd.Elements[i++].String; Workspace kws = Wm.GetKwsByInternalIDOrThrow(kwsID); byte[] sessionUuid = kws.Vnc.StartServerSession(supportFlag, 0, subject); res.Type = (uint)EAnpRes.VncSession; res.AddBin(sessionUuid); }
/// <summary> /// Join a VNC session. /// </summary> private void HandleVncJoinSession(AnpMsg cmd, AnpMsg res) { int i = 0; UInt64 kwsID = cmd.Elements[i++].UInt64; UInt64 sessionID = cmd.Elements[i++].UInt64; String subject = cmd.Elements[i++].String; Workspace kws = Wm.GetKwsByInternalIDOrThrow(kwsID); byte[] sessionUuid = kws.Vnc.StartClientSession(sessionID, subject); res.Type = (uint)EAnpRes.VncSession; res.AddBin(sessionUuid); }
/// <summary> /// Fetch EAnp events. /// </summary> private void HandleFetchEvent(AnpMsg cmd, AnpMsg res) { int i = 0; UInt64 kwsID = cmd.Elements[i++].UInt64; UInt32 evtID = cmd.Elements[i++].UInt32; UInt32 limit = cmd.Elements[i++].UInt32; List<AnpMsg> l = Wm.LocalDbBroker.FetchEAnpEvents(kwsID, evtID, limit); res.Type = (uint)EAnpRes.FetchEvent; res.AddUInt64(Wm.Cd.UpdateFreshnessTime()); res.AddUInt32((uint)l.Count); foreach (AnpMsg evt in l) res.AddBin(evt.ToByteArray(true)); }