| 240 | // ============================================================================= |
| 241 | |
| 242 | json Rpc::methods() const { |
| 243 | json arr = json::array(); |
| 244 | for (auto it = mRegistry.begin(); it != mRegistry.end(); ++it) { |
| 245 | // Format: ["methodName", "returnType", [["param1", "type1"], ["param2", "type2"]], "mode"] |
| 246 | json methodTuple = json::array(); |
| 247 | methodTuple.push_back(it->first.c_str()); // Method name |
| 248 | methodTuple.push_back(it->second.mSchemaGenerator->resultTypeName()); // Return type |
| 249 | methodTuple.push_back(it->second.mSchemaGenerator->params()); // Params array |
| 250 | |
| 251 | // Add mode (sync or async) |
| 252 | const char* modeStr = (it->second.mMode == RpcMode::ASYNC) ? "async" : "sync"; |
| 253 | methodTuple.push_back(modeStr); |
| 254 | |
| 255 | arr.push_back(methodTuple); |
| 256 | } |
| 257 | return arr; |
| 258 | } |
| 259 | |
| 260 | // ============================================================================= |
| 261 | // Rpc::schema() - Returns flat schema |