src/core/composite-trace-resolver.h
changeset 1354 256446080d34
parent 1353 0dd2acd3418f
child 1355 6289ac826830
equal deleted inserted replaced
1353:0dd2acd3418f 1354:256446080d34
    55   template <typename T>
    55   template <typename T>
    56   void Add (std::string name,
    56   void Add (std::string name,
    57             TraceSource &trace, T const &context);
    57             TraceSource &trace, T const &context);
    58   /**
    58   /**
    59    * \param name name of trace source
    59    * \param name name of trace source
    60    * \param trace a signed variable trace source
       
    61    * \param context the context associated to this trace source
       
    62    *
       
    63    * Add a signed variable trace source in this resolver. 
       
    64    * This trace source will match the name specified during namespace 
       
    65    * resolution. The TraceContext of this trace source will also
       
    66    * be automatically extended to contain the input context.
       
    67    */
       
    68   template <typename T>
       
    69   void Add (std::string name,
       
    70             SVTraceSourceBase &trace, T const &context);
       
    71   /**
       
    72    * \param name name of trace source
       
    73    * \param trace an unsigned variable trace source
       
    74    * \param context the context associated to this trace source
       
    75    *
       
    76    * Add an unsigned variable trace source in this resolver. 
       
    77    * This trace source will match the name specified during namespace 
       
    78    * resolution. The TraceContext of this trace source will also
       
    79    * be automatically extended to contain the input context.
       
    80    */
       
    81   template <typename T>
       
    82   void Add (std::string name,
       
    83             UVTraceSourceBase &trace, T const &context);
       
    84   /**
       
    85    * \param name name of trace source
       
    86    * \param trace a floating-point variable trace source
       
    87    * \param context the context associated to this trace source
       
    88    *
       
    89    * Add a floating-point variable trace source in this resolver. 
       
    90    * This trace source will match the name specified during namespace 
       
    91    * resolution. The TraceContext of this trace source will also
       
    92    * be automatically extended to contain the input context.
       
    93    */
       
    94   template <typename T>
       
    95   void Add (std::string name,
       
    96             FVTraceSourceBase &trace, T const &context);
       
    97   /**
       
    98    * \param name name of trace source
       
    99    * \param trace a callback trace source
    60    * \param trace a callback trace source
   100    *
    61    *
   101    * Add a callback trace source in this resolver. This trace
    62    * Add a callback trace source in this resolver. This trace
   102    * source will match the name specified during namespace 
    63    * source will match the name specified during namespace 
   103    * resolution.
    64    * resolution.
   104    */
    65    */
   105   void Add (std::string name,
    66   void Add (std::string name,
   106             TraceSource &trace);
    67             TraceSource &trace);
   107   /**
       
   108    * \param name name of trace source
       
   109    * \param trace a signed variable trace source
       
   110    *
       
   111    * Add a signed variable trace source in this resolver. 
       
   112    * This trace source will match the name specified during namespace 
       
   113    * resolution.
       
   114    */
       
   115   void Add (std::string name,
       
   116             SVTraceSourceBase &trace);
       
   117   /**
       
   118    * \param name name of trace source
       
   119    * \param trace an unsigned variable trace source
       
   120    *
       
   121    * Add an unsigned variable trace source in this resolver. 
       
   122    * This trace source will match the name specified during namespace 
       
   123    * resolution.
       
   124    */
       
   125   void Add (std::string name,
       
   126             UVTraceSourceBase &trace);
       
   127   /**
       
   128    * \param name name of trace source
       
   129    * \param trace a floating-point variable trace source
       
   130    *
       
   131    * Add a floating-point variable trace source in this resolver. 
       
   132    * This trace source will match the name specified during namespace 
       
   133    * resolution.
       
   134    */
       
   135   void Add (std::string name,
       
   136             FVTraceSourceBase &trace);
       
   137   /**
    68   /**
   138    * \param name name of child trace resolver
    69    * \param name name of child trace resolver
   139    * \param createResolver a trace resolver constructor
    70    * \param createResolver a trace resolver constructor
   140    *
    71    *
   141    * Add a child trace resolver to this resolver. This child
    72    * Add a child trace resolver to this resolver. This child
   194                                       enum Operation op);
   125                                       enum Operation op);
   195   void DoAddChild (std::string name, Ptr<Object> child, const TraceContext &context);
   126   void DoAddChild (std::string name, Ptr<Object> child, const TraceContext &context);
   196   void DoAddSource (std::string name,
   127   void DoAddSource (std::string name,
   197                     TraceSource &trace,
   128                     TraceSource &trace,
   198                     const TraceContext &context);
   129                     const TraceContext &context);
   199   void DoAddSV (std::string name,
       
   200                 SVTraceSourceBase &trace, 
       
   201                 const TraceContext &context);
       
   202   void DoAddUV (std::string name,
       
   203                 UVTraceSourceBase &trace,
       
   204                 const TraceContext &context);
       
   205   void DoAddFV (std::string name,
       
   206                 FVTraceSourceBase &trace,
       
   207                 const TraceContext &context);
       
   208 
       
   209 
   130 
   210   CompositeTraceResolver::TraceItems m_items;
   131   CompositeTraceResolver::TraceItems m_items;
   211   Ptr<TraceResolver> m_parent;
   132   Ptr<TraceResolver> m_parent;
   212 };
   133 };
   213 
   134 
   224                              T const &context)
   145                              T const &context)
   225 {
   146 {
   226   TraceContext ctx;
   147   TraceContext ctx;
   227   ctx.Add (context);
   148   ctx.Add (context);
   228   DoAddSource (name, trace, ctx);  
   149   DoAddSource (name, trace, ctx);  
   229 }
       
   230 
       
   231 template <typename T>
       
   232 void 
       
   233 CompositeTraceResolver::Add (std::string name,
       
   234                              SVTraceSourceBase &trace, T const &context)
       
   235 {
       
   236   TraceContext ctx;
       
   237   ctx.Add (context);
       
   238   DoAddSV (name, trace, ctx);  
       
   239 }
       
   240 template <typename T>
       
   241 void 
       
   242 CompositeTraceResolver::Add (std::string name,
       
   243                              UVTraceSourceBase &trace, T const &context)
       
   244 {
       
   245   TraceContext ctx;
       
   246   ctx.Add (context);
       
   247   DoAddUV (name, trace, ctx);
       
   248 }
       
   249 template <typename T>
       
   250 void 
       
   251 CompositeTraceResolver::Add (std::string name,
       
   252                              FVTraceSourceBase &trace, T const &context)
       
   253 {
       
   254   TraceContext ctx;
       
   255   ctx.Add (context);
       
   256   DoAddFV (name, trace, ctx);
       
   257 }
   150 }
   258 
   151 
   259 template <typename ITERATOR, typename INDEX>
   152 template <typename ITERATOR, typename INDEX>
   260 void 
   153 void 
   261 CompositeTraceResolver::AddArray (std::string name, 
   154 CompositeTraceResolver::AddArray (std::string name,