/**
 * @author Markus Lehr<markus@malehr.de>
*/

#ifndef CM_INCLUDE_RTSRESULT_H_
#define CM_INCLUDE_RTSRESULT_H_

#include <string>

// #include <boost/python/module.hpp>
// #include <boost/python/def.hpp>
//#include <boost/python/class.hpp>
// #include <boost/ref.hpp>
// #include <boost/python/ptr.hpp>
// #include <boost/python/return_value_policy.hpp>
// #include <boost/python/reference_existing_object.hpp>
// #include <boost/python/call.hpp>
// #include <boost/python/object.hpp>
#include <boost/python/dict.hpp>

using namespace boost::python;

std::string format(const std::string fmt_str, ...)
{
    va_list ap;
    char *fp = NULL;
    va_start(ap, fmt_str);
    vasprintf(&fp, fmt_str.c_str(), ap);
    va_end(ap);
    std::unique_ptr<char[]> formatted(fp);
    
	return std::string(formatted.get());
}


struct RTSResult
{
 
    RTSResult(std::string resCode) : mResCode(resCode){}       

    std::string getResCode() {return mResCode;}
    boost::python::dict const& getProperties() {return mProp;}

private:
   /* data */
    std::string mResCode;
    boost::python::dict mProp;

};


// class RTSResult
// {
// private:
//     /* data */
//     std::string mResCode;

// protected:
//     boost::python::dict mProp;

// public:

//     RTSResult(std::string resCode);       
//     ~RTSResult();

//     std::string getResCode();
//     boost::python::dict const& getProperties();
// };

#endif /* CM_INCLUDE_RTSRESULT_H_ */