> On Sept. 20, 2014, 7:22 p.m., Ben Mahler wrote: > > Thanks Joris! > > > > Any reason you want this exposed in the public include/ folder of > > libprocess, as opposed to an internal header inside src/? Don't think we'd > > want this in the public includes. > > Niklas Nielsen wrote: > It seems to be a bit unconsistent whether things have gone in include/ or > not. For example, the socket abstraction is only used by libprocess > internally and is in include/. > The node class ended up there too (my / our fault) - so if we decide to > move the private headers to src/, we need to move that alongside doing a scan > for the headers we only use inside libprocess. > > Joris Van Remoortere wrote: > Hi Ben, > I am refactoring certain classes from process.cpp into the include > directory because my goal is to allow pluggable implementations (modules) of > the event-management abstraction. My thought process is that we should have > the classes required to implement this abstraction available in the public > include dir. Since this is an open source project, it's not impossible for us > to have some of these class declarations / definitions in the src directory, > and the module implementer to be required to build it with the src tree > pulled. > I am in the process of making a branch available as a prototype for > MESOS-1330; which will make it more apparent where I am going. > What are your thoughts on the rules behind the public include dir, and > what requirements we can impose on module implementers? > > Ben Mahler wrote: > For the public include directory, if the abstraction is generally useful > (e.g. Node, Socket is less clearly useful but looks ok) then it's fine to > include these in the public headers. > > `ProcessReference` however, is not something that the library user can > leverage, and it's dangerous to expose: use of it can lead to > ProcessManager::cleanup spinning forever! > > > _My thought process is that we should have the classes required to > implement this abstraction available in the public include dir._ > > Are you interested in applying the same philosophy to the mesos code > base? That would grow the public headers substantially. > > > _Since this is an open source project, it's not impossible for us to > have some of these class declarations / definitions in the src directory, and > the module implementer to be required to build it with the src tree pulled._ > > Seems like a reasonable thing for module implementers IMHO, otherwise we > may have to expose a lot of internals in the public include folder of both > libprocess and mesos.
Thanks for your feedback Ben. I'm fine with requiring module implementers to pull the src; I just did not want to force the issue without a discussion. If everyone else is ok with this then I will keep things in the src dirs. - Joris ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/25868/#review54086 ----------------------------------------------------------- On Sept. 20, 2014, 12:58 a.m., Joris Van Remoortere wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/25868/ > ----------------------------------------------------------- > > (Updated Sept. 20, 2014, 12:58 a.m.) > > > Review request for mesos and Niklas Nielsen. > > > Repository: mesos-git > > > Description > ------- > > Move class ProcessReference out of process.cpp and into its own header. > Part of refactoring process.cpp. > > > Diffs > ----- > > 3rdparty/libprocess/include/Makefile.am 542ae1c > 3rdparty/libprocess/include/process/process_reference.hpp PRE-CREATION > 3rdparty/libprocess/src/process.cpp 8adc809 > > Diff: https://reviews.apache.org/r/25868/diff/ > > > Testing > ------- > > make check in 3rdparty/libprocess > support/mesos-style.py > > > Thanks, > > Joris Van Remoortere > >