Why is result_code a char *?  Shouldn't it be a std::string or even just an enum value?  What are the set of valid values?