Idfxt

This pull request is for the sake of conversation, not necessarily with the intent to merge.  yet. 
sure.  great.  that is everyone's dream.  well, to say it plainly, the
previous 2 proposed APIs for this went nowhere.  perhaps they were
targeting the wrong user (one Qt, one std::string based), or perhaps it was
the wrong forum (just the schema team).  in any case, those implemented
ones were built around internal architectures that are unacceptable to E+
team, and have/will not get implemented again on speculation.
I'm all for a clear specification for a new API.  I, personally, found the
cJSON interface to the JSON DOM so consistent, clean, and easy to traverse,
that I'm not inclined to change anything outside of hiding that nasty
pointer and adding a few convenience functions for specific tasks, but my
specific tasks to incorporate into a Qt app, are quite likely to be
different than yours.
Anyway... I just offered up that E+ Input Processor work coming up will
define some of it.  Until I get onto that task, I've little useful idea how
it should look.

On Thu, Dec 18, 2014 at 11:13 AM, Dan Macumber <notifications@github.com>
wrote:
>
> In src/idfxt/JSONDataInterface.h
> <https://github.com/NREL/EnergyPlus/pull/4636#discussion-diff-22051305>:
>
> > +extern "C"
> > +{
> > +#include "../../third_party/cJSON/cJSON.h"
> > +}
> > +
> > +namespace idfx {
> > +
> > +class JSONDataInterface
> > +{
> > +public:
> > +    JSONDataInterface() : JSONDataInterface(""){};
> > +    JSONDataInterface(const JSONDataInterface&) = delete;
> > +    JSONDataInterface(std::string json_schema);
> > +    ~JSONDataInterface();
> > +
> > +    cJSON *getSchemaObject(std::string object_type);
>
> @refaqtor <https://github.com/refaqtor> I agree with you on not adding
> nice features before they are needed. However, I do think we should think
> of this as a library that can be used outside of E+ and there should be a
> thought to what its purpose and API are. I would suggest a Readme.md file
> that says what the purpose of the library is and what functionalities it
> provides. Giving some thought to the use cases of this library (what it
> does and what it does not do) now will be better than letting things grow
> completely organically.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/NREL/EnergyPlus/pull/4636/files#r22051305>.
>