IToiSchedulerService.idl

00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
00002  *--------------------------------------------------------------------
00003  *
00004  * IToiSchedulerService.idl
00005  *
00006  * This file was created by the Motorola IDL backend, 
00007  * which is based on the OmniORB IDL parser.
00008  * Please do not modify.
00009  *
00010  * Copyright (c) 2009 Motorola Inc. All Rights Reserved.
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 //@ [EventTarget(EventObserver=IToiSchedulerObserver)]
00045 //@ [Service(Name=SchedulerService)]
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     //Value of CONFLICT_STRATEGY_FAIL = 0
00210     CONFLICT_STRATEGY_FAIL,
00211     
00215     //Value of CONFLICT_STRATEGY_SKIP_BOOKINGS = 1
00216     CONFLICT_STRATEGY_SKIP_BOOKINGS
00217   };
00223   enum TToiSolutionType
00224   {
00225     
00228     //Value of SOLUTION_TYPE_NONE = 0
00229     SOLUTION_TYPE_NONE,
00230     
00233     //Value of SOLUTION_TYPE_REMOVE = 1
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   //@ [ExtendIpcMessage(Out)]
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   //@ [EventFilter(AddressPosition=1)]
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