initial load of upstream version 1.06.32
[xmlrpc-c] / tools / xml-rpc-api2cpp / XmlRpcFunction.hpp
diff --git a/tools/xml-rpc-api2cpp/XmlRpcFunction.hpp b/tools/xml-rpc-api2cpp/XmlRpcFunction.hpp
new file mode 100644 (file)
index 0000000..4999805
--- /dev/null
@@ -0,0 +1,37 @@
+
+#include <string>
+#include <iostream>
+
+using std::string;
+using std::ostream;
+
+class XmlRpcFunction {
+    string mFunctionName;
+    string mMethodName;
+    string mHelp;
+    XmlRpcValue mSynopsis;
+
+public: 
+    XmlRpcFunction(const string& function_name,
+                  const string& method_name,
+                  const string& help,
+                  XmlRpcValue synopsis);
+
+    XmlRpcFunction (const XmlRpcFunction&);
+    XmlRpcFunction& operator= (const XmlRpcFunction&);
+    
+    void printDeclarations (ostream& out);
+    void printDefinitions  (ostream& out, const string& className);
+
+private:
+    void printParameters  (ostream& out, size_t synopsis_index);
+    void printDeclaration (ostream& out, size_t synopsis_index);
+    void printDefinition  (ostream& out,
+                          const string& className,
+                          size_t synopsis_index);
+
+    const DataType& returnType (size_t synopsis_index);
+    size_t parameterCount (size_t synopsis_index);
+    const DataType& parameterType (size_t synopsis_index,
+                                  size_t parameter_index);
+};