Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

archive_xmlstore_if.idl

Go to the documentation of this file.
00001 #ifndef _ARCHIVE_XMLSTORE_IF_IDL_ 00002 #define _ARCHIVE_XMLSTORE_IF_IDL_ 00003 00004 /* 00005 * ALMA - Atacama Large Millimiter Array 00006 * (c) European Southern Observatory, 2002 00007 * Copyright by ESO (in the framework of the ALMA collaboration), 00008 * All rights reserved 00009 * 00010 * This library is free software; you can redistribute it and/or 00011 * modify it under the terms of the GNU Lesser General Public 00012 * License as published by the Free Software Foundation; either 00013 * version 2.1 of the License, or (at your option) any later version. 00014 * 00015 * This library is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 * Lesser General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU Lesser General Public 00021 * License along with this library; if not, write to the Free Software 00022 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 00023 * MA 02111-1307 USA 00024 */ 00025 00026 #include <xmlentity.idl> 00027 #include <acscomponent.idl> 00028 00029 // HSO 2006-09-15: it seems that after a year of freedom from this bug, 00030 // we must again put the pragma after the includes. Otherwise a unit test in ARCHIVE/Archive failed, 00031 // in which a C++ client accesses a Java component. 00032 #pragma prefix "alma" 00033 00034 00035 module xmlstore 00036 { 00041 typedef string URI; 00045 typedef sequence <URI> URISeq; 00050 typedef string UniqueIdentifier; 00051 00055 typedef sequence <UniqueIdentifier> UniqueIdentifierSeq; 00056 00060 typedef xmlentity::XmlEntityStruct IdentifierRange; 00061 00066 typedef sequence <string> StringSeq; 00067 00071 exception ArchiveInternalError{}; 00072 00077 enum operationType {STORED_XML, UPDATED_XML, DELETED_XML}; // TODO add schema operations 00078 00082 struct XmlStoreNotificationEvent { 00084 string uid; 00086 operationType operation; 00087 }; 00088 00090 const string CHANNELNAME = "xmlstore"; 00096 interface Identifier : ACS::ACSComponent 00097 { 00101 exception NotAvailable{}; 00102 00106 exception NotFound{}; 00107 00113 UniqueIdentifierSeq getUIDs(in short number) 00114 raises (NotAvailable); 00115 00125 UniqueIdentifier getIdNamespace() 00126 raises (NotAvailable); 00127 00128 IdentifierRange getNewRange() 00129 raises (NotAvailable); 00130 00131 IdentifierRange getNewRestrictedRange(in long number, in string user) 00132 raises (NotAvailable); 00133 00134 IdentifierRange getExistingRange(in URI identifier, in string user) 00135 raises (NotFound); 00136 00140 boolean checkUIDsyntax(in URI identifier); 00141 }; 00142 00149 interface Cursor : ACS::OffShoot 00150 { 00155 struct QueryResult 00156 { 00157 URI identifier; 00158 string xml; 00159 }; 00160 00164 typedef sequence <QueryResult> QueryResultSeq; 00165 00166 // might need to add some exceptions 00167 00171 boolean hasNext() 00172 raises (ArchiveInternalError); 00173 00177 QueryResult next() 00178 raises (ArchiveInternalError); 00179 00183 QueryResultSeq nextBlock(in short size) 00184 raises (ArchiveInternalError); 00185 00190 oneway void close(); 00191 }; 00192 00202 interface Operational : ACS::OffShoot 00203 { 00207 struct StatusStruct 00208 { 00210 URI schema; 00212 string owner; 00214 string locks; 00216 boolean deleted; 00221 boolean dirty; 00223 boolean hidden; 00224 }; 00232 exception AlreadyThere{}; 00236 exception NotYetThere{}; 00239 exception IllegalEntity{}; 00241 exception DirtyEntity{}; 00245 exception MalformedURI{}; 00247 exception NotFound{}; 00248 00252 boolean exists(in URI identifier) 00253 raises (ArchiveInternalError, NotFound, MalformedURI, DirtyEntity); 00254 00256 void store(in xmlentity::XmlEntityStruct entity) 00257 raises (ArchiveInternalError, IllegalEntity); 00258 00262 void update(in xmlentity::XmlEntityStruct entity) 00263 raises (ArchiveInternalError, IllegalEntity); 00264 00268 void forceUpdate(in xmlentity::XmlEntityStruct entity) 00269 raises (ArchiveInternalError, IllegalEntity); 00270 00276 void updateXML(in URI uid, in string schema, in string newChild) raises (ArchiveInternalError, IllegalEntity, MalformedURI, NotYetThere); 00277 00281 xmlentity::XmlEntityStruct retrieve(in URI identifier) 00282 raises (ArchiveInternalError, NotFound, MalformedURI, DirtyEntity); 00283 00287 StringSeq retrieveFragment(in URI identifier, in string id) 00288 raises (ArchiveInternalError, NotFound, MalformedURI, DirtyEntity); 00289 00291 xmlentity::XmlEntityStruct updateRetrieve(in URI identifier) 00292 raises (ArchiveInternalError, NotFound, MalformedURI, DirtyEntity); 00293 00295 xmlentity::XmlEntityStruct retrieveDirty(in URI identifier) 00296 raises (ArchiveInternalError, NotFound, MalformedURI); 00297 00301 void delete(in URI identifier) 00302 raises (ArchiveInternalError, NotFound, MalformedURI); 00303 00305 void undelete(in URI identifier) 00306 raises (ArchiveInternalError, NotFound, MalformedURI); 00307 00309 StatusStruct status(in URI identifier) 00310 raises (ArchiveInternalError, NotFound, MalformedURI); 00311 00321 Cursor query( in string query, in string schema) 00322 raises (ArchiveInternalError); 00327 Cursor queryContent( in string query, in string schema) 00328 raises (ArchiveInternalError); 00329 00331 Cursor queryDirty( in string query, in string schema) 00332 raises (ArchiveInternalError); 00333 00338 URISeq queryUIDs( in string query, in string schema) 00339 raises (ArchiveInternalError); 00340 00342 URISeq queryUIDsDirty( in string query, in string schema) 00343 raises (ArchiveInternalError); 00344 00349 URISeq queryRecent( in string schemaname, in string timestamp) 00350 raises (ArchiveInternalError); 00351 00355 void close() 00356 raises (ArchiveInternalError); 00357 00358 }; 00359 00364 interface Administrative : ACS::OffShoot, ACS::PingableResource 00365 { 00367 exception NotFound{}; 00369 exception MalformedURI{}; 00370 00374 // boolean ping(); 00375 00379 void init() 00380 raises (ArchiveInternalError); 00381 00385 void reinit() 00386 raises (ArchiveInternalError); 00387 00391 void remove(in URI identifier, in boolean deep) 00392 raises (NotFound,MalformedURI,ArchiveInternalError); 00393 00400 void cleanTestArea() 00401 raises (ArchiveInternalError); 00402 00406 string config(in string name); 00407 00410 void close() 00411 raises (ArchiveInternalError); 00412 }; 00413 00419 interface ArchiveConnection : ACS::ACSComponent 00420 { 00422 exception UserDoesNotExistException{}; 00424 exception PermissionException{}; 00426 exception ArchiveException{}; 00427 00429 Operational getOperational(in string user) 00430 raises (UserDoesNotExistException,ArchiveException,PermissionException); 00431 00433 Administrative getAdministrative(in string user) 00434 raises (UserDoesNotExistException,ArchiveException,PermissionException); 00435 00436 }; 00437 }; 00438 00439 00440 #endif /* _ARCHIVE_XMLSTORE_IF_IDL_ */

Generated on Thu Apr 30 02:26:27 2009 for ACS IDL interfaces by doxygen 1.3.8