1 /* @include ensmiscellaneous ************************************************** 2 ** 3 ** Ensembl Miscellaneous functions 4 ** 5 ** @author Copyright (C) 1999 Ensembl Developers 6 ** @author Copyright (C) 2006 Michael K. Schuster 7 ** @version $Revision: 1.24 $ 8 ** @modified 2009 by Alan Bleasby for incorporation into EMBOSS core 9 ** @modified $Date: 2012/08/05 11:15:18 $ by $Author: mks $ 10 ** @@ 11 ** 12 ** This library is free software; you can redistribute it and/or 13 ** modify it under the terms of the GNU Lesser General Public 14 ** License as published by the Free Software Foundation; either 15 ** version 2.1 of the License, or (at your option) any later version. 16 ** 17 ** This library is distributed in the hope that it will be useful, 18 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 19 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 20 ** Lesser General Public License for more details. 21 ** 22 ** You should have received a copy of the GNU Lesser General Public 23 ** License along with this library; if not, write to the Free Software 24 ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 25 ** MA 02110-1301, USA. 26 ** 27 ******************************************************************************/ 28 29 #ifndef ENSMISCELLANEOUS_H 30 #define ENSMISCELLANEOUS_H 31 32 /* ========================================================================= */ 33 /* ============================= include files ============================= */ 34 /* ========================================================================= */ 35 36 #include "ensattribute.h" 37 #include "ensfeature.h" 38 39 AJ_BEGIN_DECLS 40 41 42 43 44 /* ========================================================================= */ 45 /* =============================== constants =============================== */ 46 /* ========================================================================= */ 47 48 /* @const EnsPMiscellaneousfeatureadaptor ************************************* 49 ** 50 ** Ensembl Miscellaneous Feature Adaptor. 51 ** Defined as an alias in EnsPFeatureadaptor. 52 ** 53 ** #alias EnsPFeatureadaptor 54 ** 55 ** #cc Bio::EnsEMBL::DBSQL::MiscFeatureAdaptor 56 ** ## 57 ******************************************************************************/ 58 59 #define EnsPMiscellaneousfeatureadaptor EnsPFeatureadaptor 60 61 62 63 64 /* ========================================================================= */ 65 /* ============================== public data ============================== */ 66 /* ========================================================================= */ 67 68 /* @data EnsPMiscellaneoussetadaptor ****************************************** 69 ** 70 ** Ensembl Miscellaneous Set Adaptor. 71 ** 72 ** @alias EnsSMiscellaneoussetadaptor 73 ** @alias EnsOMiscellaneoussetadaptor 74 ** 75 ** @attr Adaptor [EnsPBaseadaptor] Ensembl Base Adaptor 76 ** @attr CacheByIdentifier [AjPTable] Identifier cache 77 ** @attr CacheByCode [AjPTable] Code cache 78 ** @@ 79 ******************************************************************************/ 80 81 typedef struct EnsSMiscellaneoussetadaptor 82 { 83 EnsPBaseadaptor Adaptor; 84 AjPTable CacheByIdentifier; 85 AjPTable CacheByCode; 86 } EnsOMiscellaneoussetadaptor; 87 88 #define EnsPMiscellaneoussetadaptor EnsOMiscellaneoussetadaptor* 89 90 91 92 93 /* @data EnsPMiscellaneousset ************************************************* 94 ** 95 ** Ensembl Miscellaneous Set. 96 ** 97 ** @alias EnsSMiscellaneousset 98 ** @alias EnsOMiscellaneousset 99 ** 100 ** @attr Use [ajuint] Use counter 101 ** @cc Bio::EnsEMBL::Storable 102 ** @attr Identifier [ajuint] SQL database-internal identifier 103 ** @attr Adaptor [EnsPMiscellaneoussetadaptor] Ensembl Miscellaneous 104 ** Set Adaptor 105 ** @cc Bio::EnsEMBL::MiscSet 106 ** @cc 'misc_set' SQL table 107 ** @attr Code [AjPStr] Code 108 ** @attr Name [AjPStr] Name 109 ** @attr Description [AjPStr] Description 110 ** @attr MaximumLength [ajuint] Maximum Feature length 111 ** @attr Padding [ajuint] Padding to alignment boundary 112 ** @@ 113 ******************************************************************************/ 114 115 typedef struct EnsSMiscellaneousset 116 { 117 ajuint Use; 118 ajuint Identifier; 119 EnsPMiscellaneoussetadaptor Adaptor; 120 AjPStr Code; 121 AjPStr Name; 122 AjPStr Description; 123 ajuint MaximumLength; 124 ajuint Padding; 125 } EnsOMiscellaneousset; 126 127 #define EnsPMiscellaneousset EnsOMiscellaneousset* 128 129 130 131 132 /* @data EnsPMiscellaneousfeature ********************************************* 133 ** 134 ** Ensembl Miscellaneous Feature. 135 ** 136 ** @alias EnsSMiscellaneousfeature 137 ** @alias EnsOMiscellaneousfeature 138 ** 139 ** @attr Use [ajuint] Use counter 140 ** @cc Bio::EnsEMBL::Storable 141 ** @attr Identifier [ajuint] SQL database-internal identifier 142 ** @attr Adaptor [EnsPMiscellaneousfeatureadaptor] Ensembl Miscellaneous 143 ** Feature Adaptor 144 ** @cc Bio::EnsEMBL::Feature 145 ** @cc 'misc_feature' SQL table 146 ** @attr Feature [EnsPFeature] Ensembl Feature 147 ** @cc Bio::EnsEMBL::MiscFeature 148 ** @attr Attributes [AjPList] AJAX List of Ensembl Attribute objects 149 ** @attr Miscellaneoussets [AjPList] AJAX List of 150 ** Ensembl Miscellaneous Set objects 151 ** @@ 152 ******************************************************************************/ 153 154 typedef struct EnsSMiscellaneousfeature 155 { 156 ajuint Use; 157 ajuint Identifier; 158 EnsPMiscellaneousfeatureadaptor Adaptor; 159 EnsPFeature Feature; 160 AjPList Attributes; 161 AjPList Miscellaneoussets; 162 } EnsOMiscellaneousfeature; 163 164 #define EnsPMiscellaneousfeature EnsOMiscellaneousfeature* 165 166 167 168 169 /* ========================================================================= */ 170 /* =========================== public functions ============================ */ 171 /* ========================================================================= */ 172 173 /* 174 ** Prototype definitions 175 */ 176 177 /* Ensembl Miscellaneous Set */ 178 179 EnsPMiscellaneousset ensMiscellaneoussetNewCpy( 180 const EnsPMiscellaneousset ms); 181 182 EnsPMiscellaneousset ensMiscellaneoussetNewIni( 183 EnsPMiscellaneoussetadaptor msa, 184 ajuint identifier, 185 AjPStr code, 186 AjPStr name, 187 AjPStr description, 188 ajuint maxlen); 189 190 EnsPMiscellaneousset ensMiscellaneoussetNewRef(EnsPMiscellaneousset ms); 191 192 void ensMiscellaneoussetDel(EnsPMiscellaneousset *Pms); 193 194 EnsPMiscellaneoussetadaptor ensMiscellaneoussetGetAdaptor( 195 const EnsPMiscellaneousset ms); 196 197 AjPStr ensMiscellaneoussetGetCode(const EnsPMiscellaneousset ms); 198 199 AjPStr ensMiscellaneoussetGetDescription(const EnsPMiscellaneousset ms); 200 201 ajuint ensMiscellaneoussetGetIdentifier(const EnsPMiscellaneousset ms); 202 203 ajuint ensMiscellaneoussetGetMaximumlength(const EnsPMiscellaneousset ms); 204 205 AjPStr ensMiscellaneoussetGetName(const EnsPMiscellaneousset ms); 206 207 AjBool ensMiscellaneoussetSetAdaptor(EnsPMiscellaneousset ms, 208 EnsPMiscellaneoussetadaptor msa); 209 210 AjBool ensMiscellaneoussetSetIdentifier(EnsPMiscellaneousset ms, 211 ajuint identifier); 212 213 AjBool ensMiscellaneoussetSetCode(EnsPMiscellaneousset ms, AjPStr code); 214 215 AjBool ensMiscellaneoussetSetName(EnsPMiscellaneousset ms, AjPStr name); 216 217 AjBool ensMiscellaneoussetSetDescription(EnsPMiscellaneousset ms, 218 AjPStr description); 219 220 AjBool ensMiscellaneoussetSetMaximumlength(EnsPMiscellaneousset ms, 221 ajuint maxlen); 222 223 size_t ensMiscellaneoussetCalculateMemsize(const EnsPMiscellaneousset ms); 224 225 AjBool ensMiscellaneoussetTrace(const EnsPMiscellaneousset ms, ajuint level); 226 227 /* AJAX List of Ensembl Miscellaneous Set objects */ 228 229 AjBool ensListMiscellaneoussetSortIdentifierAscending(AjPList mss); 230 231 AjBool ensListMiscellaneoussetSortIdentifierDescending(AjPList mss); 232 233 /* Ensembl Miscellaneous Set Adaptor */ 234 235 EnsPMiscellaneoussetadaptor ensRegistryGetMiscellaneoussetadaptor( 236 EnsPDatabaseadaptor dba); 237 238 EnsPMiscellaneoussetadaptor ensMiscellaneoussetadaptorNew( 239 EnsPDatabaseadaptor dba); 240 241 void ensMiscellaneoussetadaptorDel(EnsPMiscellaneoussetadaptor *Pmsa); 242 243 AjBool ensMiscellaneoussetadaptorCacheClear( 244 EnsPMiscellaneoussetadaptor msa); 245 246 EnsPBaseadaptor ensMiscellaneoussetadaptorGetBaseadaptor( 247 EnsPMiscellaneoussetadaptor msa); 248 249 EnsPDatabaseadaptor ensMiscellaneoussetadaptorGetDatabaseadaptor( 250 EnsPMiscellaneoussetadaptor msa); 251 252 AjBool ensMiscellaneoussetadaptorFetchAll( 253 EnsPMiscellaneoussetadaptor msa, 254 AjPList mslist); 255 256 AjBool ensMiscellaneoussetadaptorFetchByCode( 257 EnsPMiscellaneoussetadaptor msa, 258 const AjPStr code, 259 EnsPMiscellaneousset *Pms); 260 261 AjBool ensMiscellaneoussetadaptorFetchByIdentifier( 262 EnsPMiscellaneoussetadaptor msa, 263 ajuint identifier, 264 EnsPMiscellaneousset *Pms); 265 266 /* Ensembl Miscellaneous Feature */ 267 268 EnsPMiscellaneousfeature ensMiscellaneousfeatureNewCpy( 269 const EnsPMiscellaneousfeature mf); 270 271 EnsPMiscellaneousfeature ensMiscellaneousfeatureNewIni( 272 EnsPMiscellaneousfeatureadaptor mfa, 273 ajuint identifier, 274 EnsPFeature feature); 275 276 EnsPMiscellaneousfeature ensMiscellaneousfeatureNewRef( 277 EnsPMiscellaneousfeature mf); 278 279 void ensMiscellaneousfeatureDel(EnsPMiscellaneousfeature *Pmf); 280 281 EnsPMiscellaneousfeatureadaptor ensMiscellaneousfeatureGetAdaptor( 282 const EnsPMiscellaneousfeature mf); 283 284 const AjPList ensMiscellaneousfeatureGetAttributes( 285 const EnsPMiscellaneousfeature mf); 286 287 EnsPFeature ensMiscellaneousfeatureGetFeature( 288 const EnsPMiscellaneousfeature mf); 289 290 ajuint ensMiscellaneousfeatureGetIdentifier( 291 const EnsPMiscellaneousfeature mf); 292 293 const AjPList ensMiscellaneousfeatureGetMiscellaneoussets( 294 const EnsPMiscellaneousfeature mf); 295 296 AjBool ensMiscellaneousfeatureSetAdaptor( 297 EnsPMiscellaneousfeature mf, 298 EnsPMiscellaneousfeatureadaptor mfa); 299 300 AjBool ensMiscellaneousfeatureSetFeature( 301 EnsPMiscellaneousfeature mf, 302 EnsPFeature feature); 303 304 AjBool ensMiscellaneousfeatureSetIdentifier( 305 EnsPMiscellaneousfeature mf, 306 ajuint identifier); 307 308 AjBool ensMiscellaneousfeatureAddAttribute( 309 EnsPMiscellaneousfeature mf, 310 EnsPAttribute attribute); 311 312 AjBool ensMiscellaneousfeatureAddMiscellaneousset( 313 EnsPMiscellaneousfeature mf, 314 EnsPMiscellaneousset ms); 315 316 AjBool ensMiscellaneousfeatureTrace(const EnsPMiscellaneousfeature mf, 317 ajuint level); 318 319 size_t ensMiscellaneousfeatureCalculateMemsize( 320 const EnsPMiscellaneousfeature mf); 321 322 AjBool ensMiscellaneousfeatureFetchAllAttributes( 323 EnsPMiscellaneousfeature mf, 324 const AjPStr code, 325 AjPList attributes); 326 327 AjBool ensMiscellaneousfeatureFetchAllMiscellaneoussets( 328 EnsPMiscellaneousfeature mf, 329 const AjPStr code, 330 AjPList mslist); 331 332 /* AJAX List of Ensembl Miscellaneous Feature objects */ 333 334 AjBool ensListMiscellaneousfeatureSortEndAscending(AjPList mfs); 335 336 AjBool ensListMiscellaneousfeatureSortEndDescending(AjPList mfs); 337 338 AjBool ensListMiscellaneousfeatureSortIdentifierAscending(AjPList mfs); 339 340 AjBool ensListMiscellaneousfeatureSortStartAscending(AjPList mfs); 341 342 AjBool ensListMiscellaneousfeatureSortStartDescending(AjPList mfs); 343 344 /* Ensembl Miscellaneous Feature Adaptor */ 345 346 EnsPMiscellaneousfeatureadaptor ensRegistryGetMiscellaneousfeatureadaptor( 347 EnsPDatabaseadaptor dba); 348 349 EnsPMiscellaneousfeatureadaptor ensMiscellaneousfeatureadaptorNew( 350 EnsPDatabaseadaptor dba); 351 352 void ensMiscellaneousfeatureadaptorDel(EnsPMiscellaneousfeatureadaptor *Pmfa); 353 354 EnsPBaseadaptor ensMiscellaneousfeatureadaptorGetBaseadaptor( 355 EnsPMiscellaneousfeatureadaptor mfa); 356 357 EnsPDatabaseadaptor ensMiscellaneousfeatureadaptorGetDatabaseadaptor( 358 EnsPMiscellaneousfeatureadaptor mfa); 359 360 EnsPFeatureadaptor ensMiscellaneousfeatureadaptorGetFeatureadaptor( 361 EnsPMiscellaneousfeatureadaptor mfa); 362 363 AjBool ensMiscellaneousfeatureadaptorFetchAllbySlicecodes( 364 EnsPMiscellaneousfeatureadaptor mfa, 365 EnsPSlice slice, 366 const AjPList codes, 367 AjPList mfs); 368 369 AjBool ensMiscellaneousfeatureadaptorFetchAllbyAttributecodevalue( 370 EnsPMiscellaneousfeatureadaptor mfa, 371 const AjPStr code, 372 const AjPStr value, 373 AjPList mfs); 374 375 AjBool ensMiscellaneousfeatureadaptorRetrieveAllIdentifiers( 376 EnsPMiscellaneousfeatureadaptor mfa, 377 AjPList identifiers); 378 379 /* 380 ** End of prototype definitions 381 */ 382 383 384 385 386 AJ_END_DECLS 387 388 #endif /* !ENSMISCELLANEOUS_H */ 389