Data Service  1.0.0
data_service.idl
00001 #ifndef __TECGRAF_OPENBUS_DATA_SERVICE_IDL__
00002 #define __TECGRAF_OPENBUS_DATA_SERVICE_IDL__
00003 
00004 module tecgraf {
00005 
00006 module openbus {
00007 
00011 module data_service {
00012 
00014 typedef sequence<octet> OctetSeq;
00015 
00017 typedef sequence<string> StringSeq;
00018 
00020 typedef long long TimeStamp;
00021 
00031 typedef OctetSeq DataKey;
00032 
00034 typedef  sequence<DataKey> DataKeySeq;
00035 
00037 exception UnknownViewInterface {
00038   string fName; 
00039 };
00040 
00045 exception UnknownViews {};
00046 
00048 exception InvalidDataKey {
00049   DataKey fKey; 
00050 };
00051 
00053 exception InvalidPrototype {};
00054 
00056 exception DataAccessDenied{};
00057 
00059 exception DataNotFound {
00060   DataKeySeq fKey; 
00061 };
00062 
00064 exception ServiceFailure {};
00065 
00073 struct Metadata {
00074   string fName; 
00075   any fValue;  
00076 };
00077 typedef sequence<Metadata> MetadataSeq; 
00100 valuetype DataDescription {
00101   public DataKey fKey;  
00102   public string fName; 
00103   public StringSeq fViews; 
00104   public MetadataSeq fMetadata; 
00105 };
00106 typedef sequence<DataDescription> DataDescriptionSeq; 
00128 abstract interface DataView {
00137   DataKey getKey();
00138 
00148   string getInterfaceName();
00149 };
00150 typedef sequence<DataView> DataViewSeq; 
00157 valuetype UnstructuredData supports DataView {
00158   public DataKey fKey; 
00159   public string fHost; 
00160   public unsigned long fPort; 
00162   public OctetSeq fAccessKey; 
00163   public boolean fWritable; 
00164 };
00165 
00169 interface IHierarchicalNavigationDataService {
00182   DataDescriptionSeq getRoots() raises (ServiceFailure, DataAccessDenied);
00183 
00196   DataDescriptionSeq getChildren(in DataKey fKey) raises (ServiceFailure,
00197       InvalidDataKey, DataNotFound, DataAccessDenied);
00198 
00211   DataDescription getParent(in DataKey fKey) raises (ServiceFailure,
00212       InvalidDataKey, DataNotFound, DataAccessDenied);
00213 
00226   DataDescription getDataDescription(in DataKey fKey) raises (ServiceFailure,
00227       InvalidDataKey, DataNotFound, DataAccessDenied);
00228 
00248   DataView getDataView(in DataKey fKey, in string fViewInterface)
00249       raises (ServiceFailure, InvalidDataKey, DataNotFound,
00250       UnknownViewInterface, DataAccessDenied);
00251 
00269   DataViewSeq getDataViewSeq(in DataKeySeq fKeys, in string fViewInterface)
00270       raises (ServiceFailure, InvalidDataKey, DataNotFound, 
00271       UnknownViewInterface, DataAccessDenied);
00272 };
00273 
00277 interface IHierarchicalManagementDataService {
00298   DataKey createData(in DataKey fPrototype, in DataDescription fParentKey)
00299       raises (ServiceFailure, InvalidDataKey, DataNotFound, InvalidPrototype,
00300       DataAccessDenied);
00301 
00318   DataKey copyData(in DataKey fSourceKey, in DataKey fParentKey)
00319       raises (ServiceFailure, UnknownViews, InvalidDataKey, DataNotFound, 
00320       DataAccessDenied);
00321 
00334   void moveData(in DataKey fKey, in DataKey fNewParentKey)
00335       raises (ServiceFailure, UnknownViews, InvalidDataKey, DataNotFound, 
00336       DataAccessDenied);
00337 
00351   void updateData(in DataKey fKey, in DataKey fSourceKey)
00352       raises (ServiceFailure, UnknownViews, InvalidDataKey, DataNotFound, 
00353       DataAccessDenied);
00354 
00365   void deleteData(in DataKey fKey) raises (ServiceFailure, InvalidDataKey, 
00366       DataNotFound, DataAccessDenied);
00367 };
00368 
00372 interface IHierarchicalTransferDataService {
00389   DataKey copyDataFrom(in DataKey fSourceKey, in DataKey fParentKey)
00390       raises (ServiceFailure, UnknownViews, InvalidDataKey, DataNotFound, 
00391       DataAccessDenied);
00392 
00406   void updateDataFrom(in DataKey fKey, in DataKey fSourceKey)
00407       raises (ServiceFailure, UnknownViews, InvalidDataKey, DataNotFound, 
00408       DataAccessDenied);
00409 };
00410 
00417 interface IHierarchicalDataService : IHierarchicalNavigationDataService,
00418     IHierarchicalManagementDataService, IHierarchicalTransferDataService {
00419 };
00420 
00421 }; // data_service
00422 
00423 }; // openbus
00424 
00425 }; // tecgraf
00426 
00427 #endif
 Todos Classes Namespaces Funções Variáveis Definições de Tipos