gtsam/wrap/ReturnValue.h

61 lines
1.3 KiB
C
Raw Normal View History

/**
* @file ReturnValue.h
*
* @brief Encapsulates a return value from a method
*
* @date Dec 1, 2011
* @author Alex Cunningham
2012-07-13 06:28:28 +08:00
* @author Richard Roberts
*/
#include "FileWriter.h"
2012-07-13 06:28:28 +08:00
#include "TypeAttributesTable.h"
2014-05-26 01:29:06 +08:00
#include <vector>
#pragma once
namespace wrap {
2014-05-26 02:40:39 +08:00
/**
* Encapsulates return value of a method or function
*/
struct ReturnValue {
2014-05-26 02:40:39 +08:00
/// the different supported return value categories
typedef enum {
2014-05-26 01:29:06 +08:00
CLASS = 1, EIGEN = 2, BASIS = 3, VOID = 4
} return_category;
bool verbose;
bool isPtr1, isPtr2, isPair;
return_category category1, category2;
std::string type1, type2;
std::vector<std::string> namespaces1, namespaces2;
2014-05-26 02:40:39 +08:00
/// Constructor
ReturnValue(bool enable_verbosity = true) :
verbose(enable_verbosity), isPtr1(false), isPtr2(false), isPair(false), category1(
CLASS), category2(CLASS) {
}
typedef enum {
arg1, arg2, pair
} pairing;
std::string return_type(bool add_ptr, pairing p) const;
std::string qualifiedType1(const std::string& delim = "") const;
std::string qualifiedType2(const std::string& delim = "") const;
std::string matlab_returnType() const;
2014-05-26 01:29:06 +08:00
void wrap_result(const std::string& result, FileWriter& file,
const TypeAttributesTable& typeAttributes) const;
void wrapTypeUnwrap(FileWriter& wrapperFile) const;
2012-07-24 02:24:39 +08:00
};
} // \namespace wrap