Changeset 4 for trunk/UKernel.pas
- Timestamp:
- Nov 23, 2014, 12:56:33 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/UKernel.pas
r3 r4 6 6 7 7 uses 8 Classes, SysUtils, UList, Contnrs, UFileSystem, U API;8 Classes, SysUtils, UList, Contnrs, UFileSystem, UMemory; 9 9 10 10 type 11 T Event = procedure of object;11 TBasicEvent = procedure of object; 12 12 13 13 TTaskState = (tsStopped, tsRunning, tsSuspended); … … 18 18 Name: string; 19 19 State: TTaskState; 20 EntryPoint: T Event;20 EntryPoint: TBasicEvent; 21 21 constructor Create; virtual; 22 22 end; … … 31 31 Running: Boolean; 32 32 procedure Start; virtual; 33 procedure Stop; 34 function AddTask(Name: string; EntryPoint: T Event): TTask; virtual;33 procedure Stop; virtual; 34 function AddTask(Name: string; EntryPoint: TBasicEvent): TTask; virtual; 35 35 constructor Create; virtual; 36 36 destructor Destroy; override; … … 43 43 end; 44 44 45 { TDevice } 46 47 TDevice = class(TNamedObject) 48 ClassName: string; 49 constructor Create; virtual; 50 procedure Service(Index: Integer; DataIn, DataOut: TMemory); virtual; 51 end; 52 45 53 { TKernel } 46 54 … … 51 59 SchedulerClass: TSchedulerClass; 52 60 FileSystemClass: TFileSystemClass; 61 Devices: TNamedObjectList; // TList<TDevice> 53 62 procedure AppExecute(AFile: TFile); 54 63 procedure Init; … … 59 68 60 69 implementation 70 71 uses 72 UApp; 73 74 { TDevice } 75 76 constructor TDevice.Create; 77 begin 78 inherited Create; 79 end; 80 81 procedure TDevice.Service(Index: Integer; DataIn, DataOut: TMemory); 82 begin 83 84 end; 61 85 62 86 { TTask } … … 79 103 end; 80 104 81 function TScheduler.AddTask(Name: string; EntryPoint: T Event): TTask;105 function TScheduler.AddTask(Name: string; EntryPoint: TBasicEvent): TTask; 82 106 var 83 107 NewTask: TTask; … … 111 135 App := TApp(Apps.FindByName(AFile.Name)); 112 136 if Assigned(App) then begin 137 App.API.Kernel := Self; 113 138 Scheduler.AddTask(App.Name, App.Run); 114 139 end else raise Exception.Create('Application ''' + AFile.Name + ''' no found'); … … 152 177 constructor TKernel.Create; 153 178 begin 179 Devices := TNamedObjectList.Create; 154 180 Drives := TNamedObjectList.Create; 155 181 Apps := TNamedObjectList.Create; … … 162 188 Apps.Free; 163 189 Drives.Free; 190 Devices.Free; 164 191 inherited Destroy; 165 192 end;
Note:
See TracChangeset
for help on using the changeset viewer.