public void Set(T obj) { td_bridge_object_ptr_reset(ptr, TLObjectFactory.CreateCxxObject(obj)); //var oldobj = *(IntPtr*)ptr; //if (oldobj != IntPtr.Zero) // CxxAbi.FreeCxxTLObject(oldobj); //*(IntPtr*)ptr = obj == null ? IntPtr.Zero : obj.TdCreateCxxObject(); }
public T Fetch() { // var objptr = *(IntPtr*)ptr; //T obj = null; //td_bridge_object_ptr_fetch(ptr, (objptr, _)=> { // if (objptr != IntPtr.Zero) // obj = (T)TLObjectFactory.FetchCxxObject(objptr); //}); var objptr = td_bridge_object_ptr_get(ptr); return(objptr == IntPtr.Zero ? null : (T)TLObjectFactory.FetchCxxObject(objptr)); }
public void Add(TLObject obj) { td_bridge_vector_object_emplace_back(ptr, TLObjectFactory.CreateCxxObject(obj)); }