\section{rox\_\-soap\_\-server.h File Reference}
\label{rox__soap__server_8h}\index{rox_soap_server.h@{rox\_\-soap\_\-server.h}}
Provide ROX-Filer like SOAP server. 

\subsection*{Data Structures}
\begin{CompactItemize}
\item 
struct {\bf rox\_\-soap\_\-server\_\-actions}
\end{CompactItemize}
\subsection*{Typedefs}
\begin{CompactItemize}
\item 
typedef rox\_\-soap\_\-server {\bf ROXSOAPServer}
\item 
typedef xml\-Node\-Ptr($\ast$) {\bf rox\_\-soap\_\-server\_\-action} ({\bf ROXSOAPServer} $\ast$server, const char $\ast$action\_\-name, GList $\ast$args, gpointer udata)
\item 
typedef {\bf rox\_\-soap\_\-server\_\-actions} {\bf ROXSOAPServer\-Actions}
\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
void {\bf rox\_\-soap\_\-server\_\-init} (void)
\item 
{\bf ROXSOAPServer} $\ast$ {\bf rox\_\-soap\_\-server\_\-new} (const char $\ast$program\_\-name, const char $\ast$ns\_\-url)
\item 
void {\bf rox\_\-soap\_\-server\_\-add\_\-action} ({\bf ROXSOAPServer} $\ast$server, const char $\ast$action\_\-name, const char $\ast$args, const char $\ast$optional\_\-args, {\bf rox\_\-soap\_\-server\_\-action} action, gpointer udata)
\item 
void {\bf rox\_\-soap\_\-server\_\-add\_\-actions} ({\bf ROXSOAPServer} $\ast$server, {\bf ROXSOAPServer\-Actions} $\ast$actions)
\item 
void {\bf rox\_\-soap\_\-server\_\-delete} ({\bf ROXSOAPServer} $\ast$server)
\end{CompactItemize}


\subsection{Detailed Description}
Provide ROX-Filer like SOAP server. 

SOAP allows you to communicate with server programs via the X server. You may implement your applications to function from a single instance no matter how many times they are started, much as ROX-Filer does itself.

\begin{Desc}
\item[Author:]Stephen Watson \end{Desc}
\begin{Desc}
\item[Version:]\begin{Desc}
\item[Id]\doxyref{rox\_\-soap\_\-server.h}{p.}{rox__soap__server_8h},v 1.3 2005/09/10 16:17:45 stephen Exp \end{Desc}
\end{Desc}


