1.5.1 (revision 4026)
otf2/OTF2_AttributeList.h
Go to the documentation of this file.
00001 /*
00002  * This file is part of the Score-P software (http://www.score-p.org)
00003  *
00004  * Copyright (c) 2009-2012,
00005  * RWTH Aachen University, Germany
00006  *
00007  * Copyright (c) 2009-2012,
00008  * Gesellschaft fuer numerische Simulation mbH Braunschweig, Germany
00009  *
00010  * Copyright (c) 2009-2012,
00011  * Technische Universitaet Dresden, Germany
00012  *
00013  * Copyright (c) 2009-2012,
00014  * University of Oregon, Eugene, USA
00015  *
00016  * Copyright (c) 2009-2012,
00017  * Forschungszentrum Juelich GmbH, Germany
00018  *
00019  * Copyright (c) 2009-2012,
00020  * German Research School for Simulation Sciences GmbH, Juelich/Aachen, Germany
00021  *
00022  * Copyright (c) 2009-2012,
00023  * Technische Universitaet Muenchen, Germany
00024  *
00025  * This software may be modified and distributed under the terms of
00026  * a BSD-style license.  See the COPYING file in the package base
00027  * directory for details.
00028  *
00029  */
00030 
00031 
00032 #ifndef OTF2_ATTRIBUTE_LIST_H
00033 #define OTF2_ATTRIBUTE_LIST_H
00034 
00035 
00085 #include <stdint.h>
00086 #ifndef __cplusplus
00087 #include <stdbool.h>
00088 #endif
00089 
00090 
00091 #include <otf2/OTF2_ErrorCodes.h>
00092 
00093 
00094 #include <otf2/OTF2_GeneralDefinitions.h>
00095 #include <otf2/OTF2_AttributeValue.h>
00096 
00097 
00098 #ifdef __cplusplus
00099 extern "C" {
00100 #endif /* __cplusplus */
00101 
00102 
00104 typedef struct OTF2_AttributeList_struct OTF2_AttributeList;
00105 
00106 
00112 OTF2_AttributeList*
00113 OTF2_AttributeList_New( void );
00114 
00115 
00124 OTF2_ErrorCode
00125 OTF2_AttributeList_Delete( OTF2_AttributeList* attributeList );
00126 
00127 
00140 OTF2_ErrorCode
00141 OTF2_AttributeList_AddAttribute( OTF2_AttributeList* attributeList,
00142                                  OTF2_AttributeRef   attribute,
00143                                  OTF2_Type           type,
00144                                  OTF2_AttributeValue attributeValue );
00145 
00146 
00147 
00158 OTF2_ErrorCode
00159 OTF2_AttributeList_AddUint8( OTF2_AttributeList* attributeList,
00160                              OTF2_AttributeRef   attribute,
00161                              uint8_t             uint8Value );
00162 
00163 
00174 OTF2_ErrorCode
00175 OTF2_AttributeList_AddUint16( OTF2_AttributeList* attributeList,
00176                               OTF2_AttributeRef   attribute,
00177                               uint16_t            uint16Value );
00178 
00179 
00190 OTF2_ErrorCode
00191 OTF2_AttributeList_AddUint32( OTF2_AttributeList* attributeList,
00192                               OTF2_AttributeRef   attribute,
00193                               uint32_t            uint32Value );
00194 
00195 
00206 OTF2_ErrorCode
00207 OTF2_AttributeList_AddUint64( OTF2_AttributeList* attributeList,
00208                               OTF2_AttributeRef   attribute,
00209                               uint64_t            uint64Value );
00210 
00211 
00222 OTF2_ErrorCode
00223 OTF2_AttributeList_AddInt8( OTF2_AttributeList* attributeList,
00224                             OTF2_AttributeRef   attribute,
00225                             int8_t              int8Value );
00226 
00227 
00238 OTF2_ErrorCode
00239 OTF2_AttributeList_AddInt16( OTF2_AttributeList* attributeList,
00240                              OTF2_AttributeRef   attribute,
00241                              int16_t             int16Value );
00242 
00243 
00254 OTF2_ErrorCode
00255 OTF2_AttributeList_AddInt32( OTF2_AttributeList* attributeList,
00256                              OTF2_AttributeRef   attribute,
00257                              int32_t             int32Value );
00258 
00259 
00270 OTF2_ErrorCode
00271 OTF2_AttributeList_AddInt64( OTF2_AttributeList* attributeList,
00272                              OTF2_AttributeRef   attribute,
00273                              int64_t             int64Value );
00274 
00275 
00286 OTF2_ErrorCode
00287 OTF2_AttributeList_AddFloat( OTF2_AttributeList* attributeList,
00288                              OTF2_AttributeRef   attribute,
00289                              float               float32Value );
00290 
00291 
00302 OTF2_ErrorCode
00303 OTF2_AttributeList_AddDouble( OTF2_AttributeList* attributeList,
00304                               OTF2_AttributeRef   attribute,
00305                               double              float64Value );
00306 
00307 
00321 OTF2_ErrorCode
00322 OTF2_AttributeList_AddString( OTF2_AttributeList* attributeList,
00323                               OTF2_AttributeRef   attribute,
00324                               OTF2_StringRef      stringRef );
00325 
00326 
00337 OTF2_ErrorCode
00338 OTF2_AttributeList_AddStringRef( OTF2_AttributeList* attributeList,
00339                                  OTF2_AttributeRef   attribute,
00340                                  OTF2_StringRef      stringRef );
00341 
00342 
00353 OTF2_ErrorCode
00354 OTF2_AttributeList_AddAttributeRef( OTF2_AttributeList* attributeList,
00355                                     OTF2_AttributeRef   attribute,
00356                                     OTF2_AttributeRef   attributeRef );
00357 
00358 
00369 OTF2_ErrorCode
00370 OTF2_AttributeList_AddLocationRef( OTF2_AttributeList* attributeList,
00371                                    OTF2_AttributeRef   attribute,
00372                                    OTF2_LocationRef    locationRef );
00373 
00374 
00385 OTF2_ErrorCode
00386 OTF2_AttributeList_AddRegionRef( OTF2_AttributeList* attributeList,
00387                                  OTF2_AttributeRef   attribute,
00388                                  OTF2_RegionRef      regionRef );
00389 
00390 
00401 OTF2_ErrorCode
00402 OTF2_AttributeList_AddGroupRef( OTF2_AttributeList* attributeList,
00403                                 OTF2_AttributeRef   attribute,
00404                                 OTF2_GroupRef       groupRef );
00405 
00406 
00417 OTF2_ErrorCode
00418 OTF2_AttributeList_AddMetricRef( OTF2_AttributeList* attributeList,
00419                                  OTF2_AttributeRef   attribute,
00420                                  OTF2_MetricRef      metricRef );
00421 
00422 
00433 OTF2_ErrorCode
00434 OTF2_AttributeList_AddCommRef( OTF2_AttributeList* attributeList,
00435                                OTF2_AttributeRef   attribute,
00436                                OTF2_CommRef        commRef );
00437 
00438 
00449 OTF2_ErrorCode
00450 OTF2_AttributeList_AddParameterRef( OTF2_AttributeList* attributeList,
00451                                     OTF2_AttributeRef   attribute,
00452                                     OTF2_ParameterRef   parameterRef );
00453 
00454 
00465 OTF2_ErrorCode
00466 OTF2_AttributeList_AddRmaWinRef( OTF2_AttributeList* attributeList,
00467                                  OTF2_AttributeRef   attribute,
00468                                  OTF2_RmaWinRef      rmaWinRef );
00469 
00470 
00482 OTF2_ErrorCode
00483 OTF2_AttributeList_AddSourceCodeLocationRef( OTF2_AttributeList*        attributeList,
00484                                              OTF2_AttributeRef          attribute,
00485                                              OTF2_SourceCodeLocationRef sourceCodeLocationRef );
00486 
00487 
00498 OTF2_ErrorCode
00499 OTF2_AttributeList_AddCallingContextRef( OTF2_AttributeList*    attributeList,
00500                                          OTF2_AttributeRef      attribute,
00501                                          OTF2_CallingContextRef callingContextRef );
00502 
00503 
00515 OTF2_ErrorCode
00516 OTF2_AttributeList_AddInterruptGeneratorRef( OTF2_AttributeList*        attributeList,
00517                                              OTF2_AttributeRef          attribute,
00518                                              OTF2_InterruptGeneratorRef interruptGeneratorRef );
00519 
00520 
00528 OTF2_ErrorCode
00529 OTF2_AttributeList_RemoveAttribute( OTF2_AttributeList* attributeList,
00530                                     OTF2_AttributeRef   attribute );
00531 
00532 
00539 OTF2_ErrorCode
00540 OTF2_AttributeList_RemoveAllAttributes( OTF2_AttributeList* attributeList );
00541 
00542 
00550 bool
00551 OTF2_AttributeList_TestAttributeByID( const OTF2_AttributeList* attributeList,
00552                                       OTF2_AttributeRef         attribute );
00553 
00554 
00564 OTF2_ErrorCode
00565 OTF2_AttributeList_GetAttributeByID( const OTF2_AttributeList* attributeList,
00566                                      OTF2_AttributeRef         attribute,
00567                                      OTF2_Type*                type,
00568                                      OTF2_AttributeValue*      attributeValue );
00569 
00570 
00582 OTF2_ErrorCode
00583 OTF2_AttributeList_GetUint8( const OTF2_AttributeList* attributeList,
00584                              OTF2_AttributeRef         attribute,
00585                              uint8_t*                  uint8Value );
00586 
00587 
00599 OTF2_ErrorCode
00600 OTF2_AttributeList_GetUint16( const OTF2_AttributeList* attributeList,
00601                               OTF2_AttributeRef         attribute,
00602                               uint16_t*                 uint16Value );
00603 
00604 
00616 OTF2_ErrorCode
00617 OTF2_AttributeList_GetUint32( const OTF2_AttributeList* attributeList,
00618                               OTF2_AttributeRef         attribute,
00619                               uint32_t*                 uint32Value );
00620 
00621 
00633 OTF2_ErrorCode
00634 OTF2_AttributeList_GetUint64( const OTF2_AttributeList* attributeList,
00635                               OTF2_AttributeRef         attribute,
00636                               uint64_t*                 uint64Value );
00637 
00638 
00650 OTF2_ErrorCode
00651 OTF2_AttributeList_GetInt8( const OTF2_AttributeList* attributeList,
00652                             OTF2_AttributeRef         attribute,
00653                             int8_t*                   int8Value );
00654 
00655 
00667 OTF2_ErrorCode
00668 OTF2_AttributeList_GetInt16( const OTF2_AttributeList* attributeList,
00669                              OTF2_AttributeRef         attribute,
00670                              int16_t*                  int16Value );
00671 
00672 
00684 OTF2_ErrorCode
00685 OTF2_AttributeList_GetInt32( const OTF2_AttributeList* attributeList,
00686                              OTF2_AttributeRef         attribute,
00687                              int32_t*                  int32Value );
00688 
00689 
00701 OTF2_ErrorCode
00702 OTF2_AttributeList_GetInt64( const OTF2_AttributeList* attributeList,
00703                              OTF2_AttributeRef         attribute,
00704                              int64_t*                  int64Value );
00705 
00706 
00718 OTF2_ErrorCode
00719 OTF2_AttributeList_GetFloat( const OTF2_AttributeList* attributeList,
00720                              OTF2_AttributeRef         attribute,
00721                              float*                    float32Value );
00722 
00723 
00735 OTF2_ErrorCode
00736 OTF2_AttributeList_GetDouble( const OTF2_AttributeList* attributeList,
00737                               OTF2_AttributeRef         attribute,
00738                               double*                   float64Value );
00739 
00740 
00754 OTF2_ErrorCode
00755 OTF2_AttributeList_GetString( const OTF2_AttributeList* attributeList,
00756                               OTF2_AttributeRef         attribute,
00757                               OTF2_StringRef*           stringRef );
00758 
00759 
00771 OTF2_ErrorCode
00772 OTF2_AttributeList_GetStringRef( const OTF2_AttributeList* attributeList,
00773                                  OTF2_AttributeRef         attribute,
00774                                  OTF2_StringRef*           stringRef );
00775 
00776 
00788 OTF2_ErrorCode
00789 OTF2_AttributeList_GetAttributeRef( const OTF2_AttributeList* attributeList,
00790                                     OTF2_AttributeRef         attribute,
00791                                     OTF2_AttributeRef*        attributeRef );
00792 
00793 
00805 OTF2_ErrorCode
00806 OTF2_AttributeList_GetLocationRef( const OTF2_AttributeList* attributeList,
00807                                    OTF2_AttributeRef         attribute,
00808                                    OTF2_LocationRef*         locationRef );
00809 
00810 
00822 OTF2_ErrorCode
00823 OTF2_AttributeList_GetRegionRef( const OTF2_AttributeList* attributeList,
00824                                  OTF2_AttributeRef         attribute,
00825                                  OTF2_RegionRef*           regionRef );
00826 
00827 
00839 OTF2_ErrorCode
00840 OTF2_AttributeList_GetGroupRef( const OTF2_AttributeList* attributeList,
00841                                 OTF2_AttributeRef         attribute,
00842                                 OTF2_GroupRef*            groupRef );
00843 
00844 
00856 OTF2_ErrorCode
00857 OTF2_AttributeList_GetMetricRef( const OTF2_AttributeList* attributeList,
00858                                  OTF2_AttributeRef         attribute,
00859                                  OTF2_MetricRef*           metricRef );
00860 
00861 
00873 OTF2_ErrorCode
00874 OTF2_AttributeList_GetCommRef( const OTF2_AttributeList* attributeList,
00875                                OTF2_AttributeRef         attribute,
00876                                OTF2_CommRef*             commRef );
00877 
00878 
00890 OTF2_ErrorCode
00891 OTF2_AttributeList_GetParameterRef( const OTF2_AttributeList* attributeList,
00892                                     OTF2_AttributeRef         attribute,
00893                                     OTF2_ParameterRef*        parameterRef );
00894 
00895 
00907 OTF2_ErrorCode
00908 OTF2_AttributeList_GetRmaWinRef( const OTF2_AttributeList* attributeList,
00909                                  OTF2_AttributeRef         attribute,
00910                                  OTF2_RmaWinRef*           rmaWinRef );
00911 
00912 
00924 OTF2_ErrorCode
00925 OTF2_AttributeList_GetSourceCodeLocationRef( const OTF2_AttributeList*   attributeList,
00926                                              OTF2_AttributeRef           attribute,
00927                                              OTF2_SourceCodeLocationRef* sourceCodeLocationRef );
00928 
00929 
00941 OTF2_ErrorCode
00942 OTF2_AttributeList_GetCallingContextRef( const OTF2_AttributeList* attributeList,
00943                                          OTF2_AttributeRef         attribute,
00944                                          OTF2_CallingContextRef*   callingContextRef );
00945 
00946 
00958 OTF2_ErrorCode
00959 OTF2_AttributeList_GetInterruptGeneratorRef( const OTF2_AttributeList*   attributeList,
00960                                              OTF2_AttributeRef           attribute,
00961                                              OTF2_InterruptGeneratorRef* interruptGeneratorRef );
00962 
00963 
00974 OTF2_ErrorCode
00975 OTF2_AttributeList_GetAttributeByIndex( const OTF2_AttributeList* attributeList,
00976                                         uint32_t                  index,
00977                                         OTF2_AttributeRef*        attribute,
00978                                         OTF2_Type*                type,
00979                                         OTF2_AttributeValue*      attributeValue );
00980 
00981 
00993 OTF2_ErrorCode
00994 OTF2_AttributeList_PopAttribute( OTF2_AttributeList*  attributeList,
00995                                  OTF2_AttributeRef*   attribute,
00996                                  OTF2_Type*           type,
00997                                  OTF2_AttributeValue* attributeValue );
00998 
00999 
01007 uint32_t
01008 OTF2_AttributeList_GetNumberOfElements( const OTF2_AttributeList* attributeList );
01009 
01010 
01011 #ifdef __cplusplus
01012 }
01013 #endif /* __cplusplus */
01014 
01015 
01016 #endif /* !OTF2_ATTRIBUTE_LIST_H */