internal Proxy_Event ToProxy() { Proxy_Event result = new Proxy_Event(); result.id = id.ToString(); return(result); }
public override string SaveChanges(Session session, string opaqueRef, Event serverObject) { Event server = serverObject; if (opaqueRef == null) { Proxy_Event p = this.ToProxy(); throw new InvalidOperationException("There is no constructor available for this type; you cannot directly create one on the server."); } else { if (!_id.Equals(server._id)) { Event.set_id(session, opaqueRef, _id); } return(null); } }
/// <summary> /// Returns null if we get an event we're not interested in, or an unparseable event (e.g. for an object type we don't know about). /// </summary> /// <param name="proxyEvent"></param> /// <returns></returns> private static ObjectChange ProcessEvent(Proxy_Event proxyEvent) { switch (proxyEvent.class_.ToLowerInvariant()) { case "session": case "event": case "vtpm": case "user": case "secret": // We don't track events on these objects return(null); default: Type typ = Marshalling.GetXenAPIType(proxyEvent.class_); if (typ == null) { log.DebugFormat("Unknown {0} event for class {1}.", proxyEvent.operation, proxyEvent.class_); return(null); } switch (proxyEvent.operation) { case "add": case "mod": return(new ObjectChange(typ, proxyEvent.opaqueRef, Marshalling.convertStruct(typ, (Hashtable)proxyEvent.snapshot))); case "del": return(new ObjectChange(typ, proxyEvent.opaqueRef, null)); default: log.DebugFormat("Unknown event operation {0} for opaque ref {1}", proxyEvent.operation, proxyEvent.opaqueRef); return(null); } } }
internal void UpdateFromProxy(Proxy_Event proxy) { id = long.Parse(proxy.id); }
internal Event(Proxy_Event proxy) { this.UpdateFromProxy(proxy); }
internal Event(Proxy_Event proxy) { UpdateFrom(proxy); }
/// <summary> /// Returns null if we get an event we're not interested in, or an unparseable event (e.g. for an object type we don't know about). /// </summary> /// <param name="proxyEvent"></param> /// <returns></returns> private static ObjectChange ProcessEvent(Proxy_Event proxyEvent) { switch (proxyEvent.class_.ToLowerInvariant()) { case "session": case "event": case "vtpm": case "user": case "secret": // We don't track events on these objects return null; default: Type typ = Marshalling.GetXenAPIType(proxyEvent.class_); if (typ == null) { log.DebugFormat("Unknown {0} event for class {1}.", proxyEvent.operation, proxyEvent.class_); return null; } switch (proxyEvent.operation) { case "add": case "mod": return new ObjectChange(typ, proxyEvent.opaqueRef, Marshalling.convertStruct(typ, (Hashtable)proxyEvent.snapshot)); case "del": return new ObjectChange(typ, proxyEvent.opaqueRef, null); default: log.DebugFormat("Unknown event operation {0} for opaque ref {1}", proxyEvent.operation, proxyEvent.opaqueRef); return null; } } }
public static Proxy_Event MakeProxyEvent(string typeName, string opaqueRef, string operation, Type ProxyT, object proxy) { Proxy_Event ev = new Proxy_Event(); ev.class_ = typeName; ev.opaqueRef = opaqueRef; ev.operation = operation; ev.snapshot = ProxyToHashtable(ProxyT, proxy); return ev; }