\subsection{Typedef Documentation}
\index{rox_soap_server.h@{rox\_\-soap\_\-server.h}!rox_soap_server_action@{rox\_\-soap\_\-server\_\-action}}
\index{rox_soap_server_action@{rox\_\-soap\_\-server\_\-action}!rox_soap_server.h@{rox\_\-soap\_\-server.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef xml\-Node\-Ptr($\ast$) {\bf rox\_\-soap\_\-server\_\-action}({\bf ROXSOAPServer} $\ast$server, const char $\ast$action\_\-name, GList $\ast$args, gpointer udata)}\label{rox__soap__server_8h_a42bd06aa467a4a7ebb033b546dc59bc}


Type of function called when a client request an action via SOAP.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[\mbox{$\leftarrow$} {\em server}]object identifing the server \item[\mbox{$\leftarrow$} {\em action\_\-name}]name of action \item[\mbox{$\leftarrow$} {\em args}]list of arguments in string form, in the order defined in \doxyref{rox\_\-soap\_\-server\_\-add\_\-action()}{p.}{rox__soap__server_8c_70ff0507af4dec3ad4a7aae4c9cb35ca} or \doxyref{ROXSOAPServer\-Actions}{p.}{rox__soap__server_8h_1837ea29e2b8f9f59e01545c284d2fe4}. The required arguments are first, then the optional arguments with {\tt NULL} given for those ommitted. \item[\mbox{$\leftarrow$} {\em udata}]addtional data given in \doxyref{rox\_\-soap\_\-server\_\-add\_\-action()}{p.}{rox__soap__server_8c_70ff0507af4dec3ad4a7aae4c9cb35ca} or \doxyref{ROXSOAPServer\-Actions}{p.}{rox__soap__server_8h_1837ea29e2b8f9f59e01545c284d2fe4}. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]a valid XML SOAP reply node, or {\tt NULL} for no reply \end{Desc}
\index{rox_soap_server.h@{rox\_\-soap\_\-server.h}!ROXSOAPServer@{ROXSOAPServer}}
\index{ROXSOAPServer@{ROXSOAPServer}!rox_soap_server.h@{rox\_\-soap\_\-server.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct rox\_\-soap\_\-server {\bf ROXSOAPServer}}\label{rox__soap__server_8h_2fef1bbda672699ed3bd934ab04b05f9}


Opaque type defining a SOAP server \index{rox_soap_server.h@{rox\_\-soap\_\-server.h}!ROXSOAPServerActions@{ROXSOAPServerActions}}
\index{ROXSOAPServerActions@{ROXSOAPServerActions}!rox_soap_server.h@{rox\_\-soap\_\-server.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf rox\_\-soap\_\-server\_\-actions}  {\bf ROXSOAPServer\-Actions}}\label{rox__soap__server_8h_1837ea29e2b8f9f59e01545c284d2fe4}


Type defining an action. 

\subsection{Function Documentation}
\index{rox_soap_server.h@{rox\_\-soap\_\-server.h}!rox_soap_server_add_action@{rox\_\-soap\_\-server\_\-add\_\-action}}
\index{rox_soap_server_add_action@{rox\_\-soap\_\-server\_\-add\_\-action}!rox_soap_server.h@{rox\_\-soap\_\-server.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void rox\_\-soap\_\-server\_\-add\_\-action ({\bf ROXSOAPServer} $\ast$ {\em server}, const char $\ast$ {\em action\_\-name}, const char $\ast$ {\em args}, const char $\ast$ {\em optional\_\-args}, {\bf rox\_\-soap\_\-server\_\-action} {\em action}, gpointer {\em udata})}\label{rox__soap__server_8h_70ff0507af4dec3ad4a7aae4c9cb35ca}


Add an action to the server. An action is a call that can be made on the server. It can have 0 or more named arguments, some of which may be optional.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[\mbox{$\leftrightarrow$} {\em server}]the server instance. \item[\mbox{$\leftarrow$} {\em action\_\-name}]Name of the action, must be a valid XML element name without a name space. \item[\mbox{$\leftarrow$} {\em args}]comma seperated list of required arguments, in the order they will be presented to the {\em action\/} function. \item[\mbox{$\leftarrow$} {\em optional\_\-args}]comma seperated list of optional arguments, in the order they will bepresented to the {\em action\/} function. \item[\mbox{$\leftarrow$} {\em action}]function to call to process the action \item[\mbox{$\leftarrow$} {\em udata}]addtional data to pass to {\em action\/} \end{description}
\end{Desc}
\index{rox_soap_server.h@{rox\_\-soap\_\-server.h}!rox_soap_server_add_actions@{rox\_\-soap\_\-server\_\-add\_\-actions}}
\index{rox_soap_server_add_actions@{rox\_\-soap\_\-server\_\-add\_\-actions}!rox_soap_server.h@{rox\_\-soap\_\-server.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void rox\_\-soap\_\-server\_\-add\_\-actions ({\bf ROXSOAPServer} $\ast$ {\em server}, {\bf ROXSOAPServer\-Actions} $\ast$ {\em actions})}\label{rox__soap__server_8h_29cdca06a5dd0bd04d172e71ad9a90c1}


Add a number of actions to the server, see \doxyref{rox\_\-soap\_\-server\_\-add\_\-action()}{p.}{rox__soap__server_8c_70ff0507af4dec3ad4a7aae4c9cb35ca}.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[\mbox{$\leftrightarrow$} {\em server}]the server instance. \item[\mbox{$\leftarrow$} {\em actions}]array of actions, terminated by a {\tt NULL} \doxyref{ROXSOAPServer\-Actions.action\_\-name}{p.}{structrox__soap__server__actions_58083187d884c452ca424be381ce4731}. \end{description}
\end{Desc}
\index{rox_soap_server.h@{rox\_\-soap\_\-server.h}!rox_soap_server_delete@{rox\_\-soap\_\-server\_\-delete}}
\index{rox_soap_server_delete@{rox\_\-soap\_\-server\_\-delete}!rox_soap_server.h@{rox\_\-soap\_\-server.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void rox\_\-soap\_\-server\_\-delete ({\bf ROXSOAPServer} $\ast$ {\em server})}\label{rox__soap__server_8h_64e8017048d1e1f3d0ca55bdc82fa872}


Delete the server instance. Its actions can no longer be called.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[\mbox{$\leftrightarrow$} {\em server}]server instance to delete. \end{description}
\end{Desc}
\index{rox_soap_server.h@{rox\_\-soap\_\-server.h}!rox_soap_server_init@{rox\_\-soap\_\-server\_\-init}}
\index{rox_soap_server_init@{rox\_\-soap\_\-server\_\-init}!rox_soap_server.h@{rox\_\-soap\_\-server.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void rox\_\-soap\_\-server\_\-init (void)}\label{rox__soap__server_8h_2fcb791839d0ebee61b53cf82a353b2d}


Initialize the SOAP server system \index{rox_soap_server.h@{rox\_\-soap\_\-server.h}!rox_soap_server_new@{rox\_\-soap\_\-server\_\-new}}
\index{rox_soap_server_new@{rox\_\-soap\_\-server\_\-new}!rox_soap_server.h@{rox\_\-soap\_\-server.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf ROXSOAPServer}$\ast$ rox\_\-soap\_\-server\_\-new (const char $\ast$ {\em program\_\-name}, const char $\ast$ {\em ns\_\-url})}\label{rox__soap__server_8h_4ed273dadbbdf1674a0272702589df5c}


Create and return a new server instance.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[\mbox{$\leftarrow$} {\em program\_\-name}]name of the progam, this is used as an element name in the XML SOAP message \item[\mbox{$\leftarrow$} {\em ns\_\-url}]name space URL for the XML \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]pointer to server instance, free with \doxyref{rox\_\-soap\_\-server\_\-delete()}{p.}{rox__soap__server_8c_64e8017048d1e1f3d0ca55bdc82fa872}. \end{Desc}
