diff -r 000000000000 -r e4d67989cc36 genericservices/taskscheduler/DESIGN/MODEL.MDL --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/genericservices/taskscheduler/DESIGN/MODEL.MDL Tue Feb 02 02:01:42 2010 +0200 @@ -0,0 +1,2984 @@ + +(object Petal + version 40) + +(object Design "Logical View" + is_unit TRUE + is_loaded TRUE + file_name "D:\\schsvr\\DESIGN\\Model.mdl" + quid "3607CDBF00DB" + defaults (object defaults + rightMargin 0.250000 + leftMargin 0.250000 + topMargin 0.250000 + bottomMargin 0.500000 + pageOverlap 0.250000 + clipIconLabels TRUE + autoResize FALSE + snapToGrid TRUE + gridX 16 + gridY 16 + defaultFont (object Font + size 10 + face "Arial" + bold FALSE + italics FALSE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + showMessageNum 3 + showClassOfObject TRUE + notation "Unified") + root_usecase_package (object Class_Category "Use Case View" + quid "34B4B32D038B" + exportControl "Public" + global TRUE + logical_models (list unit_reference_list) + logical_presentations (list unit_reference_list + (object UseCaseDiagram "Main" + quid "358F97CC012F" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list)))) + root_category (object Class_Category "Logical View" + quid "34B4B32D038A" + exportControl "Public" + global TRUE + subsystem "Component View" + quidu "34B4B32D038C" + logical_models (list unit_reference_list + (object Class "CServer" + quid "34D1C70C010E" + abstract TRUE + operations (list Operations + (object Operation "RunL" + quid "34D1C726002F" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "Start" + quid "34D1C73102B6" + concurrency "Sequential" + opExportControl "Public" + uid 0))) + (object Class "CSession" + quid "34D1C70C0168" + abstract TRUE) + (object Class "CSchSession" + quid "34D1C70C014A" + documentation +| +|The session class, server-side. Mostly just unpacks RMessages and forwards commands on to the Task Scheduler instance. +|Initialised on creation with the instance of CTaskScheduler. +|Its iClient member is initialised to NULL. Once the client using the session has registered, its iClient member is set to point to that client, and any tasks scheduled by that client during the session belong to that iClient. + + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "34D1C70C014B" + supplier "CSession" + quidu "34D1C70C0168")) + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "352B456F0032" + label "iSchedules" + supplier "CSchedule" + quidu "34D1CB1C0073" + supplier_cardinality (value cardinality "0..n") + client_cardinality (value cardinality "1..1"))) + operations (list Operations + (object Operation "ServiceL" + quid "34D1C74003BB" + concurrency "Sequential" + opExportControl "Public" + uid 0))) + (object Class "CSchServer" + quid "34D1C70C0110" + documentation +| +|The server class. Owns (directly) all session instances, and the one and only instance of CTaskScheduler. +|Owns (indirectly) everything else. + + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "34D1C70C010F" + supplier "CServer" + quidu "34D1C70C010E"))) + (object Class "CTaskScheduler" + quid "34D1C70C0186" + documentation +|- Owns all the other scheduler objects. +|- Provides an interface for creating, deleting, editing & naming schedules +|- Provides an interface for registering users by creating new client proxies +|- Provides an interface for scheduling tasks +|- Informs schedules when they are due, and updates them accordingly +|- Executes clients when appropriate +|- Ensures that any persistent schedules are added to the persistent backup store through its iBackup member; so all is not lost in case of server death +|- Maintains schedule instances in TWO lists: +| -the first, 'iSchedules' is a list of all the schedules defined and is an owning list. +| -the second, iPending, is a list of all schedules which are waiting to go off (i.e. those schedules which have tasks scheduled and are not disabled. This list is ordered by the due time for the schedules. The scheduler maintains this list and sets the timer's time to be the due time of the first schedule in the list. +| +|- Whenever the server starts, it asks its iBackup member to restore its schedules from backup. +|If the backup file is missing or corrupt it asks the iBackup to create a new, empty one. +|Subsequently, whenever schedules are added, deleted or edited the iBackup member is asked to back up the store to keep it in sync +| +|N.B. I would like to eliminate this class, as soon as I get the time. This won't affect clients at all but will improve the design. + + fields (list has_relationship_list + (object Has_Relationship + quid "34D1C70C0187" + label "iTimer" + supplier "CServiceTimer" + quidu "34D1CB1C0005" + supplier_cardinality (value cardinality "1..1") + client_cardinality (value cardinality "1..1"))) + operations (list Operations + (object Operation "ScheduleTaskL" + quid "34D1C70C018A" + parameters (list Parameters + (object Parameter "aUser" + type "TUid") + (object Parameter "aItem" + type "TInt") + (object Parameter "aAction" + type "TItemAction") + (object Parameter "aSchedule" + type "TScheduleInfo")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "DeleteTaskL" + quid "34D1C70C018F" + parameters (list Parameters + (object Parameter "aUser" + type "TUid") + (object Parameter "aItem" + type "TInt")) + result "return" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "NewScheduleL" + quid "34D1C70C0192" + parameters (list Parameters + (object Parameter "aUser" + type "TUid")) + result "return" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "DeleteScheduleL" + quid "34D1C70C0194" + parameters (list Parameters + (object Parameter "aUser" + type "TUid")) + result "return" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "RegisterClientL" + quid "34D1C70C0196" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "EditScheduleL" + quid "34D1C70C0197" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "DueTaskNotify" + quid "352B45320229" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "ExecuteClients" + quid "352B453D0095" + concurrency "Sequential" + opExportControl "Public" + uid 0)) + class_attributes (list class_attribute_list + (object ClassAttribute "iNotifier" + quid "3587EEDB01FD" + type "CEnvironmentChangeNotifier") + (object ClassAttribute "iBackup" + quid "3587F07A0380" + type "TScheduleBackup")) + statediagram (object State_Diagram "" + quid "3587F1420279" + title "" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list))) + (object Class "CClientProxy" + quid "34D1CB1B03A7" + documentation +| +|This class encapsulates the information needed to execute a set of tasks, and owns the tasks associated with it. +| +|An instance of it gets created when a client registers, and is initialized with the name of the executing program, and its priority: if 2 clients have different priorities, the one with the higher priority gets to execute all its tasks before the low-priority one gets to execute any. +|When it's told to execute, it: +| - saves all its due tasks to a file +| - creates a task executor, initializing it with the name of the executing program and the name of the file in which it's saved the tasks +| - tells it to execute the tasks +| - deletes any of the tasks which don't repeat +| +|It is reference-counted: it is deleted when: +| - there are no open sessions which have a pointer to it +|AND - there are no pending tasks belonging to it + + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "34D1CB1B03A8" + label "iSchedules" + supplier "TScheduleEntry" + quidu "34D1CB1C0091" + supplier_cardinality (value cardinality "0..n") + client_cardinality (value cardinality "1..1")) + (object Uses_Relationship + quid "3587DC1100C0" + supplier "CTaskExecutor" + quidu "3587DB8B0352")) + operations (list Operations + (object Operation "Execute()" + quid "34FAE9140125" + concurrency "Sequential" + opExportControl "Public" + uid 0)) + class_attributes (list class_attribute_list + (object ClassAttribute "iTaskExecutor" + quid "34D1CB1B03B2" + type "TFileName") + (object ClassAttribute "iClientPriority" + quid "34FAE57802F3" + type "TInt" + exportControl "Public") + (object ClassAttribute "iUsers" + quid "3588DFB30261" + type "TInt"))) + (object Class "CTimer" + quid "34D1CB1C0023") + (object Class "CServiceTimer" + quid "34D1CB1C0005" + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "34D1CB1C0006" + supplier "CTimer" + quidu "34D1CB1C0023")) + operations (list Operations + (object Operation "SetDueTime" + quid "34D1CB1C0007" + parameters (list Parameters + (object Parameter "aNewTime" + type "TTime")) + result "return" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "DueTime" + quid "34D1CB1C000F" + result "TTime" + concurrency "Sequential" + opExportControl "Public" + uid 0)) + class_attributes (list class_attribute_list + (object ClassAttribute "iDueTime" + quid "34D1CB1C0010" + type "TTime") + (object ClassAttribute "iCallback" + quid "34D1CB1C0011" + type "TCallback"))) + (object Class "CSchedule" + quid "34D1CB1C0073" + documentation +| +|This class is responsible for knowing what time it's due. +| +|It is defined essentially by an ordered list of one or more TScheduleEntry instances, each of which will return their own next due time when asked. +| +|It also has zero or more tasks (TScheduledTask). When it is due, all its tasks are due and it tells them this. +| +|It has 2 flags of type TBool: +| - iPersists: if a schedule persists, it hangs around whether it has got any tasks of not. If it doesn't, it gets deleted as soon as all its tasks are deleted. +| - iEnabled: if a schedule is disabled it just does nothing, whether it has tasks or not, until it is enabled again. +| + + fields (list has_relationship_list + (object Has_Relationship + quid "34D1CB1C007D" + label "iEntries" + supplier "TScheduleEntry" + quidu "34D1CB1C0091" + exportControl "Private" + supplier_cardinality (value cardinality "1..1") + client_cardinality (value cardinality "1..1")) + (object Has_Relationship + quid "352B481E0207" + label "iTasks" + supplier "TScheduledTask" + quidu "34D1CCE902E3" + supplier_cardinality (value cardinality "0..n") + client_cardinality (value cardinality "1..1"))) + operations (list Operations + (object Operation "AddEntry" + quid "34D1CB7503BA" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "RemoveEntry" + quid "34D1CB7B035F" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "AddTask" + quid "34D991F00386" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "DueTime" + quid "34D9922800FC" + result "TTime" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "FirstScheduledTime" + quid "34D9A92301AF" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "NextScheduledTime" + quid "34D9A9360185" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "NotifyClients" + quid "352B478A0055" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "NewL" + quid "3588EC8003CC" + parameters (list Parameters + (object Parameter "aStore" + type "CFileStore") + (object Parameter "aId" + type "TStreamId")) + result "CSchedule" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "StoreL" + quid "3588ECED0058" + parameters (list Parameters + (object Parameter "aStore" + type "CFileStore")) + result "TStreamId" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "RestoreL" + quid "3588ED2E014B" + parameters (list Parameters + (object Parameter "aStore" + type "CFileStore") + (object Parameter "aId" + type "TStreamId")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "UpdateStoreL" + quid "3588ED490371" + parameters (list Parameters + (object Parameter "aStore" + type "CPermanentFileStore") + (object Parameter "aId" + type "TStreamId")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0)) + class_attributes (list class_attribute_list + (object ClassAttribute "iDueTime" + quid "34D991DF01F1" + type "TTime") + (object ClassAttribute "iPersists" + quid "3587F3B8001C" + type "TBool") + (object ClassAttribute "iEnabled" + quid "3587F3BE0378" + type "TBool" + exportControl "Public"))) + (object Class "TScheduleEntry" + quid "34D1CB1C0091" + documentation +| +|TScheduleEntry knows what time it's next due after the time it gets passed. It is defined in terms of a start time and a time interval. So, when you pass it a time, if the time is before its start time it returns its start time, otherwise it adds its interval to its start time till the time it comes up with is after the time it got passed, and returns that. +| +|TScheduleEntry is abstract; it has 4 subclasses: +| +|TScheduleEntryHourly +|TScheduleEntryDaily +|TScheduleEntryMonthly +|TScheduleEntryYearly +| +|The subclasses are necessary only because 'TTime operator + ' needs a concrete subclass of TTimeIntervalBase as the other operand. You specify which kind you want to create with the 'enum TIntervalType' parameter. This determines how the Interval member is interpreted, i.e. if it's 1 and your interval type is EHourly then the actual interval is 1 hour; if it's EDaily then it's 1 day etc. +| +| + + abstract TRUE + operations (list Operations + (object Operation "NextScheduledTime" + quid "34D1CB1C0092" + result "TTime" + concurrency "Sequential" + opExportControl "Public" + uid 0))) + (object Class "TScheduledTask" + quid "34D1CCE902E3" + documentation +| +|A TScheduledTask is a kind of placeholder for the real task, which is a CScheduledTask. It keeps a reference to the client proxy representing the client which scheduled it, and a reference to the real task. +|When it's due it tells both of them of this fact. + + operations (list Operations + (object Operation "OnDue" + quid "3588DF80004B" + concurrency "Sequential" + opExportControl "Public" + uid 0)) + class_attributes (list class_attribute_list + (object ClassAttribute "iClient" + quid "3587DADF025B" + type "CClientProxy") + (object ClassAttribute "iTask" + quid "3587DAE40398" + type "CScheduledTask"))) + (object Class "CScheduledTask" + quid "3587D90700A3" + documentation +| +|This is where the real task data is kept: +| - name (TName), Id (TInt), data (HBufC), how many times it repeats (TInt), when it's valid until (TTime), its priority +| - if it's repeat is specified as zero or less it repeats forever, or until it is explicitly deleted +| - tasks with high priority get executed before tasks with low priority +| +|It only needs to be a C-class 'cos of the HBufC* member. +| +| +| + + operations (list Operations + (object Operation "OnDue" + quid "3588DF9B02C1" + concurrency "Sequential" + opExportControl "Public" + uid 0)) + class_attributes (list class_attribute_list + (object ClassAttribute "iInfo" + quid "3587DB3E01B7" + type "TTaskInfo") + (object ClassAttribute "iData" + quid "3587DB4803B0" + type "HBufC"))) + (object Class "TTaskInfo" + quid "3587DA760264" + documentation +| +| +|This is passed to the scheduler when you schedule a task, and passed back again when you retireve it. +|You only need to specify iRepeat, iName and iPriority; the ID is filled in by the scheduler and can be retrieved and examined later. + + class_attributes (list class_attribute_list + (object ClassAttribute "iRepeat" + quid "3588FADE0186" + type "TInt") + (object ClassAttribute "iName" + quid "3588FAE5024E" + type "TName") + (object ClassAttribute "iTaskId" + quid "3588FAE70356" + type "TInt") + (object ClassAttribute "iPriority" + quid "3588FAED0386" + type "TInt"))) + (object Class "CTaskExecutor" + quid "3587DB8B0352" + documentation +| +|This class encapsulates the actual task executing business. +|It's initialized with: +| - the name of the executing program +| - the name of the file where the task are kept +| +|When it's told to execute, it: +| - creates a new process, keeping a handle to it +| - logs on to the process +| - runs the executing program in it +|This program +| - creates a new clean up stack +| - opens the file with the tasks in it +| - internalizes the tasks +| - executes them how it likes +|When the program (hence the process ) terminates, the CTaskExecutor runs. It examines the exit code of the dead process. If the program exited cleanly, and the exit code is KErrNone, the CTaskExecutor +|just cleans up by closing the process, deleting the file with the tasks in it, and then deleting itself. Otherwise it does some error handling which is STILL NOT IMPLEMENTED, closes the process, deletes the task-file and then itself + + superclasses (list inheritance_relationship_list + (object Inheritance_Relationship + quid "3587E0D20247" + supplier "CActive" + quidu "3587E0BF03E4")) + operations (list Operations + (object Operation "ExecuteL" + quid "3587DB9C0144" + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0)) + class_attributes (list class_attribute_list + (object ClassAttribute "iProcess" + quid "3587DBC7013C" + type "RProcess") + (object ClassAttribute "iTaskFileName" + quid "3587DBCE0204" + type "TFileName") + (object ClassAttribute "iClientFileName" + quid "3587DBE601EB" + type "TFileName"))) + (object Class "TScheduleBackup" + quid "3587DC9303DE" + documentation +| +|The TScheduleBackup class encapsulates management of the scheduler's backup store. The store has a path & name defined at compile-time, and accessible to the TScheduleBackup only. The store is a permanent file store whose root contains a CScheduleIndex. This is an array of (TInt ScheduleId, TStreamId). +|So, when the BackupL(...) is called, this class: +|- opens the store +|- internalizes the index +|- asks the index for the stream Id mapped to the Id of the schedule it's been passed +|- does the appropriate action based on the TBackupAction enum (one of EAdd, EEdit, EDelete) +|- updates the index, saves the index +|If things go wrong it calls Revert() on the store and then closes it, else it calls Commit() and then closes it. It keeps a count of the changes it's made, when it has made 5 changes it compacts the store. + + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "3587E061038E" + supplier "CScheduleIndex" + quidu "3587DC95028C") + (object Uses_Relationship + quid "3587E1C4008C" + supplier "CSchedule" + quidu "34D1CB1C0073") + (object Uses_Relationship + quid "3588F2E200FB" + supplier "TScheduleIndexEntry" + quidu "3588F2210143")) + operations (list Operations + (object Operation "BackupL()" + quid "3587E14C00A7" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "RestoreFromBackupL()" + quid "3587E153022E" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "BackupL" + quid "3588ED9F03A7" + parameters (list Parameters + (object Parameter "aSchedule" + type "CSchedule") + (object Parameter "TBackupAction aAction")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "CreateEmptyBackupL" + quid "3588EDFB0327" + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "RestoreFromBackupL" + quid "3588EE130191" + parameters (list Parameters + (object Parameter "aSchedules" + type "TDblQue")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "DoAddToBackupL" + quid "3588EE57035B" + parameters (list Parameters + (object Parameter "aStore" + type "CPermanentFileStore") + (object Parameter "aSchedule" + type "CSchedule")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "DoEditBackupL" + quid "3588EE59020A" + parameters (list Parameters + (object Parameter "aStore" + type "CPermanentFileStore") + (object Parameter "aSchedule" + type "CSchedule")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "DoRemoveFromBackupL" + quid "3588EE5B0054" + parameters (list Parameters + (object Parameter "aStore" + type "CPermanentFileStore") + (object Parameter "aScheduleId" + type "TInt")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "BackupName" + quid "3588EE600214" + parameters (list Parameters + (object Parameter "aFileName" + type "TFileName")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "DoCompactL" + quid "3588EF2401F7" + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0)) + class_attributes (list class_attribute_list + (object ClassAttribute "iChangesToStore" + quid "3588EF3403DB" + type "TInt"))) + (object Class "CScheduleIndex" + quid "3587DC95028C" + documentation +| +|Root stream of backup store. +|Manages mapping of schedule Ids onto stream Ids. + + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "3587E067001C" + supplier "CSchedule" + quidu "34D1CB1C0073")) + operations (list Operations + (object Operation "UpdateStoreL" + quid "3588F1C000B7" + parameters (list Parameters + (object Parameter "aStore" + type "CPermanentFileStore")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "RestoreL" + quid "3588F2000377" + parameters (list Parameters + (object Parameter "aStore" + type "CFileStore")) + result "void" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "FindL" + quid "3588F2C1017F" + parameters (list Parameters + (object Parameter "aScheduleId" + type "TInt")) + result "TScheduleIndexEntry" + concurrency "Sequential" + opExportControl "Public" + uid 0))) + (object Class "CActive" + quid "3587E0BF03E4") + (object Class "CScheduleTimer" + quid "3587E1E90360" + documentation +| +|Derived from CTimer. Initialised to KMaxTTime; its time is subsequently set by the task scheduler. +|When it runs, it tells the task scheduler. + ) + (object Class "CEnvironmentChangeNotifier" + quid "3587E6D100B3") + (object Class "$UNNAMED$0" + quid "3587F7C900C4") + (object Class "$UNNAMED$1" + quid "3587F7CA029C" + fields (list has_relationship_list + (object Has_Relationship + quid "3587F7CD01B0" + supplier "$UNNAMED$0" + quidu "3587F7C900C4"))) + (object Class "TScheduleIndexEntry" + quid "3588F2210143" + operations (list Operations + (object Operation "ExternalizeL" + quid "3588F23400F0" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "InternalizeL" + quid "3588F24002B0" + concurrency "Sequential" + opExportControl "Public" + uid 0)) + class_attributes (list class_attribute_list + (object ClassAttribute "iStreamId" + quid "3588F24A01D8" + type "TStreamId") + (object ClassAttribute "iScheduleId" + quid "3588F261007D" + type "TInt"))) + (object Class "RScheduler" + quid "3588FA6800AA" + documentation +| +|This is the client-side representation of a session with the scheduler; thus this is the API for the thing. +| +|N.B. There are in fact two 'ScheduleTask' functions, distinguished by their parameters. One schedules a task with an existing, persistent schedule, the other creates a new transient schedule and schedules the task with that. + + used_nodes (list uses_relationship_list + (object Uses_Relationship + quid "3588FB460095" + supplier "TScheduleEntryInfo" + quidu "3588FA7702BE") + (object Uses_Relationship + quid "3588FB490220" + supplier "TTaskInfo" + quidu "3587DA760264") + (object Uses_Relationship + quid "358FA3AB02BE" + supplier "TScheduleState" + quidu "358FA35103AF") + (object Uses_Relationship + quid "358FAB050351" + supplier "TSchedulerItemRef" + quidu "358FAACE01FD")) + operations (list Operations + (object Operation "Register" + quid "3588FCFB0011" + parameters (list Parameters + (object Parameter "argname" + type "argtype" + initv "default")) + result "return" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "CreatePersistentSchedule" + quid "3588FCFC01A3" + parameters (list Parameters + (object Parameter "argname" + type "argtype" + initv "default")) + result "return" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "DeleteSchedule" + quid "3588FCFD033F" + parameters (list Parameters + (object Parameter "argname" + type "argtype" + initv "default")) + result "return" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "DisableSchedule" + quid "3588FCFF00B7" + parameters (list Parameters + (object Parameter "argname" + type "argtype" + initv "default")) + result "return" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "EnableSchedule" + quid "3588FD000249" + parameters (list Parameters + (object Parameter "argname" + type "argtype" + initv "default")) + result "return" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "EditSchedule" + quid "3588FD0103E5" + parameters (list Parameters + (object Parameter "argname" + type "argtype" + initv "default")) + result "return" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "ScheduleTask" + quid "3588FD03028A" + parameters (list Parameters + (object Parameter "argname" + type "argtype" + initv "default")) + result "return" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "DeleteTask" + quid "3588FD050084" + parameters (list Parameters + (object Parameter "argname" + type "argtype" + initv "default")) + result "return" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "GetScheduleRefsL" + quid "3588FD070087" + parameters (list Parameters + (object Parameter "argname" + type "argtype" + initv "default")) + result "return" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "GetScheduleL" + quid "3588FD08033B" + parameters (list Parameters + (object Parameter "argname" + type "argtype" + initv "default")) + result "return" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "GetTaskRefsL" + quid "3588FD0A0212" + parameters (list Parameters + (object Parameter "argname" + type "argtype" + initv "default")) + result "return" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "GetTaskInfoL" + quid "3588FDB502F4" + parameters (list Parameters + (object Parameter "argname" + type "argtype" + initv "default")) + result "return" + concurrency "Sequential" + opExportControl "Public" + uid 0) + (object Operation "GetTaskDataSize" + quid "3588FDB7018E" + parameters (list Parameters + (object Parameter "argname" + type "argtype" + initv "default")) + result "return" + concurrency "Sequential" + opExportControl "Public" + uid 0))) + (object Class "TScheduleEntryInfo" + quid "3588FA7702BE" + documentation +| +| +|This is passed to the scheduler when you create a schedule, and passed back again when you retireve it. +|You need one of these for each schedule entry in your schedule. + + class_attributes (list class_attribute_list + (object ClassAttribute "iIntervalType" + quid "3588FB8800EA" + type "TIntervalType") + (object ClassAttribute "iInterval" + quid "3588FB8A0057" + type "TInterval") + (object ClassAttribute "iStartTime" + quid "3588FB8C00BE" + type "TTime") + (object ClassAttribute "iValidityPeriod" + quid "3588FB8E0002" + type "TTimeIntervalMinutes"))) + (object Class "TScheduleState" + quid "358FA35103AF" + class_attributes (list class_attribute_list + (object ClassAttribute "iName" + quid "358FA361024A" + type "TName") + (object ClassAttribute "iDueTime" + quid "358FA3710225" + type "TTime") + (object ClassAttribute "iPersists" + quid "358FA38201B1" + type "TBool") + (object ClassAttribute "iEnabled" + quid "358FA3900251" + type "TBool"))) + (object Class "TSchedulerItemRef" + quid "358FAACE01FD" + class_attributes (list class_attribute_list + (object ClassAttribute "iName" + quid "358FAADF00CB" + type "TName") + (object ClassAttribute "iHandle" + quid "358FAAEE01D1" + type "TInt"))) + (object Association "iClient" + quid "34FAF6FD00A3" + roles (list role_list + (object Role "$UNNAMED$2" + quid "34FAF6FD02C0" + supplier "CClientProxy" + quidu "34D1CB1B03A7") + (object Role "$UNNAMED$3" + quid "34FAF6FD02DE" + supplier "TScheduledTask" + quidu "34D1CCE902E3"))) + (object Association "$UNNAMED$4" + quid "34FD88580389" + roles (list role_list + (object Role "$UNNAMED$5" + quid "34FD885903BD" + supplier "CTaskScheduler" + quidu "34D1C70C0186" + is_navigable TRUE) + (object Role "$UNNAMED$6" + quid "34FD885A007F" + supplier "CServiceTimer" + quidu "34D1CB1C0005" + is_navigable TRUE))) + (object Association "iPendingSchedules" + quid "34FD89A201FD" + roles (list role_list + (object Role "$UNNAMED$7" + quid "34FD89A203CA" + supplier "CSchedule" + quidu "34D1CB1C0073") + (object Role "$UNNAMED$8" + quid "34FD89A3000A" + supplier "CTaskScheduler" + quidu "34D1C70C0186"))) + (object Association "iClient" + quid "3587D95D009D" + roles (list role_list + (object Role "$UNNAMED$9" + quid "3587D95D02D8" + supplier "CClientProxy" + quidu "34D1CB1B03A7" + client_cardinality (value cardinality "1..1") + is_navigable TRUE) + (object Role "$UNNAMED$10" + quid "3587D95D0314" + supplier "CSchSession" + quidu "34D1C70C014A" + client_cardinality (value cardinality "1..1")))) + (object Association "iTaskScheduler" + quid "3587D96F036A" + roles (list role_list + (object Role "$UNNAMED$11" + quid "3587D97102CC" + supplier "CTaskScheduler" + quidu "34D1C70C0186" + client_cardinality (value cardinality "1..1") + is_navigable TRUE) + (object Role "$UNNAMED$12" + quid "3587D9710313" + supplier "CSchSession" + quidu "34D1C70C014A" + client_cardinality (value cardinality "1..1")))) + (object Association "iClient" + quid "3587DB09037D" + roles (list role_list + (object Role "$UNNAMED$13" + quid "3587DB0A0216" + supplier "CClientProxy" + quidu "34D1CB1B03A7" + is_navigable TRUE) + (object Role "$UNNAMED$14" + quid "3587DB0A0248" + supplier "TScheduledTask" + quidu "34D1CCE902E3"))) + (object Association "iTask" + quid "3587DB0F00BF" + roles (list role_list + (object Role "$UNNAMED$15" + quid "3587DB100337" + supplier "CScheduledTask" + quidu "3587D90700A3" + client_cardinality (value cardinality "1..1") + is_navigable TRUE) + (object Role "$UNNAMED$16" + quid "3587DB100338" + supplier "TScheduledTask" + quidu "34D1CCE902E3" + client_cardinality (value cardinality "1..1")))) + (object Association "iTasks" + quid "3587DB2A00FA" + roles (list role_list + (object Role "$UNNAMED$17" + quid "3587DB2A02A9" + supplier "CSchedule" + quidu "34D1CB1C0073" + client_cardinality (value cardinality "1..1") + is_aggregate TRUE) + (object Role "$UNNAMED$18" + quid "3587DB2A02DB" + supplier "TScheduledTask" + quidu "34D1CCE902E3" + client_cardinality (value cardinality "0..n") + is_navigable TRUE))) + (object Association "iBackup" + quid "3587DCB40377" + roles (list role_list + (object Role "$UNNAMED$19" + quid "3587DCB60149" + supplier "CTaskScheduler" + quidu "34D1C70C0186" + client_cardinality (value cardinality "1..1") + is_aggregate TRUE) + (object Role "$UNNAMED$20" + quid "3587DCB6019A" + supplier "TScheduleBackup" + quidu "3587DC9303DE" + client_cardinality (value cardinality "1..1") + is_navigable TRUE))) + (object Association "iClients" + quid "3587DD3F0377" + roles (list role_list + (object Role "$UNNAMED$21" + quid "3587DD4003B5" + supplier "CTaskScheduler" + quidu "34D1C70C0186" + client_cardinality (value cardinality "1..1") + is_aggregate TRUE) + (object Role "$UNNAMED$22" + quid "3587DD41001D" + supplier "CClientProxy" + quidu "34D1CB1B03A7" + client_cardinality (value cardinality "0..n") + is_navigable TRUE))) + (object Association "iPending" + quid "3587E24B0126" + roles (list role_list + (object Role "$UNNAMED$23" + quid "3587E24C038B" + supplier "CSchedule" + quidu "34D1CB1C0073" + client_cardinality (value cardinality "0..n") + is_navigable TRUE) + (object Role "$UNNAMED$24" + quid "3587E24C03C7" + supplier "CTaskScheduler" + quidu "34D1C70C0186" + client_cardinality (value cardinality "1..1")))) + (object Association "iSchedules" + quid "3587E2510297" + roles (list role_list + (object Role "$UNNAMED$25" + quid "3587E2520357" + supplier "CTaskScheduler" + quidu "34D1C70C0186" + client_cardinality (value cardinality "1..1") + is_aggregate TRUE) + (object Role "$UNNAMED$26" + quid "3587E25203B1" + supplier "CSchedule" + quidu "34D1CB1C0073" + client_cardinality (value cardinality "0..n") + is_navigable TRUE))) + (object Association "iTaskScheduler" + quid "3587E34000D8" + roles (list role_list + (object Role "$UNNAMED$27" + quid "3587E341030B" + supplier "CTaskScheduler" + quidu "34D1C70C0186" + client_cardinality (value cardinality "1..1") + is_navigable TRUE) + (object Role "$UNNAMED$28" + quid "3587E341036F" + supplier "CScheduleTimer" + quidu "3587E1E90360" + client_cardinality (value cardinality "1..1")))) + (object Association "iTimer" + quid "3587E356021A" + roles (list role_list + (object Role "$UNNAMED$29" + quid "3587E3570104" + supplier "CTaskScheduler" + quidu "34D1C70C0186" + client_cardinality (value cardinality "1..1") + is_aggregate TRUE) + (object Role "$UNNAMED$30" + quid "3587E3570172" + supplier "CScheduleTimer" + quidu "3587E1E90360" + client_cardinality (value cardinality "1..1") + is_navigable TRUE))) + (object Association "iNotifier" + quid "3587E6E702AA" + roles (list role_list + (object Role "$UNNAMED$31" + quid "3587E6E802F1" + supplier "CTaskScheduler" + quidu "34D1C70C0186" + client_cardinality (value cardinality "1..1") + is_aggregate TRUE) + (object Role "$UNNAMED$32" + quid "3587E6E8035F" + supplier "CEnvironmentChangeNotifier" + quidu "3587E6D100B3" + client_cardinality (value cardinality "1..1") + is_navigable TRUE))) + (object Association "iEntries" + quid "3587E7340282" + roles (list role_list + (object Role "$UNNAMED$33" + quid "3587E736019F" + supplier "CSchedule" + quidu "34D1CB1C0073" + client_cardinality (value cardinality "1..1") + is_aggregate TRUE) + (object Role "$UNNAMED$34" + quid "3587E73601DB" + supplier "TScheduleEntry" + quidu "34D1CB1C0091" + client_cardinality (value cardinality "1..n") + is_navigable TRUE))) + (object Association "$UNNAMED$35" + quid "3587E7B603A2" + roles (list role_list + (object Role "$UNNAMED$36" + quid "3587E7B7035D" + supplier "CSchServer" + quidu "34D1C70C0110" + is_navigable TRUE + is_aggregate TRUE) + (object Role "$UNNAMED$37" + quid "3587E7B7035E" + supplier "CSchSession" + quidu "34D1C70C014A" + is_navigable TRUE))) + (object Association "iTaskScheduler" + quid "3587E7BA027B" + roles (list role_list + (object Role "$UNNAMED$38" + quid "3587E7BC004D" + supplier "CSchServer" + quidu "34D1C70C0110" + client_cardinality (value cardinality "1..1") + is_aggregate TRUE) + (object Role "$UNNAMED$39" + quid "3587E7BC004E" + supplier "CTaskScheduler" + quidu "34D1C70C0186" + client_cardinality (value cardinality "1..1") + is_navigable TRUE))) + (object Association "iClient" + quid "3587EB2F016F" + roles (list role_list + (object Role "$UNNAMED$40" + quid "3587EB300379" + supplier "CClientProxy" + quidu "34D1CB1B03A7" + client_cardinality (value cardinality "1..1") + is_navigable TRUE) + (object Role "$UNNAMED$41" + quid "3587EB3003BF" + supplier "TScheduledTask" + quidu "34D1CCE902E3" + client_cardinality (value cardinality "0..n")))) + (object Association "iTasks" + quid "3587EB3F03CB" + roles (list role_list + (object Role "$UNNAMED$42" + quid "3587EB4300CE" + supplier "CClientProxy" + quidu "34D1CB1B03A7" + client_cardinality (value cardinality "1..1") + is_aggregate TRUE) + (object Role "$UNNAMED$43" + quid "3587EB43010A" + supplier "CScheduledTask" + quidu "3587D90700A3" + client_cardinality (value cardinality "0..n") + is_navigable TRUE))) + (object Association "iEntries" + quid "3588F2700223" + roles (list role_list + (object Role "$UNNAMED$44" + quid "3588F27003E6" + supplier "CScheduleIndex" + quidu "3587DC95028C" + client_cardinality (value cardinality "1..1") + is_aggregate TRUE) + (object Role "$UNNAMED$45" + quid "3588F271003A" + supplier "TScheduleIndexEntry" + quidu "3588F2210143" + client_cardinality (value cardinality "0..n") + is_navigable TRUE))) + (object Class_Category "fdbfs" + quid "359A15A403A7" + exportControl "Public" + logical_models (list unit_reference_list) + logical_presentations (list unit_reference_list))) + logical_presentations (list unit_reference_list + (object ClassDiagram "Main" + quid "34B4B32D03A7" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ClassView "Class" "CTaskExecutor" @1 + IncludeAttribute TRUE + IncludeOperation TRUE + location (2608, 1472) + label (object ItemLabel + Parent_View @1 + location (2355, 1316) + nlines 1 + max_width 505 + justify 0 + label "CTaskExecutor") + quidu "3587DB8B0352" + compartment (object Compartment + Parent_View @1 + location (2344, 1376) + anchor 2 + nlines 5 + max_width 525) + width 546 + height 336 + autoResize TRUE) + (object ClassView "Class" "CActive" @2 + location (2624, 896) + label (object ItemLabel + Parent_View @2 + location (2538, 847) + nlines 1 + max_width 170 + justify 0 + label "CActive") + quidu "3587E0BF03E4" + width 184 + height 122) + (object ClassView "Class" "CScheduledTask" @3 + IncludeAttribute TRUE + location (1264, 1664) + label (object ItemLabel + Parent_View @3 + location (1094, 1533) + nlines 1 + max_width 338 + justify 0 + label "CScheduledTask") + quidu "3587D90700A3" + compartment (object Compartment + Parent_View @3 + location (1090, 1593) + anchor 2 + nlines 4 + max_width 291 + compartmentItems (list Compartment + "OnDue( )")) + width 366 + height 286 + autoResize TRUE) + (object ClassView "Class" "TScheduleEntry" @4 + IncludeAttribute TRUE + IncludeOperation TRUE + location (272, 1328) + label (object ItemLabel + Parent_View @4 + location (73, 1247) + nlines 1 + max_width 397 + justify 0 + label "TScheduleEntry") + quidu "34D1CB1C0091" + compartment (object Compartment + Parent_View @4 + location (66, 1307) + anchor 2 + nlines 2 + max_width 409) + width 430 + height 186 + autoResize TRUE) + (object ClassView "Class" "TScheduledTask" @5 + IncludeAttribute TRUE + IncludeOperation TRUE + location (768, 1360) + label (object ItemLabel + Parent_View @5 + location (554, 1229) + nlines 1 + max_width 427 + justify 0 + label "TScheduledTask") + quidu "34D1CCE902E3" + compartment (object Compartment + Parent_View @5 + location (546, 1289) + anchor 2 + nlines 4 + max_width 450) + width 462 + height 286 + autoResize TRUE) + (object AssociationViewNew "iTask" @6 + location (847, 1646) + label (object SegLabel @7 + Parent_View @6 + location (854, 1611) + font (object Font + size 10 + face "Arial" + bold FALSE + italics TRUE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + anchor 1 + anchor_loc 1 + nlines 1 + max_width 600 + justify 0 + label "iTask" + pctDist 0.616667 + height 35 + orientation 0) + quidu "3587DB0F00BF" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$15" @8 + Parent_View @6 + location (-737, 286) + quidu "3587DB100337" + client @6 + supplier @3 + line_style 3 + origin_attachment (847, 1646) + terminal_attachment (1081, 1646) + label (object SegLabel @9 + Parent_View @8 + location (999, 1699) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.653846 + height 53 + orientation 1)) + (object RoleView "$UNNAMED$16" @10 + Parent_View @6 + location (-737, 286) + quidu "3587DB100338" + client @6 + supplier @5 + vertices (list Points + (847, 1646) + (756, 1646) + (756, 1503)) + line_style 3 + origin_attachment (847, 1646) + terminal_attachment (768, 1503) + label (object SegLabel @11 + Parent_View @10 + location (704, 1586) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.646154 + height 53 + orientation 0)))) + (object ClassView "Class" "CSchSession" @12 + IncludeAttribute TRUE + IncludeOperation TRUE + location (2656, 576) + label (object ItemLabel + Parent_View @12 + location (2465, 495) + nlines 1 + max_width 381 + justify 0 + label "CSchSession") + quidu "34D1C70C014A" + compartment (object Compartment + Parent_View @12 + location (2459, 555) + anchor 2 + nlines 2 + max_width 200) + width 412 + height 186 + autoResize TRUE) + (object ClassView "Class" "CClientProxy" @13 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1984, 1552) + label (object ItemLabel + Parent_View @13 + location (1747, 1396) + nlines 1 + max_width 473 + justify 0 + label "CClientProxy") + quidu "34D1CB1B03A7" + compartment (object Compartment + Parent_View @13 + location (1737, 1456) + anchor 2 + nlines 5 + max_width 500) + width 512 + height 336 + autoResize TRUE) + (object AssociationViewNew "iClient" @14 + location (2206, 894) + label (object SegLabel @15 + Parent_View @14 + location (2191, 883) + font (object Font + size 10 + face "Arial" + bold FALSE + italics TRUE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + anchor 1 + anchor_loc 1 + nlines 1 + max_width 600 + justify 0 + label "iClient" + pctDist 0.250000 + height 12 + orientation 0) + quidu "3587D95D009D" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$9" @16 + Parent_View @14 + location (-978, 238) + quidu "3587D95D02D8" + client @14 + supplier @13 + line_style 3 + origin_attachment (2206, 894) + terminal_attachment (2206, 1384) + label (object SegLabel @17 + Parent_View @16 + location (2259, 1277) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.781609 + height 53 + orientation 0)) + (object RoleView "$UNNAMED$10" @18 + Parent_View @14 + location (-978, 238) + quidu "3587D95D0314" + client @14 + supplier @12 + vertices (list Points + (2206, 894) + (2206, 647) + (2450, 647)) + line_style 3 + origin_attachment (2206, 894) + terminal_attachment (2450, 576) + label (object SegLabel @19 + Parent_View @18 + location (2415, 607) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.930807 + height 41 + orientation 0)))) + (object AssociationViewNew "iClient" @20 + location (1363, 1438) + label (object SegLabel @21 + Parent_View @20 + location (1359, 1411) + font (object Font + size 10 + face "Arial" + bold FALSE + italics TRUE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + anchor 1 + anchor_loc 1 + nlines 1 + max_width 600 + justify 0 + label "iClient" + pctDist 0.450000 + height 28 + orientation 0) + quidu "3587EB2F016F" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$40" @22 + Parent_View @20 + location (595, -210) + quidu "3587EB300379" + client @20 + supplier @13 + line_style 3 + origin_attachment (1363, 1438) + terminal_attachment (1728, 1438) + label (object SegLabel @23 + Parent_View @22 + location (1666, 1491) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.831224 + height 53 + orientation 1)) + (object RoleView "$UNNAMED$41" @24 + Parent_View @20 + location (595, -210) + quidu "3587EB3003BF" + client @20 + supplier @5 + line_style 3 + origin_attachment (1363, 1438) + terminal_attachment (999, 1438) + label (object SegLabel @25 + Parent_View @24 + location (1087, 1475) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "0..*" + pctDist 0.758475 + height 37 + orientation 0)))) + (object AssociationViewNew "iTasks" @26 + location (1587, 1631) + label (object SegLabel @27 + Parent_View @26 + location (1598, 1594) + font (object Font + size 10 + face "Arial" + bold FALSE + italics TRUE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + anchor 1 + anchor_loc 1 + nlines 1 + max_width 600 + justify 0 + label "iTasks" + pctDist 0.683333 + height 38 + orientation 0) + quidu "3587EB3F03CB" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$42" @28 + Parent_View @26 + location (499, 415) + quidu "3587EB4300CE" + client @26 + supplier @13 + line_style 3 + origin_attachment (1587, 1631) + terminal_attachment (1728, 1631) + label (object SegLabel @29 + Parent_View @28 + location (1673, 1687) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.610687 + height 56 + orientation 1)) + (object RoleView "$UNNAMED$43" @30 + Parent_View @26 + location (499, 415) + quidu "3587EB43010A" + client @26 + supplier @3 + line_style 3 + origin_attachment (1587, 1631) + terminal_attachment (1447, 1631) + label (object SegLabel @31 + Parent_View @30 + location (1498, 1579) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "0..*" + pctDist 0.646154 + height 53 + orientation 1)))) + (object ClassView "Class" "CSchedule" @32 + IncludeAttribute TRUE + IncludeOperation TRUE + location (352, 496) + label (object ItemLabel + Parent_View @32 + location (128, 42) + nlines 1 + max_width 447 + justify 0 + label "CSchedule") + quidu "34D1CB1C0073" + compartment (object Compartment + Parent_View @32 + location (119, 102) + anchor 2 + nlines 17 + max_width 472) + width 484 + height 930 + autoResize TRUE) + (object AssociationViewNew "iEntries" @33 + location (175, 1098) + label (object SegLabel @34 + Parent_View @33 + location (175, 1039) + font (object Font + size 10 + face "Arial" + bold FALSE + italics TRUE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + anchor 1 + anchor_loc 1 + nlines 1 + max_width 600 + justify 0 + label "iEntries" + pctDist 0.500000 + height 60 + orientation 0) + quidu "3587E7340282" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$33" @35 + Parent_View @33 + location (-65, -502) + quidu "3587E736019F" + client @33 + supplier @32 + line_style 3 + origin_attachment (175, 1098) + terminal_attachment (175, 961) + label (object SegLabel @36 + Parent_View @35 + location (242, 989) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.805405 + height 67 + orientation 1)) + (object RoleView "$UNNAMED$34" @37 + Parent_View @33 + location (-65, -502) + quidu "3587E73601DB" + client @33 + supplier @4 + line_style 3 + origin_attachment (175, 1098) + terminal_attachment (175, 1235) + label (object SegLabel @38 + Parent_View @37 + location (118, 1209) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..*" + pctDist 0.819718 + height 58 + orientation 1)))) + (object AssociationViewNew "iTasks" @39 + location (540, 1089) + label (object SegLabel @40 + Parent_View @39 + location (544, 1030) + font (object Font + size 10 + face "Arial" + bold FALSE + italics TRUE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + anchor 1 + anchor_loc 1 + nlines 1 + max_width 600 + justify 0 + label "iTasks" + pctDist 0.566667 + height 60 + orientation 0) + quidu "3587DB2A00FA" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$17" @41 + Parent_View @39 + location (-1124, -271) + quidu "3587DB2A02A9" + client @39 + supplier @32 + line_style 3 + origin_attachment (540, 1089) + terminal_attachment (540, 961) + label (object SegLabel @42 + Parent_View @41 + location (471, 985) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.809524 + height 70 + orientation 0)) + (object RoleView "$UNNAMED$18" @43 + Parent_View @39 + location (-1124, -271) + quidu "3587DB2A02DB" + client @39 + supplier @5 + line_style 3 + origin_attachment (540, 1089) + terminal_attachment (540, 1217) + label (object SegLabel @44 + Parent_View @43 + location (488, 1191) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 62 + justify 0 + label "0..*" + pctDist 0.797468 + height 53 + orientation 1)))) + (object ClassView "Class" "CSchServer" @45 + IncludeAttribute TRUE + IncludeOperation TRUE + location (2144, 144) + label (object ItemLabel + Parent_View @45 + location (1972, 95) + nlines 1 + max_width 342 + justify 0 + label "CSchServer") + quidu "34D1C70C0110" + width 370 + height 122 + annotation 8 + autoResize TRUE) + (object AssociationViewNew "$UNNAMED$35" @46 + location (2608, 125) + quidu "3587E7B603A2" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$36" @47 + Parent_View @46 + location (112, -531) + quidu "3587E7B7035D" + client @46 + supplier @45 + line_style 3 + origin_attachment (2608, 125) + terminal_attachment (2329, 125)) + (object RoleView "$UNNAMED$37" @48 + Parent_View @46 + location (112, -531) + quidu "3587E7B7035E" + client @46 + supplier @12 + vertices (list Points + (2608, 125) + (2668, 125) + (2668, 483)) + line_style 3 + origin_attachment (2608, 125) + terminal_attachment (2656, 483)))) + (object ClassView "Class" "CScheduleTimer" @49 + location (848, 176) + label (object ItemLabel + Parent_View @49 + location (685, 127) + nlines 1 + max_width 325 + justify 0 + label "CScheduleTimer") + quidu "3587E1E90360" + width 352 + height 122 + autoResize TRUE) + (object ClassView "Class" "CTaskScheduler" @50 + IncludeAttribute TRUE + IncludeOperation TRUE + location (1536, 848) + label (object ItemLabel + Parent_View @50 + location (1209, 517) + nlines 1 + max_width 653 + justify 0 + label "CTaskScheduler") + quidu "34D1C70C0186" + compartment (object Compartment + Parent_View @50 + location (1192, 577) + anchor 2 + nlines 12 + max_width 684) + width 706 + height 686 + autoResize TRUE) + (object AssociationViewNew "iTaskScheduler" @51 + location (2169, 528) + label (object SegLabel @52 + Parent_View @51 + location (2120, 488) + font (object Font + size 10 + face "Arial" + bold FALSE + italics TRUE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + anchor 1 + anchor_loc 1 + nlines 1 + max_width 600 + justify 0 + label "iTaskScheduler" + pctDist -0.316667 + height 41 + orientation 0) + quidu "3587D96F036A" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$11" @53 + Parent_View @51 + location (-1015, -128) + quidu "3587D97102CC" + client @51 + supplier @50 + line_style 3 + origin_attachment (2169, 528) + terminal_attachment (1889, 528) + label (object SegLabel @54 + Parent_View @53 + location (1934, 581) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.838130 + height 53 + orientation 0)) + (object RoleView "$UNNAMED$12" @55 + Parent_View @51 + location (-1015, -128) + quidu "3587D9710313" + client @51 + supplier @12 + line_style 3 + origin_attachment (2169, 528) + terminal_attachment (2450, 528) + label (object SegLabel @56 + Parent_View @55 + location (2407, 500) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.849315 + height 29 + orientation 0)))) + (object AssociationViewNew "iClients" @57 + location (1731, 1287) + label (object SegLabel @58 + Parent_View @57 + location (1731, 1282) + font (object Font + size 10 + face "Arial" + bold FALSE + italics TRUE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + anchor 1 + anchor_loc 1 + nlines 1 + max_width 132 + justify 0 + label "iClients" + pctDist 0.500000 + height 6 + orientation 0) + quidu "3587DD3F0377" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$21" @59 + Parent_View @57 + location (-749, 231) + quidu "3587DD4003B5" + client @57 + supplier @50 + line_style 3 + origin_attachment (1731, 1287) + terminal_attachment (1731, 1191) + label (object SegLabel @60 + Parent_View @59 + location (1680, 1224) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.660550 + height 52 + orientation 0)) + (object RoleView "$UNNAMED$22" @61 + Parent_View @57 + location (-749, 231) + quidu "3587DD41001D" + client @57 + supplier @13 + line_style 3 + origin_attachment (1731, 1287) + terminal_attachment (1731, 1384) + label (object SegLabel @62 + Parent_View @61 + location (1801, 1350) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 62 + justify 0 + label "0..*" + pctDist 0.660550 + height 70 + orientation 0)))) + (object AssociationViewNew "iPending" @63 + location (888, 819) + label (object SegLabel @64 + Parent_View @63 + location (886, 791) + font (object Font + size 10 + face "Arial" + bold FALSE + italics TRUE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + anchor 1 + anchor_loc 1 + nlines 1 + max_width 600 + justify 0 + label "iPending" + pctDist 0.483333 + height 29 + orientation 0) + quidu "3587E24B0126" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$23" @65 + Parent_View @63 + location (-440, 435) + quidu "3587E24C038B" + client @63 + supplier @32 + line_style 3 + origin_attachment (888, 819) + terminal_attachment (594, 819) + label (object SegLabel @66 + Parent_View @65 + location (623, 873) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "0..*" + pctDist 0.900000 + height 54 + orientation 0)) + (object RoleView "$UNNAMED$24" @67 + Parent_View @63 + location (-440, 435) + quidu "3587E24C03C7" + client @63 + supplier @50 + line_style 3 + origin_attachment (888, 819) + terminal_attachment (1183, 819) + label (object SegLabel @68 + Parent_View @67 + location (1122, 875) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.794212 + height 56 + orientation 1)))) + (object AssociationViewNew "iSchedules" @69 + location (888, 644) + label (object SegLabel @70 + Parent_View @69 + location (886, 620) + font (object Font + size 10 + face "Arial" + bold FALSE + italics TRUE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + anchor 1 + anchor_loc 1 + nlines 1 + max_width 600 + justify 0 + label "iSchedules" + pctDist 0.483333 + height 25 + orientation 0) + quidu "3587E2510297" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$25" @71 + Parent_View @69 + location (360, -940) + quidu "3587E2520357" + client @69 + supplier @50 + line_style 3 + origin_attachment (888, 644) + terminal_attachment (1183, 644) + label (object SegLabel @72 + Parent_View @71 + location (1137, 697) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.842444 + height 53 + orientation 1)) + (object RoleView "$UNNAMED$26" @73 + Parent_View @69 + location (360, -940) + quidu "3587E25203B1" + client @69 + supplier @32 + line_style 3 + origin_attachment (888, 644) + terminal_attachment (594, 644) + label (object SegLabel @74 + Parent_View @73 + location (623, 698) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "0..*" + pctDist 0.900000 + height 54 + orientation 0)))) + (object AssociationViewNew "iTaskScheduler" @75 + location (1616, 144) + label (object SegLabel @76 + Parent_View @75 + location (1647, 147) + font (object Font + size 10 + face "Arial" + bold FALSE + italics TRUE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + anchor 1 + anchor_loc 1 + nlines 1 + max_width 288 + justify 0 + label "iTaskScheduler" + pctDist 1.016667 + height 3 + orientation 1) + quidu "3587E7BA027B" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$38" @77 + Parent_View @75 + location (160, -320) + quidu "3587E7BC004D" + client @75 + supplier @45 + line_style 3 + origin_attachment (1616, 144) + terminal_attachment (1959, 144) + label (object SegLabel @78 + Parent_View @77 + location (1924, 198) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.900000 + height 54 + orientation 1)) + (object RoleView "$UNNAMED$39" @79 + Parent_View @75 + location (160, -320) + quidu "3587E7BC004E" + client @75 + supplier @50 + vertices (list Points + (1616, 144) + (1556, 144) + (1556, 505)) + line_style 3 + origin_attachment (1616, 144) + terminal_attachment (1536, 505) + label (object SegLabel @80 + Parent_View @79 + location (1610, 423) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.806452 + height 54 + orientation 0)))) + (object AssociationViewNew "iTaskScheduler" @81 + location (1349, 156) + label (object SegLabel @82 + Parent_View @81 + location (1304, 156) + font (object Font + size 10 + face "Arial" + bold FALSE + italics TRUE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + anchor 1 + anchor_loc 1 + nlines 1 + max_width 600 + justify 0 + label "iTaskScheduler" + pctDist -0.250000 + height 0 + orientation 1) + quidu "3587E34000D8" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$28" @83 + Parent_View @81 + location (-347, -692) + quidu "3587E341036F" + client @81 + supplier @49 + line_style 3 + origin_attachment (1349, 156) + terminal_attachment (1024, 156) + label (object SegLabel @84 + Parent_View @83 + location (1058, 210) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.900000 + height 54 + orientation 0)) + (object RoleView "$UNNAMED$27" @85 + Parent_View @81 + location (-347, -692) + quidu "3587E341030B" + client @81 + supplier @50 + vertices (list Points + (1349, 156) + (1409, 156) + (1409, 505)) + line_style 3 + origin_attachment (1349, 156) + terminal_attachment (1536, 505) + label (object SegLabel @86 + Parent_View @85 + location (1463, 464) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.900000 + height 54 + orientation 0)))) + (object AssociationViewNew "iTimer" @87 + location (944, 509) + label (object SegLabel @88 + Parent_View @87 + location (895, 466) + font (object Font + size 10 + face "Arial" + bold FALSE + italics TRUE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + anchor 1 + anchor_loc 1 + nlines 1 + max_width 600 + justify 0 + label "iTimer" + pctDist -0.333333 + height 44 + orientation 0) + quidu "3587E356021A" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$30" @89 + Parent_View @87 + location (-752, -339) + quidu "3587E3570172" + client @87 + supplier @49 + vertices (list Points + (944, 509) + (884, 509) + (884, 237)) + line_style 3 + origin_attachment (944, 509) + terminal_attachment (884, 237) + label (object SegLabel @90 + Parent_View @89 + location (831, 270) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.900000 + height 54 + orientation 0)) + (object RoleView "$UNNAMED$29" @91 + Parent_View @87 + location (-752, -339) + quidu "3587E3570104" + client @87 + supplier @50 + line_style 3 + origin_attachment (944, 509) + terminal_attachment (1183, 509) + label (object SegLabel @92 + Parent_View @91 + location (1166, 567) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.935096 + height 58 + orientation 1)))) + (object UsesView "" @93 + quidu "3587DC1100C0" + client @13 + supplier @1 + line_style 3 + origin_attachment (2240, 1500) + terminal_attachment (2335, 1500)) + (object InheritView "" @94 + quidu "3587E0D20247" + client @1 + supplier @2 + line_style 3 + origin_attachment (2621, 1304) + terminal_attachment (2621, 957)))) + (object ClassDiagram "Backing Up" + quid "3588EB33023D" + title "Backing Up" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ClassView "Class" "CSchedule" @95 + location (560, 1408) + label (object ItemLabel + Parent_View @95 + location (336, 1327) + nlines 1 + max_width 447 + justify 0 + label "CSchedule") + quidu "34D1CB1C0073" + compartment (object Compartment + Parent_View @95 + location (327, 1387) + anchor 2 + nlines 2 + max_width 472 + compartmentItems (list Compartment + "iEntries : TScheduleEntry")) + width 484 + height 186 + autoResize TRUE) + (object ClassView "Class" "TScheduleBackup" @96 + IncludeOperation TRUE + location (2048, 400) + label (object ItemLabel + Parent_View @96 + location (1813, 69) + nlines 1 + max_width 468 + justify 0 + label "TScheduleBackup") + quidu "3587DC9303DE" + compartment (object Compartment + Parent_View @96 + location (1804, 129) + anchor 2 + nlines 12 + max_width 484 + compartmentItems (list Compartment + "iChangesToStore : TInt")) + width 506 + height 686 + autoResize TRUE) + (object ClassView "Class" "CTaskScheduler" @97 + location (2432, 1184) + label (object ItemLabel + Parent_View @97 + location (2185, 1103) + nlines 1 + max_width 493 + justify 0 + label "CTaskScheduler") + quidu "34D1C70C0186" + compartment (object Compartment + Parent_View @97 + location (2174, 1163) + anchor 2 + nlines 2 + max_width 512 + compartmentItems (list Compartment + "iBackup : TScheduleBackup")) + width 534 + height 186 + autoResize TRUE) + (object AssociationViewNew "iSchedules" @98 + location (1715, 1472) + label (object SegLabel @99 + Parent_View @98 + location (1746, 1432) + font (object Font + size 10 + face "Arial" + bold FALSE + italics TRUE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + anchor 1 + anchor_loc 1 + nlines 1 + max_width 600 + justify 0 + label "iSchedules" + pctDist 1.033333 + height 41 + orientation 0) + quidu "3587E2510297" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$25" @100 + Parent_View @98 + location (1187, -112) + quidu "3587E2520357" + client @98 + supplier @97 + vertices (list Points + (1715, 1472) + (2434, 1472) + (2434, 1277)) + line_style 3 + origin_attachment (1715, 1472) + terminal_attachment (2434, 1277) + label (object SegLabel @101 + Parent_View @100 + location (2487, 1421) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.842444 + height 53 + orientation 1)) + (object RoleView "$UNNAMED$26" @102 + Parent_View @98 + location (1187, -112) + quidu "3587E25203B1" + client @98 + supplier @95 + line_style 3 + origin_attachment (1715, 1472) + terminal_attachment (802, 1472) + label (object SegLabel @103 + Parent_View @102 + location (954, 1525) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "0..*" + pctDist 0.833333 + height 53 + orientation 0)))) + (object AssociationViewNew "iBackup" @104 + location (2262, 917) + label (object SegLabel @105 + Parent_View @104 + location (2262, 891) + font (object Font + size 10 + face "Arial" + bold FALSE + italics TRUE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + anchor 1 + anchor_loc 1 + nlines 1 + max_width 600 + justify 0 + label "iBackup" + pctDist 0.500000 + height 27 + orientation 0) + quidu "3587DCB40377" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$20" @106 + Parent_View @104 + location (166, 197) + quidu "3587DCB6019A" + client @104 + supplier @96 + line_style 3 + origin_attachment (2262, 917) + terminal_attachment (2262, 743) + label (object SegLabel @107 + Parent_View @106 + location (2212, 799) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.682119 + height 51 + orientation 0)) + (object RoleView "$UNNAMED$19" @108 + Parent_View @104 + location (166, 197) + quidu "3587DCB60149" + client @104 + supplier @97 + line_style 3 + origin_attachment (2262, 917) + terminal_attachment (2262, 1091) + label (object SegLabel @109 + Parent_View @108 + location (2317, 1059) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.816092 + height 55 + orientation 0)))) + (object ClassView "Class" "CScheduleIndex" @110 + IncludeAttribute TRUE + IncludeOperation TRUE + location (656, 784) + label (object ItemLabel + Parent_View @110 + location (213, 653) + nlines 1 + max_width 884 + justify 0 + label "CScheduleIndex") + quidu "3587DC95028C" + compartment (object Compartment + Parent_View @110 + location (187, 713) + anchor 2 + nlines 4 + max_width 294) + width 956 + height 286 + autoResize TRUE) + (object ClassView "Class" "TScheduleIndexEntry" @111 + location (560, 224) + label (object ItemLabel + Parent_View @111 + location (350, 68) + nlines 1 + max_width 418 + justify 0 + label "TScheduleIndexEntry") + quidu "3588F2210143" + compartment (object Compartment + Parent_View @111 + location (343, 128) + anchor 2 + nlines 5 + max_width 403 + compartmentItems (list Compartment + "ExternalizeL( )" + "InternalizeL( )" + "iStreamId : TStreamId" + "iScheduleId : TInt")) + width 452 + height 336 + autoResize TRUE) + (object AssociationViewNew "iEntries" @112 + location (537, 516) + label (object SegLabel @113 + Parent_View @112 + location (533, 488) + font (object Font + size 10 + face "Arial" + bold FALSE + italics TRUE + underline FALSE + strike FALSE + color 0 + default_color TRUE) + anchor 1 + anchor_loc 1 + nlines 1 + max_width 600 + justify 0 + label "iEntries" + pctDist 0.450000 + height 29 + orientation 0) + quidu "3588F2700223" + roleview_list (list RoleViews + (object RoleView "$UNNAMED$44" @114 + Parent_View @112 + location (9, 292) + quidu "3588F27003E6" + client @112 + supplier @110 + line_style 3 + origin_attachment (537, 516) + terminal_attachment (537, 641) + label (object SegLabel @115 + Parent_View @114 + location (592, 614) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "1..1" + pctDist 0.795620 + height 55 + orientation 0)) + (object RoleView "$UNNAMED$45" @116 + Parent_View @112 + location (9, 292) + quidu "3588F271003A" + client @112 + supplier @111 + line_style 3 + origin_attachment (537, 516) + terminal_attachment (537, 392) + label (object SegLabel @117 + Parent_View @116 + location (606, 422) + anchor 2 + anchor_loc 1 + nlines 1 + max_width 15 + justify 0 + label "0..*" + pctDist 0.758065 + height 69 + orientation 1)))) + (object UsesView "" @118 + quidu "3587E067001C" + client @110 + supplier @95 + line_style 3 + origin_attachment (362, 927) + terminal_attachment (362, 1315)) + (object UsesView "" @119 + quidu "3587E1C4008C" + client @96 + supplier @95 + vertices (list Points + (1981, 743) + (1981, 1072) + (631, 1072) + (631, 1315)) + line_style 3 + origin_attachment (1981, 743) + terminal_attachment (631, 1315)) + (object UsesView "" @120 + quidu "3587E061038E" + client @96 + supplier @110 + line_style 3 + origin_attachment (1795, 687) + terminal_attachment (1134, 687)) + (object UsesView "" @121 + quidu "3588F2E200FB" + client @96 + supplier @111 + line_style 3 + origin_attachment (1795, 353) + terminal_attachment (786, 353)))) + (object ClassDiagram "Client-side" + quid "3588FA630175" + title "Client-side" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list + (object ClassView "Class" "RScheduler" @122 + location (800, 672) + label (object ItemLabel + Parent_View @122 + location (554, 291) + nlines 1 + max_width 490 + justify 0 + label "RScheduler") + quidu "3588FA6800AA" + compartment (object Compartment + Parent_View @122 + location (544, 351) + anchor 2 + nlines 14 + max_width 519 + compartmentItems (list Compartment + "Register( )" + "CreatePersistentSchedule( )" + "DeleteSchedule( )" + "DisableSchedule( )" + "EnableSchedule( )" + "EditSchedule( )" + "ScheduleTask( )" + "DeleteTask( )" + "GetScheduleRefsL( )" + "GetScheduleL( )" + "GetTaskRefsL( )" + "GetTaskInfoL( )" + "GetTaskDataSize( )")) + width 530 + height 786 + autoResize TRUE) + (object ClassView "Class" "TScheduleEntryInfo" @123 + location (1792, 976) + label (object ItemLabel + Parent_View @123 + location (1470, 820) + nlines 1 + max_width 643 + justify 0 + label "TScheduleEntryInfo") + quidu "3588FA7702BE" + compartment (object Compartment + Parent_View @123 + location (1453, 880) + anchor 2 + nlines 5 + max_width 684 + compartmentItems (list Compartment + "iIntervalType : TIntervalType" + "iInterval : TInterval" + "iStartTime : TTime" + "iValidityPeriod : TTimeIntervalMinutes")) + width 696 + height 336 + autoResize TRUE) + (object ClassView "Class" "TTaskInfo" @124 + location (1600, 1408) + label (object ItemLabel + Parent_View @124 + location (1460, 1252) + nlines 1 + max_width 279 + justify 0 + label "TTaskInfo") + quidu "3587DA760264" + compartment (object Compartment + Parent_View @124 + location (1458, 1312) + anchor 2 + nlines 5 + max_width 281 + compartmentItems (list Compartment + "iRepeat : TInt" + "iName : TName" + "iTaskId : TInt" + "iPriority : TInt")) + width 302 + height 336 + autoResize TRUE) + (object UsesView "" @125 + quidu "3588FB460095" + client @122 + supplier @123 + line_style 3 + origin_attachment (1065, 956) + terminal_attachment (1444, 956)) + (object UsesView "" @126 + quidu "3588FB490220" + client @122 + supplier @124 + vertices (list Points + (819, 1065) + (819, 1424) + (1449, 1424)) + line_style 3 + origin_attachment (800, 1065) + terminal_attachment (1449, 1408)) + (object NoteView @127 + location (480, 1296) + label (object ItemLabel + Parent_View @127 + location (258, 1118) + nlines 7 + max_width 409 + label +|This diagram shows the classes +|which are visible to clients: that is, they make up part of the interface + ) + width 469 + height 369) + (object ClassView "Class" "TScheduleState" @128 + IncludeAttribute TRUE + location (1632, 560) + label (object ItemLabel + Parent_View @128 + location (1471, 404) + nlines 1 + max_width 320 + justify 0 + label "TScheduleState") + quidu "358FA35103AF" + width 346 + height 336 + autoResize TRUE) + (object UsesView "" @129 + quidu "358FA3AB02BE" + client @122 + supplier @128 + line_style 3 + origin_attachment (1065, 659) + terminal_attachment (1459, 659)) + (object ClassView "Class" "TSchedulerItemRef" @130 + location (1648, 208) + label (object ItemLabel + Parent_View @130 + location (1463, 102) + nlines 1 + max_width 368 + justify 0 + label "TSchedulerItemRef") + quidu "358FAACE01FD" + compartment (object Compartment + Parent_View @130 + location (1458, 162) + anchor 2 + nlines 3 + max_width 291 + compartmentItems (list Compartment + "iName : TName" + "iHandle : TInt")) + width 398 + height 236 + autoResize TRUE) + (object UsesView "" @131 + quidu "358FAB050351" + client @122 + supplier @130 + vertices (list Points + (1022, 279) + (1022, 222) + (1449, 222)) + line_style 3 + origin_attachment (1065, 302) + terminal_attachment (1449, 302)))) + (object ClassDiagram "Main" + quid "358F97CC011B" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list)))) + root_subsystem (object SubSystem "Component View" + quid "34B4B32D038C" + physical_models (list unit_reference_list) + physical_presentations (list unit_reference_list + (object Module_Diagram "Main" + quid "358F97CC012E" + title "Main" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list)))) + process_structure (object Processes + quid "34B4B32D038D" + ProcsNDevs (list + (object Process_Diagram "Deployment View" + quid "358F97CC011A" + title "Deployment View" + zoom 100 + max_height 28350 + max_width 21600 + origin_x 0 + origin_y 0 + items (list diagram_item_list)))) + properties (object Properties + attributes (list Attribute_Set + (object Attribute + tool "cg" + name "roseId" + value "753117540") + (object Attribute + tool "cg" + name "propertyId" + value "809135966") + (object Attribute + tool "cg" + name "default__Project" + value (list Attribute_Set + (object Attribute + tool "cg" + name "project" + value " ")))) + quid "34B4B32D038E"))