Browse Source

* fcl-db: cosmetic: bufdataset comments: typos, grammar, uniform indentation

git-svn-id: trunk@23530 -
reiniero 12 years ago
parent
commit
b44353777a
1 changed files with 89 additions and 93 deletions
  1. 89 93
      packages/fcl-db/src/base/bufdataset.pas

+ 89 - 93
packages/fcl-db/src/base/bufdataset.pas

@@ -1,6 +1,6 @@
 {
     This file is part of the Free Pascal run time library.
-    Copyright (c) 1999-2006 by Joost van der Sluis, member of the
+    Copyright (c) 1999-2013 by Joost van der Sluis and other members of the
     Free Pascal development team
 
     BufDataset implementation
@@ -70,19 +70,19 @@ type
   TRecUpdateBuffer = record
     UpdateKind         : TUpdateKind;
 {  BookMarkData:
-     - Is -1 if the update has canceled out. For example: a appended record has been deleted again
-     - If UpdateKind is ukInsert it contains a bookmark to the new created record
-     - If UpdateKind is ukModify it contains a bookmark to the record with the new data
-     - If UpdateKind is ukDelete it contains a bookmark to the deleted record (ie: the record is still there)
+     - Is -1 if the update has canceled out. For example: an appended record has been deleted again
+     - If UpdateKind is ukInsert, it contains a bookmark to the newly created record
+     - If UpdateKind is ukModify, it contains a bookmark to the record with the new data
+     - If UpdateKind is ukDelete, it contains a bookmark to the deleted record (ie: the record is still there)
 }
     BookmarkData       : TBufBookmark;
 {  NextBookMarkData:
-     - If UpdateKind is ukDelete it contains a bookmark to the record just after the deleted record
+     - If UpdateKind is ukDelete, it contains a bookmark to the record just after the deleted record
 }
     NextBookmarkData   : TBufBookmark;
 {  OldValuesBuffer:
-     - If UpdateKind is ukModify it contains a record-buffer which contains the old data
-     - If UpdateKind is ukDelete it contains a record-buffer with the data of the deleted record
+     - If UpdateKind is ukModify, it contains a record buffer which contains the old data
+     - If UpdateKind is ukDelete, it contains a record buffer with the data of the deleted record
 }
     OldValuesBuffer    : TRecordBuffer;
   end;
@@ -90,7 +90,7 @@ type
 
   PBufBlobField = ^TBufBlobField;
   TBufBlobField = record
-    ConnBlobBuffer : array[0..11] of byte; // It's here where the db-specific data is stored
+    ConnBlobBuffer : array[0..11] of byte; // DB specific data is stored here
     BlobBuffer     : PBlobBuffer;
   end;
 
@@ -159,7 +159,7 @@ type
     // Normally only used in GetNextPacket
     procedure AddRecord; virtual; abstract;
     // Inserts a record before the current record, or if the record is sorted,
-    // insert it to the proper position
+    // inserts it in the proper position
     procedure InsertRecordBeforeCurrentRecord(Const ARecord : TRecordBuffer); virtual; abstract;
     procedure EndUpdate; virtual; abstract;
     
@@ -352,7 +352,7 @@ type
   public
     constructor create(AStream : TStream); virtual;
     // Load a dataset from stream:
-    // Load the field-definitions from a stream.
+    // Load the field definitions from a stream.
     procedure LoadFieldDefs(AFieldDefs : TFieldDefs; var AnAutoIncValue : integer); virtual; abstract;
     // Is called before the records are loaded
     procedure InitLoadRecords; virtual; abstract;
@@ -360,15 +360,15 @@ type
     function GetRecordRowState(out AUpdOrder : Integer) : TRowState; virtual; abstract;
     // Returns if there is at least one more record available in the stream
     function GetCurrentRecord : boolean; virtual; abstract;
-    // Store a record from stream in the current record-buffer
+    // Store a record from stream in the current record buffer
     procedure RestoreRecord(ADataset : TCustomBufDataset); virtual; abstract;
     // Move the stream to the next record
     procedure GotoNextRecord; virtual; abstract;
 
     // Store a dataset to stream:
-    // Save the field-definitions to a stream.
+    // Save the field definitions to a stream.
     procedure StoreFieldDefs(AFieldDefs : TFieldDefs; AnAutoIncValue : integer); virtual; abstract;
-    // Save a record from the current record-buffer to the stream
+    // Save a record from the current record buffer to the stream
     procedure StoreRecord(ADataset : TCustomBufDataset; ARowState : TRowState; AUpdOrder : integer = 0); virtual; abstract;
     // Is called after all records are stored
     procedure FinalizeStoreRecords; virtual; abstract;
@@ -805,7 +805,7 @@ begin
 end;
 
 {
-// Code to dump raw dataset data, including indexes information, usefull for debugging
+// Code to dump raw dataset data, including indexes information, useful for debugging
   procedure DumpRawMem(const Data: pointer; ALength: PtrInt);
   var
     b: integer;
@@ -911,8 +911,8 @@ var PCurRecLinkItem : PBufRecLinkItem;
   end;
 
 begin
- // Build the DBCompareStructure
- // One AS is enough, and makes debugging easier.
+  // Build the DBCompareStructure
+  // One AS is enough, and makes debugging easier.
   DblLinkIndex:=(AIndex as TDoubleLinkedBufIndex);
   Index0:=(FIndexes[0] as TDoubleLinkedBufIndex);
   with DblLinkIndex do
@@ -947,7 +947,7 @@ begin
     end;
     end;
 
-// This simply copies the index...
+  // This simply copies the index...
   PCurRecLinkItem:=Index0.FFirstRecBuf;
   PCurRecLinkItem[DblLinkIndex.IndNr].next := PCurRecLinkItem[0].next;
   PCurRecLinkItem[DblLinkIndex.IndNr].prior := PCurRecLinkItem[0].prior;
@@ -966,46 +966,43 @@ begin
     // Empty dataset
     Exit;
 
-// Set FirstRecBuf and FCurrentRecBuf
+  // Set FirstRecBuf and FCurrentRecBuf
   DblLinkIndex.FFirstRecBuf:=Index0.FFirstRecBuf;
   DblLinkIndex.FCurrentRecBuf:=DblLinkIndex.FFirstRecBuf;
-// Link in the FLastRecBuf that belongs to this index
+  // Link in the FLastRecBuf that belongs to this index
   PCurRecLinkItem[DblLinkIndex.IndNr].next:=DblLinkIndex.FLastRecBuf;
   DblLinkIndex.FLastRecBuf[DblLinkIndex.IndNr].prior:=PCurRecLinkItem;
 
-// Mergesort. Used the algorithm as described here by Simon Tatham
-// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html
-// The comments in the code are from this website.
+  // Mergesort. Used the algorithm as described here by Simon Tatham
+  // http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html
+  // The comments in the code are from this website.
 
-// In each pass, we are merging lists of size K into lists of size 2K.
-// (Initially K equals 1.)
+  // In each pass, we are merging lists of size K into lists of size 2K.
+  // (Initially K equals 1.)
   k:=1;
 
   repeat
 
-// So we start by pointing a temporary pointer p at the head of the list,
-// and also preparing an empty list L which we will add elements to the end
-// of as we finish dealing with them.
-
+  // So we start by pointing a temporary pointer p at the head of the list,
+  // and also preparing an empty list L which we will add elements to the end
+  // of as we finish dealing with them.
   p := DblLinkIndex.FFirstRecBuf;
   DblLinkIndex.FFirstRecBuf := nil;
   q := p;
   MergeAmount := 0;
 
-// Then:
-//    * If p is null, terminate this pass.
+  // Then:
+  // * If p is null, terminate this pass.
   while p <> DblLinkIndex.FLastRecBuf do
     begin
 
-//    * Otherwise, there is at least one element in the next pair of length-K
-//      lists, so increment the number of merges performed in this pass.
-
+    //  * Otherwise, there is at least one element in the next pair of length-K
+    //    lists, so increment the number of merges performed in this pass.
     inc(MergeAmount);
 
-//    * Point another temporary pointer, q, at the same place as p. Step q along
-//      the list by K places, or until the end of the list, whichever comes
-//      first. Let psize be the number of elements you managed to step q past.
-
+    //  * Point another temporary pointer, q, at the same place as p. Step q along
+    //    the list by K places, or until the end of the list, whichever comes
+    //    first. Let psize be the number of elements you managed to step q past.
     i:=0;
     while (i<k) and (q<>DblLinkIndex.FLastRecBuf) do
       begin
@@ -1014,23 +1011,21 @@ begin
       end;
     psize :=i;
 
-//    * Let qsize equal K. Now we need to merge a list starting at p, of length
-//      psize, with a list starting at q of length at most qsize.
-
+    //  * Let qsize equal K. Now we need to merge a list starting at p, of length
+    //    psize, with a list starting at q of length at most qsize.
     qsize:=k;
 
-//    * So, as long as either the p-list is non-empty (psize > 0) or the q-list
-//      is non-empty (qsize > 0 and q points to something non-null):
-
+    //  * So, as long as either the p-list is non-empty (psize > 0) or the q-list
+    //    is non-empty (qsize > 0 and q points to something non-null):
     while (psize>0) or ((qsize>0) and (q <> DblLinkIndex.FLastRecBuf)) do
       begin
-//          o Choose which list to take the next element from. If either list
-//            is empty, we must choose from the other one. (By assumption, at
-//            least one is non-empty at this point.) If both lists are
-//            non-empty, compare the first element of each and choose the lower
-//            one. If the first elements compare equal, choose from the p-list.
-//            (This ensures that any two elements which compare equal are never
-//            swapped, so stability is guaranteed.)
+      //  * Choose which list to take the next element from. If either list
+      //    is empty, we must choose from the other one. (By assumption, at
+      //    least one is non-empty at this point.) If both lists are
+      //    non-empty, compare the first element of each and choose the lower
+      //    one. If the first elements compare equal, choose from the p-list.
+      //    (This ensures that any two elements which compare equal are never
+      //    swapped, so stability is guaranteed.)
       if (psize=0)  then
         PlaceQRec := true
       else if (qsize=0) or (q = DblLinkIndex.FLastRecBuf) then
@@ -1040,23 +1035,24 @@ begin
       else
         PlaceQRec := True;
         
-//          o Remove that element, e, from the start of its list, by advancing
-//            p or q to the next element along, and decrementing psize or qsize.
-//          o Add e to the end of the list L we are building up.
+      //  * Remove that element, e, from the start of its list, by advancing
+      //    p or q to the next element along, and decrementing psize or qsize.
+      //  * Add e to the end of the list L we are building up.
       if PlaceQRec then
         PlaceNewRec(q,qsize)
       else
         PlaceNewRec(p,psize);
       end;
-//    * Now we have advanced p until it is where q started out, and we have
-//      advanced q until it is pointing at the next pair of length-K lists to
-//      merge. So set p to the value of q, and go back to the start of this loop.
+      
+    //  * Now we have advanced p until it is where q started out, and we have
+    //    advanced q until it is pointing at the next pair of length-K lists to
+    //    merge. So set p to the value of q, and go back to the start of this loop.
     p:=q;
     end;
 
-// As soon as a pass like this is performed and only needs to do one merge, the
-// algorithm terminates, and the output list L is sorted. Otherwise, double the
-// value of K, and go back to the beginning.
+  // As soon as a pass like this is performed and only needs to do one merge, the
+  // algorithm terminates, and the output list L is sorted. Otherwise, double the
+  // value of K, and go back to the beginning.
 
   l[DblLinkIndex.IndNr].next:=DblLinkIndex.FLastRecBuf;
 
@@ -1101,8 +1097,8 @@ end;
 function TCustomBufDataset.AllocRecordBuffer: TRecordBuffer;
 begin
   result := AllocMem(FRecordsize + BookmarkSize + CalcfieldsSize);
-// The records are initialised, or else the fields of an empty, just-opened dataset
-// are not null
+  // The records are initialised, or else the fields of an empty, just-opened dataset
+  // are not null
   InitRecord(result);
 end;
 
@@ -1138,7 +1134,7 @@ begin
   // is not (correctly) created.
 
   // commented for now. If there are constant expressions in the select
-  // statement they are ftunknown, and not created.
+  // statement they are ftUnknown, and not created.
   // See mantis #22030
 
   //  if Fields.Count<FieldDefs.Count then
@@ -1146,7 +1142,7 @@ begin
 
   // If there is a field with FieldNo=0 then the fields are not found to the
   // FieldDefs which is a sign that there is no dataset created. (Calculated and
-  // lookupfields have FieldNo=-1)
+  // lookup fields have FieldNo=-1)
   for i := 0 to Fields.Count-1 do
     if fields[i].FieldNo=0 then
       DatabaseError(SErrNoDataset)
@@ -1386,7 +1382,7 @@ end;
 
 procedure TDoubleLinkedBufIndex.InitialiseIndex;
 begin
-// Do nothing
+  // Do nothing
 end;
 
 function TDoubleLinkedBufIndex.CanScrollForward: Boolean;
@@ -1790,7 +1786,7 @@ end;
 function TCustomBufDataset.GetRecordUpdateBufferCached(const ABookmark: TBufBookmark;
   IncludePrior: boolean): boolean;
 begin
-  // if the current update buffer complies, immediately return true
+  // if the current update buffer matches, immediately return true
   if (FCurrentUpdateBuffer < length(FUpdateBuffer)) and (
       FCurrentIndex.CompareBookmarks(@FUpdateBuffer[FCurrentUpdateBuffer].BookmarkData,@ABookmark) or
       (IncludePrior and (FUpdateBuffer[FCurrentUpdateBuffer].UpdateKind=ukDelete) and FCurrentIndex.CompareBookmarks(@FUpdateBuffer[FCurrentUpdateBuffer].NextBookmarkData,@ABookmark))) then
@@ -1969,11 +1965,11 @@ begin
     if FUpdateBuffer[FCurrentUpdateBuffer].UpdateKind <> ukModify then
       begin
       FUpdateBuffer[FCurrentUpdateBuffer].OldValuesBuffer := nil;  //this 'disables' the updatebuffer
-      // Do NOT release record buffer (pointed by RemRecBookmrk.BookmarkData) here
-      //  - When record is inserted and deleted(and memory released) and again inserted then same memory block can be returned
-      //    which leads to confusion, because we get same BookmarkData for distinct records
-      //  - In CancelUpdates when records are restored it is expected, that deleted records still exists in memory
-      // There also could be record(s) in update-buffer, linked to this record.
+      // Do NOT release record buffer (pointed to by RemRecBookmrk.BookmarkData) here
+      //  - When record is inserted and deleted (and memory released) and again inserted then the same memory block can be returned
+      //    which leads to confusion, because we get the same BookmarkData for distinct records
+      //  - In CancelUpdates when records are restored, it is expected that deleted records still exist in memory
+      // There also could be record(s) in the update buffer that is linked to this record.
       end;
     end;
   FCurrentIndex.StoreCurrentRecIntoBookmark(@FUpdateBuffer[FCurrentUpdateBuffer].NextBookmarkData);
@@ -2022,7 +2018,7 @@ var StoreRecBM     : TBufBookmark;
         end
       else if (UpdateKind = ukInsert) then
         begin
-        // Process all upd-buffers linked to this record before this record is removed
+        // Process all update buffers linked to this record before this record is removed
         StoreUpdBuf:=FCurrentUpdateBuffer;
         Bm := BookmarkData;
         BookmarkData.BookmarkData:=nil; // Avoid infinite recursion...
@@ -2078,7 +2074,7 @@ begin
   FOnUpdateError := AValue;
 end;
 
-procedure TCustomBufDataset.ApplyUpdates; // For backwards-compatibility
+procedure TCustomBufDataset.ApplyUpdates; // For backward compatibility
 
 begin
   ApplyUpdates(0);
@@ -2246,7 +2242,7 @@ begin
           FIndexes[i].GotoBookmark(ABookmark);
 
         FIndexes[i].InsertRecordBeforeCurrentRecord(ABuff);
-        // new inserted record becomes current record
+        // newly inserted record becomes current record
         FIndexes[i].ScrollBackward;
       end;
 
@@ -2629,7 +2625,7 @@ procedure TCustomBufDataset.GetDatasetPacket(AWriter: TDataPacketReader);
       ARowState := [rsvInserted];
 
     FFilterBuffer:=AUpdBuffer.OldValuesBuffer;
-    // If the record is inserted or inserted and afterwards deleted then OldValuesBuffer is nil
+    // OldValuesBuffer is nil if the record is either inserted or inserted and then deleted
     if assigned(FFilterBuffer) then
       FDatasetReader.StoreRecord(Self,AThisRowState,FCurrentUpdateBuffer);
   end;
@@ -2666,7 +2662,7 @@ var ScrollResult   : TGetResult;
 begin
   FDatasetReader := AWriter;
   try
-    //CheckActive;
+    //  CheckActive;
     ABookMark:=@ATBookmark;
     FDatasetReader.StoreFieldDefs(FieldDefs,FAutoIncValue);
 
@@ -2690,7 +2686,7 @@ begin
           ScrollResult := FCurrentIndex.ScrollForward;
         end;
       end;
-    // There could be a update-buffer linked to the last (spare) record
+    // There could be an update buffer linked to the last (spare) record
     FCurrentIndex.StoreSpareRecIntoBookmark(ABookmark);
     HandleUpdateBuffersFromRecord(True,ABookmark^,RowState);
 
@@ -3043,7 +3039,7 @@ begin
     begin
       FParser := TBufDatasetParser.Create(Self);
     end;
-    // have a parser now?
+    // is there a parser now?
     if FParser <> nil then
     begin
       // set options
@@ -3120,7 +3116,7 @@ begin
     SearchFields.Free;
   end;
 
-  // Set The filter-buffer
+  // Set the filter buffer
   StoreDSState:=SetTempState(dsFilter);
   FFilterBuffer:=FCurrentIndex.SpareBuffer;
   SetFieldValues(keyfields,KeyValues);
@@ -3136,7 +3132,7 @@ begin
       if Filtered then
         begin
         FFilterBuffer:=pointer(CurrLinkItem)+(sizeof(TBufRecLinkItem)*MaxIndexesCount);
-        // The dataset-state is still dsFilter at this point, so we don't have to set it.
+        // The dataset state is still dsFilter at this point, so we don't have to set it.
         DoFilterRecord(FiltAcceptable);
         if FiltAcceptable then
           begin
@@ -3178,7 +3174,7 @@ begin
   try
     if Locate(KeyFields,KeyValues,[]) then
       begin
-//      CalculateFields(ActiveBuffer); // not needed, done by Locate more than once
+      //  CalculateFields(ActiveBuffer); // not needed, done by Locate more than once
       result:=FieldValues[ResultFields];
       end;
     GotoBookmark(bm);
@@ -3280,8 +3276,8 @@ end;
 
 procedure TArrayBufIndex.SetToFirstRecord;
 begin
-// if FCurrentRecBuf = FLastRecBuf then the dataset is just opened and empty
-// in which case InternalFirst should do nothing (bug 7211)
+  // if FCurrentRecBuf = FLastRecBuf then the dataset is just opened and empty
+  // in which case InternalFirst should do nothing (bug 7211)
   if FCurrentRecInd <> FLastRecInd then
     FCurrentRecInd := -1;
 end;
@@ -3337,7 +3333,7 @@ end;
 
 procedure TArrayBufIndex.InitialiseIndex;
 begin
-//  FRecordArray:=nil;
+  //  FRecordArray:=nil;
   setlength(FRecordArray,FInitialBuffers);
   FCurrentRecInd:=-1;
   FLastRecInd:=-1;
@@ -3346,7 +3342,7 @@ end;
 procedure TArrayBufIndex.InitialiseSpareRecord(const ASpareRecord:  TRecordBuffer);
 begin
   FLastRecInd := 0;
- // FCurrentRecInd := 0;
+  // FCurrentRecInd := 0;
   FRecordArray[0] := ASpareRecord;
 end;
 
@@ -3381,7 +3377,7 @@ end;
 
 procedure TArrayBufIndex.BeginUpdate;
 begin
-//  inherited BeginUpdate;
+  //  inherited BeginUpdate;
 end;
 
 procedure TArrayBufIndex.AddRecord;
@@ -3396,7 +3392,7 @@ end;
 
 procedure TArrayBufIndex.EndUpdate;
 begin
-//  inherited EndUpdate;
+  //  inherited EndUpdate;
 end;
 
 { TDataPacketReader }
@@ -3491,7 +3487,7 @@ end;
 
 procedure TFpcBinaryDatapacketReader.FinalizeStoreRecords;
 begin
-//  Do nothing
+  //  Do nothing
 end;
 
 function TFpcBinaryDatapacketReader.GetCurrentRecord: boolean;
@@ -3502,12 +3498,12 @@ end;
 
 procedure TFpcBinaryDatapacketReader.GotoNextRecord;
 begin
-//  Do Nothing
+  //  Do Nothing
 end;
 
 procedure TFpcBinaryDatapacketReader.InitLoadRecords;
 begin
-//  SetLength(AChangeLog,0);
+  //  SetLength(AChangeLog,0);
 end;
 
 procedure TFpcBinaryDatapacketReader.RestoreRecord(ADataset: TCustomBufDataset);
@@ -3550,7 +3546,7 @@ begin
   // This code could be moved to the TBufIndex but that would make things
   // more complicated and probably slower. So use a 'fake' bookmark of
   // size TBufBookmark.
-  // When there are other TBufIndexes which also need special bookmark-code
+  // When there are other TBufIndexes which also need special bookmark code
   // this can be adapted.
   Result:=sizeof(TBufBookmark);
 end;
@@ -3562,7 +3558,7 @@ end;
 
 function TUniDirectionalBufIndex.GetCurrentRecord:  TRecordBuffer;
 begin
-//  Result:=inherited GetCurrentRecord;
+  //  Result:=inherited GetCurrentRecord;
 end;
 
 function TUniDirectionalBufIndex.GetIsInitialized: boolean;
@@ -3628,7 +3624,7 @@ end;
 
 function TUniDirectionalBufIndex.CanScrollForward: Boolean;
 begin
-  // should return true if a next record is already fetched
+  // should return true if next record is already fetched
   result := false;
 end;