Browse Source

Merge branch 'develop'

Unknown 6 years ago
parent
commit
d19311c43b

+ 3 - 3
Quick.Threads.pas

@@ -7,7 +7,7 @@
   Author      : Kike Pérez
   Version     : 1.4
   Created     : 09/03/2018
-  Modified    : 14/01/2019
+  Modified    : 16/01/2019
 
   This file is part of QuickLib: https://github.com/exilon/QuickLib
 
@@ -1196,7 +1196,6 @@ end;
 
 procedure TScheduledTask.RunOnce;
 begin
-  ClearSchedule;
   fScheduleMode := TScheduleMode.smRunOnce;
   if fStartDate = 0.0 then fStartDate := Now();
   fNextExecution := fStartDate;
@@ -1220,6 +1219,7 @@ begin
     begin
       fLastExecution := Now();
       Inc(fExecutionTimes);
+      fFinished := True;
       Result := True;
     end;
   end
@@ -1368,7 +1368,7 @@ begin
     try
       for task in fTaskList do
       begin
-        if not task.IsFinished then
+        if (task.IsEnabled) and (not task.IsFinished) then
         begin
           if task.CheckSchedule then
           begin

+ 1 - 14
Quick.Value.pas

@@ -7,7 +7,7 @@
   Author      : Kike Pérez
   Version     : 1.4
   Created     : 07/01/2019
-  Modified    : 14/01/2019
+  Modified    : 15/01/2019
 
   This file is part of QuickLib: https://github.com/exilon/QuickLib
 
@@ -193,7 +193,6 @@ type
     function CastToPointer: Pointer;
     function CastToInterface: Pointer;
     function CastToVariant: Variant;
-    function CastToVarRec: TVarRec;
     function CastToCardinal : Cardinal;
     procedure SetAsString(const Value : string);
     {$IFNDEF NEXTGEN}
@@ -209,7 +208,6 @@ type
     procedure SetAsPointer(const Value: Pointer);
     procedure SetAsDateTime(const Value : TDateTime);
     procedure SetAsVariant(const Value: Variant);
-    procedure SetAsVarRec(const Value: TVarRec);
     procedure SetAsCardinal(const Value : Cardinal);
   public
     constructor Create(const Value: TVarRec);
@@ -228,7 +226,6 @@ type
     property AsInterface : Pointer read CastToInterface write SetAsPointer;
     property AsObject : TObject read CastToObject write SetAsObject;
     property AsVariant : Variant  read CastToVariant write SetAsVariant;
-    property AsVarRec : TVarRec read CastToVarRec write SetAsVarRec;
     property AsCardinal : Cardinal read CastToCardinal write SetAsCardinal;
     property AsDateTime : TDateTime read CastToDateTime write SetAsDateTime;
     //function AsType<T> : T;
@@ -507,11 +504,6 @@ begin
   end;
 end;
 
-function TFlexValue.CastToVarRec: TVarRec;
-begin
-
-end;
-
 procedure TFlexValue.Clear;
 begin
    if Pointer(fDataIntf) <> nil then fDataIntf := nil;
@@ -728,11 +720,6 @@ begin
   fDataType := TValueDataType.dtVariant;
 end;
 
-procedure TFlexValue.SetAsVarRec(const Value: TVarRec);
-begin
-
-end;
-
 {$IFNDEF NEXTGEN}
 procedure TFlexValue.SetAsWideString(const Value: WideString);
 begin

+ 32 - 0
samples/delphi/QuickThreads/ScheduledTasks/RunScheduledtask.dpr

@@ -142,6 +142,38 @@ begin
                           ).RepeatEvery(1,TTimeMeasure.tmSeconds,ExpirationDate);
 
 
+    ScheduledDate := IncSecond(Now(),30);
+
+    myjob := TMyJob.Create;
+    myjob.Id := 4;
+    myjob.Name := Format('Run at %s and repeat only one time',[DateTimeToStr(ScheduledDate),DateTimeToStr(ExpirationDate)]);
+
+
+    scheduledtasks.AddTask('Task4',[myjob],True,
+                            procedure(task : ITask)
+                            begin
+                              cout('task "%s" started',[TMyJob(task.Param[0]).Name],etDebug);
+                              TMyJob(task.Param[0]).DoJob;
+                            end
+                          ).OnException(
+                            procedure(task : ITask; aException : Exception)
+                            begin
+                              cout('task "%s" failed (%s)',[TMyJob(task.Param[0]).Name,aException.Message],etError);
+                            end
+                          ).OnTerminated(
+                            procedure(task : ITask)
+                            begin
+                              cout('task "%s" finished',[TMyJob(task.Param[0]).Name],etDebug);
+                            end
+                          ).OnExpired(
+                            procedure(task : ITask)
+                            begin
+                              cout('task "%s" expired',[TMyJob(task.Param[0]).Name],etWarning);
+                            end
+                          ).StartAt(ScheduledDate
+                          ).RunOnce;
+
+
     scheduledtasks.Start;
     cout('Running tasks in background!',etInfo);
     Readln;

