13 #ifndef _VT_UNIFY_DEFS_RECS_H_
14 #define _VT_UNIFY_DEFS_RECS_H_
20 #include "vt_inttypes.h"
22 #include "util/hash.h"
38 DEF_REC_TYPE__DefCreator,
39 DEF_REC_TYPE__DefTimerResolution,
40 DEF_REC_TYPE__DefTimeRange,
41 DEF_REC_TYPE__DefProcess,
42 DEF_REC_TYPE__DefProcessGroup,
43 DEF_REC_TYPE__DefProcessGroupAttributes,
44 DEF_REC_TYPE__DefSclFile,
46 DEF_REC_TYPE__DefFileGroup,
47 DEF_REC_TYPE__DefFile,
48 DEF_REC_TYPE__DefFunctionGroup,
49 DEF_REC_TYPE__DefFunction,
50 DEF_REC_TYPE__DefCollOp,
51 DEF_REC_TYPE__DefCounterGroup,
52 DEF_REC_TYPE__DefCounter,
53 DEF_REC_TYPE__DefCounterAssignments,
54 DEF_REC_TYPE__DefKeyValue,
55 DEF_REC_TYPE__DefMarker,
56 DEF_REC_TYPE__DefComment,
72 return a->deftoken < b->deftoken;
78 : dtype( _dtype ), loccpuid( 0 ), deftoken( 0 ) {}
79 DefRec_BaseS(
const DefRecTypeT & _dtype,
const uint32_t & _loccpuid,
80 const uint32_t & _deftoken )
81 : dtype( _dtype ), loccpuid( _loccpuid ), deftoken( _deftoken ) {}
85 virtual VT_MPI_INT getPackSize();
86 virtual void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
87 VT_MPI_INT & bufferPos );
88 virtual void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
89 VT_MPI_INT & bufferPos );
97 return dtype < a.dtype;
119 if( a->type == b->type )
120 return a->deftoken < b->deftoken;
122 return a->type < b->type;
129 TYPE_START_TIME, TYPE_STOP_TIME, TYPE_VT, TYPE_USER,
130 TYPE_USRCOM_SEND, TYPE_USRCOM_RECV, TYPE_UNKNOWN
134 :
DefRec_BaseS( DEF_REC_TYPE__DefComment ), type( TYPE_UNKNOWN ) {}
136 const CommentTypeT & _type,
const std::string & _comment )
137 :
DefRec_BaseS( DEF_REC_TYPE__DefComment, _loccpuid, _orderidx ),
138 type( _type ), comment( _comment ) {}
141 VT_MPI_INT getPackSize();
142 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
143 VT_MPI_INT & bufferPos );
144 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
145 VT_MPI_INT & bufferPos );
152 return comment < a.comment;
154 return type < a.type;
171 creator( _creator ) {}
174 VT_MPI_INT getPackSize();
175 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
176 VT_MPI_INT & bufferPos );
177 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
178 VT_MPI_INT & bufferPos );
192 ticksPerSecond( 0 ) {}
195 ticksPerSecond( _ticksPerSecond ) {}
198 VT_MPI_INT getPackSize();
199 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
200 VT_MPI_INT & bufferPos );
201 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
202 VT_MPI_INT & bufferPos );
205 uint64_t ticksPerSecond;
216 minTime( 0 ), maxTime( 0 ) {}
218 const uint64_t & _maxTime )
219 :
DefRec_BaseS( DEF_REC_TYPE__DefTimeRange, _loccpuid, 0 ),
220 minTime( _minTime ), maxTime( _maxTime ) {}
223 VT_MPI_INT getPackSize();
224 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
225 VT_MPI_INT & bufferPos );
226 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
227 VT_MPI_INT & bufferPos );
248 if( ( a->deftoken & VT_TRACEID_BITMASK ) ==
249 ( b->deftoken & VT_TRACEID_BITMASK ) )
250 return a->deftoken < b->deftoken;
252 return ( a->deftoken & VT_TRACEID_BITMASK ) <
253 ( b->deftoken & VT_TRACEID_BITMASK );
262 const uint32_t & _parent )
263 :
DefRec_BaseS( DEF_REC_TYPE__DefProcess, 0, _deftoken ),
264 name( _name ), parent( _parent ) {}
267 VT_MPI_INT getPackSize();
268 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
269 VT_MPI_INT & bufferPos );
270 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
271 VT_MPI_INT & bufferPos );
277 if( parent == a.parent )
278 return name < a.name;
280 return parent < a.parent;
295 TYPE_ALL, TYPE_NODE, TYPE_MPI_COMM_WORLD, TYPE_MPI_COMM_SELF,
296 TYPE_MPI_COMM_OTHER, TYPE_MPI_GROUP, TYPE_USER_COMM, TYPE_OTHER,
301 :
DefRec_BaseS( DEF_REC_TYPE__DefProcessGroup ), type( TYPE_UNKNOWN ),
302 members_hash( 0 ), nmembers( 0 ), members( 0 ) {}
304 const uint32_t & _deftoken,
const ProcessGroupTypeT & _type,
305 const std::string & _name,
const uint32_t & _nmembers,
306 const uint32_t * _members )
307 :
DefRec_BaseS( DEF_REC_TYPE__DefProcessGroup, _loccpuid, _deftoken ),
308 type( _type ), name( _name ), members_hash( 0 ), nmembers( 0 ),
311 assignMembers( _nmembers, _members, _members + _nmembers );
314 ( type == TYPE_MPI_COMM_WORLD || type == TYPE_MPI_COMM_OTHER ||
315 type == TYPE_MPI_GROUP ) )
318 vt_hash( (
unsigned char*)members,
319 nmembers *
sizeof( uint32_t ), 0 );
323 :
DefRec_BaseS( DEF_REC_TYPE__DefProcessGroup, a.loccpuid, a.deftoken ),
324 type( a.type ), name( a.name ), members_hash( a.members_hash ),
325 nmembers( 0 ), members( 0 )
327 assignMembers( a.nmembers, a.members, a.members + a.nmembers );
335 template <
class InputIterator>
336 void assignMembers( uint32_t n, InputIterator first, InputIterator last )
345 members =
new uint32_t[nmembers];
347 std::copy( first, last, members );
352 VT_MPI_INT getPackSize();
353 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
354 VT_MPI_INT & bufferPos );
355 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
356 VT_MPI_INT & bufferPos );
364 if( nmembers == a.nmembers )
369 memcmp( members, a.members,
370 nmembers *
sizeof( uint32_t ) ) < 0;
374 return name < a.name;
379 return nmembers < a.nmembers;
384 return type < a.type;
388 ProcessGroupTypeT type;
390 uint32_t members_hash;
402 :
DefRec_BaseS( DEF_REC_TYPE__DefProcessGroupAttributes ),
405 const uint32_t & _deftoken,
const uint32_t & _attributes )
406 :
DefRec_BaseS( DEF_REC_TYPE__DefProcessGroupAttributes, _loccpuid,
407 _deftoken ), attributes( _attributes ) {}
410 VT_MPI_INT getPackSize();
411 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
412 VT_MPI_INT & bufferPos );
413 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
414 VT_MPI_INT & bufferPos );
420 return attributes < a.attributes;
435 std::string _filename)
436 :
DefRec_BaseS( DEF_REC_TYPE__DefSclFile, _loccpuid, _deftoken ),
437 filename( _filename ) {}
440 VT_MPI_INT getPackSize();
441 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
442 VT_MPI_INT & bufferPos );
443 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
444 VT_MPI_INT & bufferPos );
450 return filename < a.filename;
453 std::string filename;
464 sclfile( 0 ), sclline( 0 ) {}
465 DefRec_DefSclS(
const uint32_t & _loccpuid,
const uint32_t & _deftoken,
466 const uint32_t & _sclfile,
const uint32_t & _sclline )
467 :
DefRec_BaseS( DEF_REC_TYPE__DefScl, _loccpuid, _deftoken ),
468 sclfile( _sclfile ), sclline( _sclline ) {}
471 VT_MPI_INT getPackSize();
472 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
473 VT_MPI_INT & bufferPos );
474 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
475 VT_MPI_INT & bufferPos );
481 if( sclfile == a.sclfile )
482 return sclline < a.sclline;
484 return sclfile < a.sclfile;
500 const std::string & _name)
501 :
DefRec_BaseS( DEF_REC_TYPE__DefFileGroup, _loccpuid, _deftoken ),
505 VT_MPI_INT getPackSize();
506 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
507 VT_MPI_INT & bufferPos );
508 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
509 VT_MPI_INT & bufferPos );
515 return name < a.name;
530 DefRec_DefFileS(
const uint32_t & _loccpuid,
const uint32_t & _deftoken,
531 const std::string & _name,
const uint32_t & _group )
532 :
DefRec_BaseS( DEF_REC_TYPE__DefFile, _loccpuid, _deftoken ),
533 name( _name ), group( _group ) {}
536 VT_MPI_INT getPackSize();
537 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
538 VT_MPI_INT & bufferPos );
539 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
540 VT_MPI_INT & bufferPos );
546 if( group == a.group )
547 return name < a.name;
549 return group < a.group;
565 const uint32_t & _deftoken,
const std::string & _name )
566 :
DefRec_BaseS( DEF_REC_TYPE__DefFunctionGroup, _loccpuid, _deftoken ),
570 VT_MPI_INT getPackSize();
571 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
572 VT_MPI_INT & bufferPos );
573 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
574 VT_MPI_INT & bufferPos );
580 return name < a.name;
594 group( 0 ), scltoken( 0 ) {}
596 const std::string & _name,
const uint32_t & _group,
597 const uint32_t & _scltoken )
598 :
DefRec_BaseS( DEF_REC_TYPE__DefFunction, _loccpuid, _deftoken ),
599 name( _name ), group( _group ), scltoken( _scltoken ) {}
602 VT_MPI_INT getPackSize();
603 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
604 VT_MPI_INT & bufferPos );
605 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
606 VT_MPI_INT & bufferPos );
612 if( group == a.group )
614 if( scltoken == a.scltoken )
616 return name < a.name;
620 return scltoken < a.scltoken;
625 return group < a.group;
644 const std::string & _name,
const uint32_t & _type)
645 :
DefRec_BaseS( DEF_REC_TYPE__DefCollOp, _loccpuid, _deftoken ),
646 name( _name ), type( _type ) {}
649 VT_MPI_INT getPackSize();
650 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
651 VT_MPI_INT & bufferPos );
652 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
653 VT_MPI_INT & bufferPos );
660 return name < a.name;
662 return type < a.type;
678 const uint32_t & _deftoken,
const std::string & _name)
679 :
DefRec_BaseS( DEF_REC_TYPE__DefCounterGroup, _loccpuid, _deftoken ),
683 VT_MPI_INT getPackSize();
684 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
685 VT_MPI_INT & bufferPos );
686 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
687 VT_MPI_INT & bufferPos );
693 return name < a.name;
707 properties( 0 ), group( 0 ) {}
709 const std::string & _name,
const uint32_t & _properties,
710 const uint32_t & _group,
const std::string & _unit)
711 :
DefRec_BaseS( DEF_REC_TYPE__DefCounter, _loccpuid, _deftoken ),
712 name( _name ), properties( _properties ), group( _group ),
716 VT_MPI_INT getPackSize();
717 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
718 VT_MPI_INT & bufferPos );
719 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
720 VT_MPI_INT & bufferPos );
726 if( properties == a.properties )
728 if( group == a.group )
732 return unit < a.unit;
736 return name < a.name;
741 return group < a.group;
746 return properties < a.properties;
763 :
DefRec_BaseS( DEF_REC_TYPE__DefCounterAssignments ) {}
765 const uint32_t & _counter,
const uint32_t & _group )
766 :
DefRec_BaseS( DEF_REC_TYPE__DefCounterAssignments, _loccpuid, _counter )
768 groups.insert( _group );
771 const uint32_t & _counter,
const std::set<uint32_t> & _groups )
772 :
DefRec_BaseS( DEF_REC_TYPE__DefCounterAssignments, _loccpuid,
773 _counter ), groups( _groups ) {}
776 VT_MPI_INT getPackSize();
777 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
778 VT_MPI_INT & bufferPos );
779 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
780 VT_MPI_INT & bufferPos );
783 std::set<uint32_t> groups;
794 type( OTF_UNKNOWN ) {}
796 const OTF_Type & _type,
const std::string & _name )
797 :
DefRec_BaseS( DEF_REC_TYPE__DefKeyValue, _loccpuid, _deftoken ),
798 type( _type ), name( _name ) {}
801 VT_MPI_INT getPackSize();
802 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
803 VT_MPI_INT & bufferPos );
804 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
805 VT_MPI_INT & bufferPos );
812 return name < a.name;
814 return type < a.type;
835 if( a->type == b->type )
836 return a->deftoken < b->deftoken;
838 return a->type < b->type;
847 const uint32_t & _type,
const std::string & _name)
848 :
DefRec_BaseS( DEF_REC_TYPE__DefMarker, _loccpuid, _deftoken ),
849 type( _type ), name( _name ) {}
852 VT_MPI_INT getPackSize();
853 void pack(
char *& buffer,
const VT_MPI_INT & bufferSize,
854 VT_MPI_INT & bufferPos );
855 void unpack(
char *& buffer,
const VT_MPI_INT & bufferSize,
856 VT_MPI_INT & bufferPos );
863 return name < a.name;
865 return type < a.type;
878 if( a->dtype == DEF_REC_TYPE__DefProcessGroup &&
879 b->dtype == DEF_REC_TYPE__DefProcessGroup )
880 return a->deftoken < b->deftoken;
883 return a->dtype < b->dtype;
886 #endif // _VT_UNIFY_DEFS_RECS_H_
Definition: vt_unify_defs_recs.h:165
Definition: vt_unify_defs_recs.h:673
Definition: vt_unify_defs_recs.h:238
Definition: vt_unify_defs_recs.h:68
Definition: vt_unify_defs_recs.h:525
Main include file for applications using OTF.
Definition: vt_unify_defs_recs.h:830
Definition: vt_unify_defs_recs.h:243
Definition: vt_unify_defs_recs.h:399
Definition: vt_unify_defs_recs.h:460
Definition: vt_unify_defs_recs.h:760
Definition: vt_unify_defs_recs.h:495
Definition: vt_unify_defs_recs.h:63
Definition: vt_unify_defs_recs.h:560
enum OTF_Type_enum OTF_Type
An enum which holds all OTF datatypes that are relevant for OTF_KeyValueList.
Definition: vt_unify_defs_recs.h:212
Definition: vt_unify_defs_recs.h:430
Definition: vt_unify_defs_recs.h:790
Definition: vt_unify_defs_recs.h:291
Definition: vt_unify_defs_recs.h:188
Definition: vt_unify_defs_recs.h:590
Definition: vt_unify_defs_recs.h:703
Definition: vt_unify_defs_recs.h:825
Definition: vt_unify_defs_recs.h:638