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

Reply via email to