![]() |
1.5.1 (revision 4026)
|
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 */