0

I'm trying to better understand the code in ROOT's RDataFrame and the type/class Proxied appears a lot. For example here. It seems likely to be a root specific thing, since it has methods like GetTree. I've downloaded the repo, but I haven't compiled it.

What I've tried;

  • Asking YouCompleteMe to automatically find it.
  • Grepping the dataframe folder for just Proxied. There are a lot of results for this, but none of them are a class definition or a typedef.
  • Grepping the whole repository with grep "class.*Proxied" . -R -I. I thought if it were defined somewhere, that would get it. No results.
  • Grepping the whole repository with grep "typedef.*Proxied" . -R -I, to try to find a typedef in the same manner. No results here either.
  • I also searched the ROOT documentation for Proxied; closest match is Proxy, which appears unrelated.

I could probably try building ROOT, and then see if then see if the the build logs held any secrets, but that seems a bit extreme for just finding out what this thing is. I don't actually need to work on ROOT right now, just understand how RDataFrame handles TChains, for which I need to know what a Proxied is.

What tips for finding declarations/definitions should I have tried here?

Clumsy cat
  • 289
  • 1
  • 12
  • i didnt browse all search results but among the first there was no class called `Proxied` only a template argument of that name https://github.com/root-project/root/search?p=1&q=Proxied. In RDataFrame.cxx I didnt find `Proxied` being mentioned at all – 463035818_is_not_an_ai Dec 07 '22 at 16:11
  • oh you actually also link it yourself. Do you know what a template is? – 463035818_is_not_an_ai Dec 07 '22 at 16:11
  • `RInterface` is just a template. You need to find where it is instantiated then you know what `Proxied` is – 463035818_is_not_an_ai Dec 07 '22 at 16:12
  • It's vaguely familiar... I will go look that up. – Clumsy cat Dec 07 '22 at 16:13
  • 1
    its a basic but advanced C++ topic. Not sure how to say it better ;). Using templates is c++ 101, like eg `std::vector`, writing templates can be arbitrarily advanced. It should be covered in any introductory book https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list – 463035818_is_not_an_ai Dec 07 '22 at 16:15
  • @463035818_is_not_a_number Oh, so actually Proxied is a stand in name for a class that will be chosen when the function is called? Thanks. So the reason I cannot find that is it dosen't exist. – Clumsy cat Dec 07 '22 at 16:15
  • 1
    yes more or less thats what it is – 463035818_is_not_an_ai Dec 07 '22 at 16:16

0 Answers0