+ 14 - 43
samples/delphi/QuickThreads/ScheduledTasks/RunScheduledtask.dproj

@@ -164,13 +164,24 @@
                 </Source>
             </Delphi.Personality>
             <Deployment Version="3">
+                <DeployFile LocalName="$(BDS)\Redist\osx32\libcgunwind.1.0.dylib" Class="DependencyModule">
+                    <Platform Name="OSX32">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile LocalName="Win32\Debug\RunScheduledtask.exe" Configuration="Debug" Class="ProjectOutput">
+                    <Platform Name="Win32">
+                        <RemoteName>RunScheduledtask.exe</RemoteName>
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
                 <DeployFile LocalName="$(BDS)\Redist\osx64\libcgsqlite3.dylib" Class="DependencyModule">
                     <Platform Name="OSX64">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="$(BDS)\Redist\osx32\libcgunwind.1.0.dylib" Class="DependencyModule">
-                    <Platform Name="OSX32">
+                <DeployFile LocalName="$(BDS)\Redist\iossimulator\libPCRE.dylib" Class="DependencyModule">
+                    <Platform Name="iOSSimulator">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
@@ -189,12 +200,6 @@
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="Win32\Debug\RunScheduledtask.exe" Configuration="Debug" Class="ProjectOutput">
-                    <Platform Name="Win32">
-                        <RemoteName>RunScheduledtask.exe</RemoteName>
-                        <Overwrite>true</Overwrite>
-                    </Platform>
-                </DeployFile>
                 <DeployClass Name="AdditionalDebugSymbols">
                     <Platform Name="iOSSimulator">
                         <Operation>1</Operation>
@@ -204,6 +209,7 @@
                         <Operation>1</Operation>
                     </Platform>
                     <Platform Name="Win32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
                         <Operation>0</Operation>
                     </Platform>
                 </DeployClass>
@@ -339,11 +345,6 @@
                         <Operation>1</Operation>
                         <Extensions>.framework</Extensions>
                     </Platform>
-                    <Platform Name="OSX64">
-                        <RemoteDir>Contents\MacOS</RemoteDir>
-                        <Operation>1</Operation>
-                        <Extensions>.framework</Extensions>
-                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                     </Platform>
@@ -366,11 +367,6 @@
                         <Operation>1</Operation>
                         <Extensions>.dylib</Extensions>
                     </Platform>
-                    <Platform Name="OSX64">
-                        <RemoteDir>Contents\MacOS</RemoteDir>
-                        <Operation>1</Operation>
-                        <Extensions>.dylib</Extensions>
-                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                         <Extensions>.dll;.bpl</Extensions>
@@ -394,11 +390,6 @@
                         <Operation>1</Operation>
                         <Extensions>.dylib</Extensions>
                     </Platform>
-                    <Platform Name="OSX64">
-                        <RemoteDir>Contents\MacOS</RemoteDir>
-                        <Operation>1</Operation>
-                        <Extensions>.dylib</Extensions>
-                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                         <Extensions>.bpl</Extensions>
@@ -421,10 +412,6 @@
                         <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
                         <Operation>0</Operation>
                     </Platform>
-                    <Platform Name="OSX64">
-                        <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
-                        <Operation>0</Operation>
-                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                     </Platform>
@@ -572,30 +559,18 @@
                         <RemoteDir>..\</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="OSX64">
-                        <RemoteDir>..\</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="ProjectOSXInfoPList">
                     <Platform Name="OSX32">
                         <RemoteDir>Contents</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="OSX64">
-                        <RemoteDir>Contents</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="ProjectOSXResource">
                     <Platform Name="OSX32">
                         <RemoteDir>Contents\Resources</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="OSX64">
-                        <RemoteDir>Contents\Resources</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Required="true" Name="ProjectOutput">
                     <Platform Name="Android">
@@ -618,10 +593,6 @@
                         <RemoteDir>Contents\MacOS</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="OSX64">
-                        <RemoteDir>Contents\MacOS</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                     </Platform>