00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef ITOIASSETMANAGERSERVICE_IDL
00016 #define ITOIASSETMANAGERSERVICE_IDL
00017
00018 #include "TToiInvalidArgumentException.idl"
00019 #include "TToiNotEnoughResourcesException.idl"
00020 #include "TToiUnhandledValueException.idl"
00021 #include "IToiApplicationService.idl"
00022 #include "IToiOperationManager.idl"
00023 #include "TToiPermissionDeniedException.idl"
00024 #include "TToiNoDataException.idl"
00025
00026 #include "IToiApplicationService.idl"
00037
00038
00039
00040 interface IToiAssetManagerService {
00041
00048
00055 const IToiOperationManager::TToiOperationResult OP_RESULT_ASSET_INFO = 1;
00056
00058
00060
00067 const IToiOperationManager::TToiOperationResult OP_RESULT_LONG = 2;
00068
00070
00076 enum TToiConditionOperation
00077 {
00078
00081
00082 EQUALS,
00083
00086
00087 NOT_EQUAL,
00088
00091
00092 GREATER,
00093
00096
00097 LESS,
00098
00101
00102 GREATER_OR_EQUAL,
00103
00106
00107 LESS_OR_EQUAL,
00108
00111
00112 CONTAINS
00113 };
00115 typedef long TToiQueryId;
00116
00118 typedef string TToiAssetId;
00119
00121 typedef sequence < TToiAssetId > TToiAssetIdSequence;
00122
00125 enum TToiPropertyType
00126 {
00127
00130
00131 TYPE_BOOLEAN,
00132
00135
00136 TYPE_STRING,
00137
00140
00141 TYPE_INTEGER,
00142
00145
00146 TYPE_DATE,
00147
00150
00151 TYPE_ASSETLINK
00152 };
00154 typedef string TToiPropertyId;
00155
00157 typedef sequence < TToiPropertyId > TToiPropertyIdSequence;
00158
00160 typedef sequence < string > TToiPropertyValueSequence;
00161
00163 struct TToiPropertyDefinition {
00165 IToiAssetManagerService::TToiPropertyId PropertyId;
00167 IToiAssetManagerService::TToiPropertyType Type;
00169 boolean HasMultipleValueSupport;
00172 boolean IsSystemDefined;
00173 };
00174
00176 struct TToiProperty {
00178 IToiAssetManagerService::TToiPropertyId Id;
00180 string Value;
00181 };
00182
00184 typedef sequence < TToiProperty > TToiPropertySequence;
00185
00187 struct TToiAssetInfo {
00189 IToiAssetManagerService::TToiAssetId AssetId;
00191 IToiAssetManagerService::TToiPropertySequence Properties;
00192 };
00193
00195 typedef sequence < TToiAssetInfo > TToiAssetInfoSequence;
00196
00198 typedef long TToiDirectoryId;
00199
00201 typedef sequence < TToiDirectoryId > TToiDirectoryIdSequence;
00202
00207 const TToiDirectoryId ROOT_DIRECTORY = -1;
00208
00216
00222 const string PROPERTY_SYSTEM_DURATION = "system.duration";
00223
00225
00227
00233 const string PROPERTY_SYSTEM_FILESIZE = "system.filesize";
00234
00236
00238
00244 const string PROPERTY_SYSTEM_PLAYBACKURI = "system.playbackuri";
00245
00247
00249
00255 const string PROPERTY_SYSTEM_FILENAME = "system.filename";
00256
00258
00260
00267 const string PROPERTY_SYSTEM_TYPE = "system.type";
00268
00270
00272
00279 const string PROPERTY_SYSTEM_INTEGRITY_STATUS = "system.integritystatus";
00280
00282
00284
00289 const string PROPERTY_INFO_TITLE = "info.title";
00290
00292
00294
00299 const string PROPERTY_INFO_DATE = "info.date";
00300
00302
00304
00309 const string PROPERTY_INFO_DESCRIPTION = "info.description";
00310
00312
00314
00319 const string PROPERTY_INFO_LONGDESCRIPTION = "info.longdescription";
00320
00322
00324
00329 const string PROPERTY_INFO_CHANNELNAME = "info.channelname";
00330
00332
00334
00341 const string PROPERTY_INFO_RECORDINGSTATUS = "info.recordingstatus";
00342
00344
00346
00351 const string PROPERTY_INFO_MATURITYRATING = "info.maturityrating";
00352
00354
00356
00363 const string PROPERTY_INFO_SHARED = "info.shared";
00364
00366
00368
00373 const string PROPERTY_INFO_COVER = "info.cover";
00374
00376
00378
00384 const string PROPERTY_INFO_CHILDREN = "info.children";
00385
00387
00389
00397 const string PROPERTY_INFO_LOST_AND_FOUND = "info.lostandfound";
00398
00400
00402 struct TToiDirectoryInfo {
00404 IToiAssetManagerService::TToiDirectoryId DirectoryId;
00406 IToiAssetManagerService::TToiDirectoryId ParentDirectoryId;
00408 IToiAssetManagerService::TToiPropertySequence Properties;
00409 };
00410
00414 enum TToiAssetType
00415 {
00416
00419
00420 ASSET_PVR,
00421
00424
00425 ASSET_IMAGE,
00426
00429
00430 ASSET_AUDIO,
00431
00434
00435 ASSET_VIDEO
00436 };
00439 enum TToiAssetIntegrityStatus
00440 {
00441
00444
00445 INTEGRITY_UNKNOWN,
00446
00449
00450 INTEGRITY_OK,
00451
00455
00456 INTEGRITY_COULD_NOT_UPGRADE,
00457
00461
00462 INTEGRITY_COULD_NOT_REPAIR
00463 };
00465 struct TToiSortCondition {
00467 IToiAssetManagerService::TToiPropertyId SortProperty;
00469 boolean SortAscending;
00470 };
00471
00474 typedef sequence < TToiSortCondition > TToiSortConditionSequence;
00475
00477 struct TToiQueryCondition {
00479 IToiAssetManagerService::TToiPropertyId PropertyId;
00481 IToiAssetManagerService::TToiConditionOperation Operation;
00483 string Value;
00484 };
00485
00487 typedef sequence < TToiQueryCondition > TToiQueryConditionSequence;
00488
00493 enum TToiImportPolicy
00494 {
00495
00498
00499 IMPORT_POLICY_COPY,
00500
00503
00504 IMPORT_POLICY_MOVE
00505 };
00524
00525
00526
00527 void GetAssetOperationManager(out string address);
00528
00548 void CreateDirectory(in TToiDirectoryId parentId,
00549 in string title,
00550 out TToiDirectoryId dirId)
00551 raises (TToiInvalidArgumentException, TToiNotEnoughResourcesException);
00552
00566 void MoveDirectory(in TToiDirectoryId dirId,
00567 in TToiDirectoryId newParentId)
00568 raises (TToiInvalidArgumentException);
00569
00582 void SetDirectoryProperties(in TToiDirectoryId dirId,
00583 in TToiPropertySequence properties)
00584 raises (TToiInvalidArgumentException);
00585
00598 void RemoveDirectoryProperties(in TToiDirectoryId dirId,
00599 in TToiPropertyIdSequence properties)
00600 raises (TToiInvalidArgumentException);
00601
00627 void RemoveDirectory(in TToiDirectoryId dirId,
00628 in boolean recursiveFlag,
00629 in boolean removeAssetsFlag)
00630 raises (TToiInvalidArgumentException, TToiPermissionDeniedException);
00631
00644 void GetDirectoryInfo(in TToiDirectoryId dirId,
00645 out TToiDirectoryInfo info)
00646 raises (TToiInvalidArgumentException);
00647
00660 void GetDirectories(in TToiDirectoryId dirId,
00661 out TToiDirectoryIdSequence childDirIds)
00662 raises (TToiInvalidArgumentException);
00663
00676 void GetDefinedProperties(out TToiPropertyIdSequence properties);
00677
00690 void GetPropertyDefinition(in TToiPropertyId propertyId,
00691 out TToiPropertyDefinition definition)
00692 raises (TToiInvalidArgumentException);
00693
00711 void CreatePropertyDefinition(in TToiPropertyId propertyId,
00712 in TToiPropertyType type,
00713 in boolean hasMultipleValueSupport)
00714 raises (TToiInvalidArgumentException);
00715
00728 void RemovePropertyDefinition(in TToiPropertyId propertyId)
00729 raises (TToiInvalidArgumentException);
00730
00749 void CreateAsset(in TToiAssetType assetType,
00750 out TToiAssetId assetId)
00751 raises (TToiInvalidArgumentException, TToiNotEnoughResourcesException);
00752
00781 void ImportAsset(in IToiOperationManager::TToiOperationId operationId,
00782 in TToiAssetId assetId,
00783 in string uri,
00784 in TToiImportPolicy importPolicy)
00785 raises (TToiInvalidArgumentException, TToiNoDataException);
00786
00808 void RemoveAsset(in IToiOperationManager::TToiOperationId operationId,
00809 in TToiAssetId assetId)
00810 raises (TToiInvalidArgumentException, TToiNoDataException, TToiPermissionDeniedException);
00811
00838 void CopyAsset(in IToiOperationManager::TToiOperationId operationId,
00839 in TToiAssetId sourceAssetId,
00840 in unsigned long startOffset,
00841 in unsigned long duration,
00842 in TToiAssetId destinationAssetId)
00843 raises (TToiInvalidArgumentException, TToiPermissionDeniedException);
00844
00859 void LinkAssets(in TToiDirectoryId dirId,
00860 in TToiAssetIdSequence assetIds)
00861 raises (TToiInvalidArgumentException);
00862
00875 void UnlinkAssets(in TToiDirectoryId dirId,
00876 in TToiAssetIdSequence assetIds)
00877 raises (TToiInvalidArgumentException);
00878
00908 void RunQuery(in IToiOperationManager::TToiOperationId operationId,
00909 in TToiQueryConditionSequence queryConditions,
00910 in TToiPropertyIdSequence requestedProperties,
00911 in TToiSortConditionSequence sortConditions)
00912 raises (TToiInvalidArgumentException, TToiNotEnoughResourcesException);
00913
00946 void RunQueryForDirectory(in IToiOperationManager::TToiOperationId operationId,
00947 in TToiDirectoryId directoryId,
00948 in TToiQueryConditionSequence queryConditions,
00949 in TToiPropertyIdSequence requestedProperties,
00950 in TToiSortConditionSequence sortConditions)
00951 raises (TToiInvalidArgumentException, TToiNotEnoughResourcesException);
00952
00976 void RunCountQuery(in IToiOperationManager::TToiOperationId operationId,
00977 in TToiQueryConditionSequence queryConditions)
00978 raises (TToiInvalidArgumentException, TToiNotEnoughResourcesException);
00979
01003 void GetAssetInfoResult(in IToiOperationManager::TToiOperationId operationId,
01004 in unsigned long maxCount,
01005 out TToiAssetInfoSequence objects,
01006 out boolean hasMore)
01007 raises (TToiInvalidArgumentException, TToiNoDataException);
01008
01026 void GetLongResult(in IToiOperationManager::TToiOperationId operationId,
01027 out unsigned long value)
01028 raises (TToiInvalidArgumentException, TToiNoDataException);
01029
01048 void GetProperties(in TToiAssetId assetId,
01049 in TToiPropertyIdSequence requestedProperties,
01050 out TToiPropertySequence properties)
01051 raises (TToiInvalidArgumentException, TToiNoDataException, TToiNotEnoughResourcesException);
01052
01069 void GetAllProperties(in TToiAssetId assetId,
01070 out TToiPropertySequence properties)
01071 raises (TToiInvalidArgumentException, TToiNoDataException, TToiNotEnoughResourcesException);
01072
01092 void SetProperties(in TToiAssetId id,
01093 in TToiPropertySequence properties)
01094 raises (TToiInvalidArgumentException, TToiNoDataException, TToiNotEnoughResourcesException);
01095
01115 void RemoveProperties(in TToiAssetId id,
01116 in TToiPropertyIdSequence properties)
01117 raises (TToiInvalidArgumentException, TToiNoDataException, TToiNotEnoughResourcesException);
01118
01137 void RemoveMultiValuedPropertyValue(in TToiAssetId id,
01138 in TToiProperty property)
01139 raises (TToiInvalidArgumentException, TToiNoDataException, TToiNotEnoughResourcesException);
01140
01141
01142
01155 void RegisterObserver(in IToiApplicationService::TToiApplicationId applicationId,
01156 in string address)
01157 raises (TToiInvalidArgumentException);
01158
01167 void ReleaseObserver(in string address)
01168 raises (TToiInvalidArgumentException);
01169
01170 };
01171
01172 #endif