Man Linux: Main Page and Category List

NAME

       TAU_MAPPING_LINK - Creates a mapping link

SYNOPSIS

       C/C++:

       TAU_MAPPING_LINK(FunctionInfo FuncIdVar, unsigned long Key);

DESCRIPTION

       TAU_MAPPING_LINKcreates a link between the object defined in
       TAU_MAPPING_OBJECT (that identifies a statement) and the actual
       higher-level statement that is mapped with TAU_MAPPING. The Key
       argument represents a profile group to which the statement belongs, as
       specified in the TAU_MAPPING macro argument. For the example of array
       statements, this link should be created in the constructor of the class
       that represents the expression.  TAU_MAPPING_LINK should be executed
       before any measurement takes place. It assigns the identifier of the
       statement to the object to which FuncIdVar refers. For example

EXAMPLE

       C/C++ :

       class MyClass {
         public:
           MyClass() { }
           ~MyClass() { }

           void Run(void) {
             TAU_MAPPING_OBJECT(runtimer)
             TAU_MAPPING_LINK(runtimer, (unsigned long) this);
             TAU_MAPPING_PROFILE(runtimer); // For one object
             TAU_PROFILE("MyClass::Run()", " void (void)", TAU_USER1);

             /* ... */
           }
       };

       int main(int argc, char **argv) {
         TAU_PROFILE_INIT(argc, argv);
         TAU_PROFILE("main()", "int (int, char **)", TAU_DEFAULT);
         MyClass x, y, z;
         MyClass a;
         TAU_MAPPING_CREATE("MyClass::Run() for object a", " " ,
                            (TauGroup_t) &a, "TAU_USER", 0);
         TAU_MAPPING_CREATE("MyClass::Run() for object x", " " ,
                            (TauGroup_t) &x, "TAU_USER", 0);
         TAU_PROFILE_SET_NODE(0);
         cout <<"Inside main"<<endl;

         a.Run();
         x.Run();
         y.Run();

SEE ALSO

       TAU_MAPPING_CREATE(3), TAU_MAPPING_OBJECT(3), TAU_MAPPING_PROFILE(3)

                                  08/31/2005