#include <xmlrpc_client.h>
#include <xmlrpc_server.h>
#include <xmlrpc_server_abyss.h>
#include "Obit.h"
#include "ObitErr.h"
#include "ObitXML.h"
Go to the source code of this file.
Classes | |
| struct | ObitRPC |
| ObitRPC Class structure. More... | |
| struct | ObitRPCClassInfo |
| ClassInfo Structure. More... | |
Defines | |
| #define | ObitRPCUnref(in) ObitUnref (in) |
| Macro to unreference (and possibly destroy) an ObitRPC returns a ObitRPC*. | |
| #define | ObitRPCRef(in) ObitRef (in) |
| Macro to reference (update reference count) an ObitRPC. | |
| #define | ObitRPCIsA(in) ObitIsA (in, ObitRPCGetClass()) |
| Macro to determine if an object is the member of this or a derived class. | |
Typedefs | |
| typedef ObitRPC *(* | ObitRPCCreateClientFP )(gchar *name, ObitErr *err) |
| Typedef for definition of class pointer structure. | |
| typedef ObitRPC *(* | ObitRPCCreateServerFP )(gchar *name, ObitErr *err) |
| Typedef for definition of class pointer structure. | |
Enumerations | |
| enum | obitRPCType { OBIT_RPC_Client = 0, OBIT_RPC_Server } |
| enum for object type. More... | |
| enum | obitRPCRequestType { OBIT_RPC_Request_Continue = 0, OBIT_RPC_Request_Abort, OBIT_RPC_Request_Quit, OBIT_RPC_Request_NoTV, OBIT_RPC_Request_Field, OBIT_RPC_Request_EditWin } |
| enum for request sent from server back to client This list needs to be compatible with #ObitDisplayRequest defined in ObitDisplay.h More... | |
Functions | |
| void | ObitRPCClassInit (void) |
| Public: Class initializer. | |
| ObitRPC * | newObitRPC (gchar *name) |
| Public: Default Constructor. | |
| ObitRPC * | ObitRPCCreateClient (gchar *name, ObitErr *err) |
| Public: Create/initialize client ObitRPC structures. | |
| ObitRPC * | ObitRPCCreateServer (gchar *name, ObitErr *err) |
| Public: Create/initialize server ObitRPC structures. | |
| gconstpointer | ObitRPCGetClass (void) |
| Public: ClassInfo pointer. | |
| ObitXML * | ObitRPCCall (ObitRPC *client, gchar *serverURL, ObitXML *arg, ObitInfoList **status, ObitInfoList **request, ObitErr *err) |
| Public: Send RPC request. | |
| void | ObitRPCAddMethod (ObitRPC *server, gchar *method_name, xmlrpc_method method, gpointer user_data, ObitErr *err) |
| Add method callback to server. | |
| void | ObitRPCServerLoop (ObitRPC *server, gint port, gchar *log_file) |
| Start Server loop. | |
This class is derived from the Obit class. Related functions are in the ObitRPCUtil module.
This class handles Remote Procedure Calls. The implementation is based on xmlrpc which only allows a single client or server handler at a time.
A copy of a pointer to an ObitRPC should always be made using the ObitRPCRef function which updates the reference count in the object. Then whenever freeing an ObitRPC or changing a pointer, the function ObitRPCUnref will decrement the reference count and destroy the object when the reference count hits 0. There is no explicit destructor.
|
|
Macro to determine if an object is the member of this or a derived class. Returns TRUE if a member, else FALSE in = object to reference |
|
|
Macro to reference (update reference count) an ObitRPC. returns a ObitRPC*. in = object to reference |
|
|
Macro to unreference (and possibly destroy) an ObitRPC returns a ObitRPC*. in = object to unreference |
|
|
Typedef for definition of class pointer structure.
|
|
|
Typedef for definition of class pointer structure.
|
|
|
enum for request sent from server back to client This list needs to be compatible with #ObitDisplayRequest defined in ObitDisplay.h
|
|
|
enum for object type. This specifies which known type of RPC object |
|
|
Public: Default Constructor. Initializes class if needed on first call.
|
|
||||||||||||||||||||||||
|
Add method callback to server.
|
|
||||||||||||||||||||||||||||
|
Public: Send RPC request.
|
|
|
Public: Class initializer.
|
|
||||||||||||
|
Public: Create/initialize client ObitRPC structures.
|
|
||||||||||||
|
Public: Create/initialize server ObitRPC structures.
|
|
|
Public: ClassInfo pointer.
|
|
||||||||||||||||
|
Start Server loop.
|
1.3.9.1