src/core/composite-trace-resolver.h
changeset 1420 3feedd3e4f5f
parent 1419 ac2a81821ab5
equal deleted inserted replaced
1419:ac2a81821ab5 1420:3feedd3e4f5f
   118 private:
   118 private:
   119   virtual void Connect (std::string path, CallbackBase const &cb, const TraceContext &context);
   119   virtual void Connect (std::string path, CallbackBase const &cb, const TraceContext &context);
   120   virtual void Disconnect (std::string path, CallbackBase const &cb);
   120   virtual void Disconnect (std::string path, CallbackBase const &cb);
   121   virtual void CollectSources (std::string path, const TraceContext &context, 
   121   virtual void CollectSources (std::string path, const TraceContext &context, 
   122                                SourceCollection *collection);
   122                                SourceCollection *collection);
   123   virtual void ConnectPrinterToAll (std::ostream &os, const TraceContext &context);
   123   virtual void TraceAll (std::ostream &os, const TraceContext &context);
   124   friend class CompositeTraceResolverTest;
   124   friend class CompositeTraceResolverTest;
   125   class ResolveItem 
   125   class ResolveItem 
   126   {
   126   {
   127   public:
   127   public:
   128     virtual ~ResolveItem () {}
   128     virtual ~ResolveItem () {}
   129     virtual void Connect (std::string subpath, const CallbackBase &cb, const TraceContext &context) = 0;
   129     virtual void Connect (std::string subpath, const CallbackBase &cb, const TraceContext &context) = 0;
   130     virtual void Disconnect (std::string subpath, const CallbackBase &cb) = 0;
   130     virtual void Disconnect (std::string subpath, const CallbackBase &cb) = 0;
   131     virtual void CollectSources (std::string path, const TraceContext &context, 
   131     virtual void CollectSources (std::string path, const TraceContext &context, 
   132                                  SourceCollection *collection) = 0;
   132                                  SourceCollection *collection) = 0;
   133     virtual void ConnectPrinterToAll (std::ostream &os, const TraceContext &context) = 0;
   133     virtual void TraceAll (std::ostream &os, const TraceContext &context) = 0;
   134 
   134 
   135     std::string name;
   135     std::string name;
   136     TraceContext context;
   136     TraceContext context;
   137   };
   137   };
   138   typedef std::vector<ResolveItem *> TraceItems;
   138   typedef std::vector<ResolveItem *> TraceItems;
   199       path.append (this->name);
   199       path.append (this->name);
   200       TraceContext ctx = context;
   200       TraceContext ctx = context;
   201       ctx.Union (this->context);
   201       ctx.Union (this->context);
   202       array->CollectSources (path, ctx, collection);
   202       array->CollectSources (path, ctx, collection);
   203     }
   203     }
   204     virtual void ConnectPrinterToAll (std::ostream &os, const TraceContext &context)
   204     virtual void TraceAll (std::ostream &os, const TraceContext &context)
   205     {
   205     {
   206       TraceContext ctx = context;
   206       TraceContext ctx = context;
   207       ctx.Union (this->context);
   207       ctx.Union (this->context);
   208       array->ConnectPrinterToAll (os, ctx);
   208       array->TraceAll (os, ctx);
   209     }
   209     }
   210 
   210 
   211     Ptr<ArrayTraceResolver<INDEX> > array;
   211     Ptr<ArrayTraceResolver<INDEX> > array;
   212   } *item = new ArrayResolveItem ();
   212   } *item = new ArrayResolveItem ();
   213   item->name = name;
   213   item->name = name;