00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef ITOISCHEDULERSERVICE_IDL
00016 #define ITOISCHEDULERSERVICE_IDL
00017
00018 #include "TToiInvalidArgumentException.idl"
00019 #include "TToiNotEnoughResourcesException.idl"
00020 #include "TToiOperationNotSupportedException.idl"
00021 #include "TToiPermissionDeniedException.idl"
00022
00023 #include "IToiApplicationService.idl"
00044
00045
00046
00047 interface IToiSchedulerService {
00048
00051 typedef long TToiBookingId;
00052
00060 const TToiBookingId BOOKING_ID_NONE = 0;
00061
00064 typedef long TToiSeriesId;
00065
00071 const TToiSeriesId SERIES_ID_NONE = 0;
00072
00076 typedef long TToiTime;
00077
00083 const TToiTime TIME_NOW = -1;
00084
00088 typedef long TToiWeekdayMask;
00089
00095 const long WEEKDAY_MONDAY = 1;
00096
00102 const long WEEKDAY_TUESDAY = 2;
00103
00109 const long WEEKDAY_WEDNESDAY = 4;
00110
00116 const long WEEKDAY_THURSDAY = 8;
00117
00123 const long WEEKDAY_FRIDAY = 16;
00124
00130 const long WEEKDAY_SATURDAY = 32;
00131
00137 const long WEEKDAY_SUNDAY = 64;
00138
00144 const long WEEKDAY_ALL_WEEKDAYS = 127;
00145
00149 struct TToiSeries {
00151 IToiSchedulerService::TToiSeriesId Id;
00153 string Category;
00155 string ActivityType;
00157 IToiSchedulerService::TToiTime Start;
00159 long Duration;
00161 long Weekdays;
00168 long OriginalNumberOfOccurences;
00169 };
00170
00173 struct TToiBooking {
00175 IToiSchedulerService::TToiBookingId Id;
00177 string Category;
00179 string ActivityType;
00181 IToiSchedulerService::TToiTime Start;
00183 long Duration;
00186 IToiSchedulerService::TToiSeriesId SeriesId;
00187 };
00188
00191 typedef sequence < TToiBookingId > TToiBookingIdSequence;
00192
00195 typedef sequence < TToiSeriesId > TToiSeriesIdSequence;
00196
00197 typedef sequence < TToiBooking > TToiBookingSequence;
00198
00203 enum TToiConflictStrategy
00204 {
00205
00209
00210 CONFLICT_STRATEGY_FAIL,
00211
00215
00216 CONFLICT_STRATEGY_SKIP_BOOKINGS
00217 };
00223 enum TToiSolutionType
00224 {
00225
00228
00229 SOLUTION_TYPE_NONE,
00230
00233
00234 SOLUTION_TYPE_REMOVE
00235 };
00238 struct TToiSolution {
00240 IToiSchedulerService::TToiSolutionType Type;
00244 IToiSchedulerService::TToiBookingIdSequence AffectedBookings;
00245 };
00246
00253 typedef sequence < TToiSolution > TToiConflictSequence;
00254
00259 typedef long TToiDelta;
00260
00264 typedef sequence < TToiDelta > TToiDeltaSequence;
00265
00267 typedef sequence < string > TToiParameterNameSequence;
00268
00270 typedef sequence < string > TToiParameterValueSequence;
00271
00299 void Schedule(in string category,
00300 in string activity,
00301 in TToiTime start,
00302 in long duration,
00303 out TToiBookingId id)
00304 raises (TToiInvalidArgumentException, TToiNotEnoughResourcesException);
00305
00341 void ScheduleSeries(in string category,
00342 in string activity,
00343 in TToiTime start,
00344 in long duration,
00345 in long weekdays,
00346 in long numberOfOccurrences,
00347 in TToiConflictStrategy conflictStrategy,
00348 out TToiSeriesId id)
00349 raises (TToiInvalidArgumentException, TToiNotEnoughResourcesException);
00350
00385 void Reschedule(in TToiBookingId id,
00386 in string category,
00387 in string activity,
00388 in TToiTime start,
00389 in long duration)
00390 raises (TToiInvalidArgumentException, TToiNotEnoughResourcesException);
00391
00401 void Remove(in TToiBookingId id)
00402 raises (TToiInvalidArgumentException);
00403
00414 void RemoveSeries(in TToiSeriesId id)
00415 raises (TToiInvalidArgumentException);
00416
00445 void GetConflicts(in TToiBookingId id,
00446 in string category,
00447 in string activity,
00448 in TToiTime start,
00449 in long duration,
00450 out TToiConflictSequence conflicts)
00451 raises (TToiInvalidArgumentException);
00452
00488 void GetSeriesConflicts(in TToiSeriesId id,
00489 in string category,
00490 in string activity,
00491 in TToiTime start,
00492 in long duration,
00493 in long weekdays,
00494 in long occurrence,
00495 out TToiConflictSequence conflicts)
00496 raises (TToiInvalidArgumentException);
00497
00509 void GetNextStartTime(in string categoryExpression,
00510 out TToiTime nextStart);
00511
00523 void GetBooking(in TToiBookingId id,
00524 out TToiBooking booking)
00525 raises (TToiInvalidArgumentException);
00526
00539 void GetSeries(in TToiSeriesId id,
00540 out TToiSeries series)
00541 raises (TToiInvalidArgumentException);
00542
00561
00562
00563
00564 void GetBookingIds(in string categoryExpression,
00565 in TToiTime start,
00566 in TToiTime stop,
00567 out TToiBookingIdSequence bookings)
00568 raises (TToiInvalidArgumentException);
00569
00581 void GetSeriesIds(in string categoryExpression,
00582 out TToiSeriesIdSequence seriesIds);
00583
00595 void GetBookingIdsForSeries(in TToiSeriesId seriesId,
00596 out TToiBookingIdSequence bookings)
00597 raises (TToiInvalidArgumentException);
00598
00612 void AddTrigger(in TToiBookingId id,
00613 in TToiDelta delta)
00614 raises (TToiInvalidArgumentException);
00615
00628 void RemoveTrigger(in TToiBookingId id,
00629 in TToiDelta delta)
00630 raises (TToiInvalidArgumentException);
00631
00645 void AddTriggerOnBookings(in TToiBookingIdSequence ids,
00646 in TToiDelta delta)
00647 raises (TToiInvalidArgumentException);
00648
00662 void RemoveTriggerOnBookings(in TToiBookingIdSequence ids,
00663 in TToiDelta delta)
00664 raises (TToiInvalidArgumentException);
00665
00677 void GetTriggers(in TToiBookingId id,
00678 out TToiDeltaSequence deltas)
00679 raises (TToiInvalidArgumentException);
00680
00694 void SetParameter(in TToiBookingId id,
00695 in string name,
00696 in string value)
00697 raises (TToiInvalidArgumentException);
00698
00709 void UnsetParameter(in TToiBookingId id,
00710 in string name)
00711 raises (TToiInvalidArgumentException);
00712
00726 void GetParameter(in TToiBookingId id,
00727 in string name,
00728 out string value)
00729 raises (TToiInvalidArgumentException);
00730
00741 void GetParameterNames(in TToiBookingId id,
00742 out TToiParameterNameSequence names)
00743 raises (TToiInvalidArgumentException);
00744
00759 void SetParametersOnBookings(in TToiBookingIdSequence ids,
00760 in TToiParameterNameSequence names,
00761 in TToiParameterValueSequence values)
00762 raises (TToiInvalidArgumentException);
00763
00778 void SetSeriesParameter(in TToiSeriesId id,
00779 in string name,
00780 in string value)
00781 raises (TToiInvalidArgumentException);
00782
00794 void UnsetSeriesParameter(in TToiSeriesId id,
00795 in string name)
00796 raises (TToiInvalidArgumentException);
00797
00811 void GetSeriesParameter(in TToiSeriesId id,
00812 in string name,
00813 out string value)
00814 raises (TToiInvalidArgumentException);
00815
00827 void GetSeriesParameterNames(in TToiSeriesId id,
00828 out TToiParameterNameSequence names)
00829 raises (TToiInvalidArgumentException);
00830
00843
00844
00845
00846 void SetCategorySubscription(in string address,
00847 in string categoryExpression)
00848 raises (TToiInvalidArgumentException);
00849
00850
00851
00864 void RegisterObserver(in IToiApplicationService::TToiApplicationId applicationId,
00865 in string address)
00866 raises (TToiInvalidArgumentException);
00867
00876 void ReleaseObserver(in string address)
00877 raises (TToiInvalidArgumentException);
00878
00879 };
00880
00881 #endif