Let me elaborate the issue: In our caches, we may have duplicate URLs. How would one update a timestamp with tcachenode pointer? Best Regards,
SZ On Mon, Dec 5, 2011 at 12:47, Fastream Technologies <ga...@fastream.com>wrote: > On Sun, Dec 4, 2011 at 11:05, Arno Garrels <arno.garr...@gmx.de> wrote: > >> ----- Original Message ----- >> From: "Fastream Technologies" <ga...@fastream.com> >> To: "ICS support mailing" <twsocket@elists.org> >> Sent: Sunday, December 04, 2011 7:16 AM >> Subject: Re: [twsocket] Converting a cache to AVL tree >> >> >> > The component I tried to use is TCacheTree. It has a timeout argument >> for >> > each added item. I do not want any timers or any timeouts yet liked the >> > component. Is there a way to omit expiration. I will use my own code >> for it. >> >> TCacheTree doesn't use any timer, it just provides two TDateTime fields. >> There are two indices, first is Key of type string, second is TimeStamp >> of type TDateTime used to find oldest entries very fast. It's two linked >> AVL trees. >> >> procedure Insert( >> Key : String; // Unique key >> Data : Pointer; // Pointer to data >> Len : Integer; // Optionally data size >> TimeStamp : TDateTime = MinDT; // Second key (dups are allowed and >> handled) >> Expires : TDateTime = MinDT; // What ever you like >> UpdateTime : Boolean = True; // Shall the TDateTime fields be >> updated? >> UpdateData : Boolean = True); // Shall Data be updated? >> >> Use Insert() for both add and update an entry. >> >> Node : TCacheNode; >> begin >> Node := FCacheTree.FindKey(Key); >> if Node <> nil then >> begin >> // Node.IdxRef.TimeStamp // i.e read the TimeStamp >> // i.e update TimeStamp and Expires, don't update Data >> FCacheTree.Insert(Key, nil, 0, time1, time2, TRUE, FALSE); >> end; >> >> Oldest() returns oldest entry. >> Flush() removes all entries older or same DateTime as passed. >> >> Hope this helps. >> >> -- >> Arno Garrels >> >> >> > > Critical question: Node.IdxRef.TimeStamp = updatedDate; > > Would this work? Because we may have duplicates... > > Regards, > > SZ > -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be