Mercurial > archived > louis > epitech > zia-api
changeset 0:e0a7028df8bf
Initial commit
author | Zoltan K |
---|---|
date | Fri, 19 Mar 2010 18:29:15 +0100 |
parents | |
children | f405b9538d01 |
files | src/examples/rot13/Buffer.cpp src/examples/rot13/Buffer.hpp src/examples/rot13/Rot13Module.cpp src/examples/rot13/Rot13Module.hpp src/examples/rot13/main.cpp src/include/IConfig.hpp src/include/IModule.hpp src/include/handler/IHandler.hpp src/include/handler/IHttpHandler.hpp src/include/handler/INetworkHandler.hpp src/include/http/IHeader.hpp src/include/http/IRequest.hpp src/include/http/IResponse.hpp src/include/http/ITransaction.hpp src/include/network/IEndPoint.hpp uml/StreamIt_api.dia |
diffstat | 16 files changed, 4575 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/examples/rot13/Buffer.cpp Fri Mar 19 18:29:15 2010 +0100 @@ -0,0 +1,30 @@ +#include <iostream> + +#include "Buffer.hpp" + +Buffer::Buffer(void) + : _rawBuffer() +{ + char *s; + std::streamsize n = 1024; + + this->_rawBuffer.resize(n, 0); + s = &_rawBuffer[0]; + this->setg(s, s, s + n); + this->setp(s, s + n); +} + +Buffer::Buffer(const Buffer & cpy) + : _rawBuffer(cpy._rawBuffer) +{ +} + +int Buffer::sync(void) +{ + std::cout << "Buffer is being sync." << std::endl; +} + +int Buffer::underflow(void) +{ + return (EOF); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/examples/rot13/Buffer.hpp Fri Mar 19 18:29:15 2010 +0100 @@ -0,0 +1,27 @@ +#ifndef _BUFFER_HPP_ +# define _BUFFER_HPP_ + +#include <streambuf> +#include <vector> + +class Buffer : public std::streambuf +{ + +public: + + Buffer(void); + virtual ~Buffer(void) { } + Buffer(const Buffer & cpy); + +protected: + + virtual int sync(void); + virtual int underflow(void); + +private: + + std::vector<char> _rawBuffer; + +}; + +#endif // ! _BUFFER_HPP_
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/examples/rot13/Rot13Module.cpp Fri Mar 19 18:29:15 2010 +0100 @@ -0,0 +1,51 @@ +#include "Rot13Module.hpp" + +char Rot13Char(char c) +{ + if ((c >= ('a' + 13) && c <= 'z') || (c >= ('A' + 13) && c <= 'Z' )) + c -= 13; + else if ((c >= 'a' && c < 'a' + 13) || (c >= 'A' && c < 'A' + 13)) + c += 13; + return (c); +} + +zia::api::handler::EHook Rot13Handler::getHook(void) const +{ + return (zia::api::handler::ResponseBodyModifier); +} + +int Rot13Handler::operator()(zia::api::http::ITransaction &, std::istream &, std::ostream &) +{ + return (0); +} + +int Rot13Handler::operator()(std::istream & is, std::ostream & os) +{ + char c; + + while (!is.eof()) + { + is.get(c); + os << Rot13Char(c); + } + return (0); +} + +ModRot13::ModRot13(void) + : _name("Rot13Module"), + _version("0.0.0.0.1"), + _handlers() +{ + zia::api::handler::IHandler * rot13Handler = new Rot13Handler; + + this->_handlers.push_back(rot13Handler); +} + +const std::string & ModRot13::getName(void) const { return (this->_name); } +const std::string & ModRot13::getVersion(void) const { return (this->_version); } +const std::vector<zia::api::handler::IHandler *> & ModRot13::getHandlers(void) const { return (this->_handlers); } + +bool ModRot13::configure(zia::api::IConfig *) +{ + return (0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/examples/rot13/Rot13Module.hpp Fri Mar 19 18:29:15 2010 +0100 @@ -0,0 +1,57 @@ +#ifndef _ZIA_ROT13_MODULE_HPP_ +# define _ZIA_ROT13_MODULE_HPP_ + +# include <iostream> + +# include "IHttpHandler.hpp" +# include "ITransaction.hpp" +# include "IConfig.hpp" +# include "IModule.hpp" + +char Rot13Char(char c); + +class Rot13Handler : public zia::api::handler::IHttpHandler +{ +public: + virtual ~Rot13Handler(void) { } + + virtual zia::api::handler::EHook getHook(void) const; + +/* +** This is the normal methode the server should call. +** But since the purpose of this example is to show how +** std::iostream and std::streambuf works, we overload the +** functor so we haven't to implement ITransaction. +*/ + virtual int operator()(zia::api::http::ITransaction & transac, + std::istream & is, + std::ostream & os); + virtual int operator()(std::istream & is, + std::ostream & os); + +}; + +class ModRot13 : public zia::api::IModule +{ + +public: + + ModRot13(void); + virtual ~ModRot13(void) { } + + const std::string & getName(void) const; + const std::string & getVersion(void) const; + + const std::vector<zia::api::handler::IHandler *> & getHandlers(void) const; + + bool configure(zia::api::IConfig *); + +private: + std::string _name; + std::string _version; + std::vector<zia::api::handler::IHandler *> _handlers; + +}; + +#endif /* ! _ZIA_ROT13_MODULE_HPP_ */ +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/examples/rot13/main.cpp Fri Mar 19 18:29:15 2010 +0100 @@ -0,0 +1,57 @@ +#include <iostream> +#include <vector> + +#include "Rot13Module.hpp" +#include "Buffer.hpp" + +void process_stream(std::istream & is, std::ostream & os) +{ + ModRot13 module; + std::vector<zia::api::handler::IHandler *> handlers = module.getHandlers(); + + std::cout << "Running: " << module.getName() << " " << module.getVersion() << std::endl; + + if (!handlers.empty() && handlers[0]->getHook() == zia::api::handler::ResponseBodyModifier) + { + /* + ** We should cast to zia::api::handler::IHttpHandler, but to call the functor + ** we would need to implement zia::api::http::ITransaction, which isn't the purpose of this example + */ + Rot13Handler * bodyHandler = dynamic_cast<Rot13Handler *>(handlers[0]); + + if (bodyHandler != NULL) + (*bodyHandler)(is, os); + } +} + +void dump_stream(std::istream & is) +{ + char c; + + while (!is.eof()) + { + is.get(c); + std::cout << c; + } + std::cout << "---" << std::endl; +} + +int main(void) +{ + Buffer buffer1; + Buffer buffer2; + std::ostream os(NULL); + std::istream is(NULL); + + os.rdbuf(&buffer1); + os << "This is an example for the StreamIt api !" << std::endl; + + is.rdbuf(&buffer1); + os.rdbuf(&buffer2); + process_stream(is, os); + is.rdbuf(&buffer2); + dump_stream(is); + std::cout << "The correct rot13 is: " << std::endl + << "Guvf vf na rknzcyr sbe gur FgernzVg ncv !" << std::endl; + return (0); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/include/IConfig.hpp Fri Mar 19 18:29:15 2010 +0100 @@ -0,0 +1,44 @@ +#ifndef __ZIA_API_ICONFIG_HPP__ +# define __ZIA_API_ICONFIG_HPP__ + +# include <map> +# include <string> + +namespace zia +{ + +namespace api +{ + +/** + * @brief this class represent the interface that the configurtion handler + * has to respect to interact with module. + */ +class IConfig +{ + +public: + typedef std::map<std::string, std::string> ValueMap; + +public: + virtual ~IConfig(void) { } + + /** + * @brief Get the configuration entries + * + * for the moment we returned an map of strings. + * We will see if more complex data structure will be required + * + * @return the map of key/value found in configuration file. + */ + virtual const ValueMap & getEntries(void) const = 0; + + +}; + +} + +} + +#endif /* ! __ZIA_API_ICONFIG_HPP__ */ +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/include/IModule.hpp Fri Mar 19 18:29:15 2010 +0100 @@ -0,0 +1,74 @@ +#ifndef __ZIA_API_IMODULE_HPP__ +# define __ZIA_API_IMODULE_HPP__ + +# include <string> +# include <vector> + +# include "ITransaction.hpp" +# include "IEndPoint.hpp" +# include "IConfig.hpp" + +namespace zia +{ + +namespace api +{ + +/** + * @brief this class represent a Module + * + * it provides basic method to identify the module. + */ +class IModule +{ + +public: + + virtual ~IModule(void) { } + + /** + * @brief Get the module name + * @return The module name + */ + virtual const std::string & getName(void) const = 0; + + /** + * @brief Get module version + * @return The module version + */ + virtual const std::string & getVersion(void) const = 0; + + + /** + * @brief Get the list of module's hook + * @return a vector of IHandler + * @see IHandler + */ + virtual const std::vector<handler::IHandler *> & getHandlers(void) const = 0; + + + /** + * @brief Update module configuration + * @return true if the configuration was successfully loaded + * if the configure module return false, it will be unload. + */ + virtual bool configure(IConfig *) = 0; + +}; + +extern "C" +{ + /** + * @brief entry point of module + * @return The module instance + * @see IModule + */ + IModule * ziaGetModuleInstance(void); +} + +} + +} + +#endif /* ! __ZIA_API_IMODULE_HPP__ */ +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/include/handler/IHandler.hpp Fri Mar 19 18:29:15 2010 +0100 @@ -0,0 +1,55 @@ +#ifndef __ZIA_API_IHANDLER_HPP_ +# define __ZIA_API_IHANDLER_HPP_ + +# include "ITransaction.hpp" + +namespace zia +{ + +namespace api +{ + +namespace handler +{ + +/** + * @brief enum which represent connection point in the server + */ +enum EHook +{ + AcceptConnection, /**<Used to change the accept function */ + Reader, /**<Used to change the read function */ + RequestHeaderModifier, /**<Hook to modify the request's header */ + RequestBodyModifier, /**<Hook to modify the request's body */ + ResponseProcessor, /**<Hook for content generation */ + ResponseHeaderModifier, /**<Hook to modify the response's header */ + ResponseBodyModifier, /**<Hook to modify the response's body */ + Writer, /**<Used to change the write function */ + OnConnectionClosed /**<Hook when connection is closed */ +}; + +/** + * @brief This class represent the interface which all handler has to respect + */ +class IHandler +{ +public: + + virtual ~IHandler(void) { } + + /** + * @brief Get where the hook has to be called + * @return EHook which represent the location of where the hook should be added + */ + virtual EHook getHook(void) const = 0; + + +}; + +} + +} + +} + +#endif /* ! __ZIA_API_IHANDLER_HPP_ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/include/handler/IHttpHandler.hpp Fri Mar 19 18:29:15 2010 +0100 @@ -0,0 +1,42 @@ +#ifndef __ZIA_API_HANDLER_INETWORKHANDLER_HPP__ +# define __ZIA_API_HANDLER_INETWORKHANDLER_HPP__ + +# include <iostream> + +# include "ITransaction.hpp" +# include "IHandler.hpp" + +namespace zia +{ + +namespace api +{ + +namespace handler +{ + +class IHttpHandler : public IHandler +{ +public: + + virtual ~IHttpHandler(void) { } + + /** + * @brief method called by the server. + * @param [in] transac the transation associated with streams. + * @param [in] in the input stream + * @param [in] out the output stream + * @return an integer TODO define an enum XXX + * @see ITransaction + */ + virtual int operator()(zia::api::http::ITransaction & transac, std::istream & is, std::ostream & os) = 0; + +}; + +} + +} + +} + +#endif /* ! __ZIA_API_HANDLER_INETWORKHANDLER_HPP__ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/include/handler/INetworkHandler.hpp Fri Mar 19 18:29:15 2010 +0100 @@ -0,0 +1,32 @@ +#ifndef __ZIA_API_HANDLER_INETWORKHANDLER_HPP__ +# define __ZIA_API_HANDLER_INETWORKHANDLER_HPP__ + +# include <ios> + +# include "IEndPoint.hpp" +# include "ITransaction.hpp" + +namespace zia +{ + +namespace api +{ + +namespace handler +{ + +class INetworkHandler +{ +public: + + virtual int operator()(IEndPoint & endpoint, std::ios & stream) = 0; + +}; + +} + +} + +} + +#endif /* ! __ZIA_API_HANDLER_INETWORKHANDLER_HPP__ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/include/http/IHeader.hpp Fri Mar 19 18:29:15 2010 +0100 @@ -0,0 +1,70 @@ + +#ifndef __ZIA_API_IHEADER_HPP__ +# define __ZIA_API_IHEADER_HPP__ + +# include <string> +# include <map> + +namespace zia +{ + +namespace api +{ + +namespace http +{ +/** + * @brief This class provides simple way to interact with HTTP header. + */ +class IHeader +{ + typedef std::string Key; + typedef std::string Value; + typedef std::map<Key, Value> Map; + +public: + + virtual ~IHeader(void) { } + + /** + * @brief Get value associated with a key + * @param [in] k the key + * @return the value associated with the key + * if there is no value for the given key, an empty string + * is returned. + */ + + virtual const Value & getValue(const Key & k) const = 0; + + + /** + * @brief Get a reference on the value associated with a key + * @param [in] k the key + * @return the reference value associated with the key + * if there is no value for the given key, a reference on empty string + * is returned. + */ + + virtual Value & value(const Key & k) = 0; + + /** + * @brief operator overloading to facilitate header access. + * @see IHeader::getValue + */ + virtual const Value & operator[](const Key & k) const = 0; + + /** + * @brief operator overloading to facilitate header access. + * @see IHeader::value + */ + virtual Value & operator[](const Key & k) = 0; +}; + +} + +} + +} + +#endif /* ! __ZIA_API_IHEADER_HPP__ */ +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/include/http/IRequest.hpp Fri Mar 19 18:29:15 2010 +0100 @@ -0,0 +1,84 @@ +#ifndef __ZIA_API_REQUEST_HPP__ +# define __ZIA_API_REQUEST_HPP__ + +#include <string> + +#include "IHeader.hpp" + +namespace zia +{ + +namespace api +{ + +namespace http +{ +/** + * @brief This class represent the request received + * @see IHeader + * @see IResponse + */ +class IRequest +{ + +public: + + virtual ~IRequest(void) { } + + /** + * @brief Get method used + * @return the name of method + */ + virtual const std::string & getMethod(void) const = 0; + virtual void setMethod(const std::string &) = 0; + + /** + * @brief get the uri requested + * @return the URI + */ + virtual const std::string & getUri(void) const = 0; + + /** + * @brief set the uri requested + * @param [in] uri the new uri + */ + virtual void setUri(const std::string & uri) = 0; + + /** + * @brief get the HTTP version + * + * it has to be like: '1.1', '1.0' ... + * + */ + virtual const std::string & getVersion(void) const = 0; + + /** + * @brief Set the HTTP version + * @param v the HTTP version to set + * it has to be like: 'X.X' where X is a digit + */ + virtual void setVersion(const std::string & v) = 0; + + /** + * @brief Get HTTP header + * @return the http header + * @see IHeader + */ + virtual const IHeader & getHeaders(void) const = 0; + + /** + * @brief Get HTTP header + * @return the http header + * @see IHeader + */ + virtual IHeader & getHeaders(void) = 0; + +}; + +} + +} + +} + +#endif /* ! __ZIA_API_REQUEST_HPP__ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/include/http/IResponse.hpp Fri Mar 19 18:29:15 2010 +0100 @@ -0,0 +1,91 @@ +#ifndef __ZIA_API_IRESPONSE_HPP__ +# define __ZIA_API_IRESPONSE_HPP__ + +# include "IHeader.hpp" + +namespace zia +{ + +namespace api +{ +namespace http +{ + +/** + * @brief this class represent a HTTP response. It provides some function + * to modify the header and the response line. + * @see IHeader + * @see IRequest + */ +class IResponse +{ + +public: + typedef int StatusCode; + +public: + virtual ~IResponse(void) { } + + /** + * @brief Get the status code of the response + * @return the status code, 0 if it is unset + * + * 'HTTP/1.1 200 OK' -> the '200' in string + */ + virtual StatusCode getStatusCode(void) const = 0; + + /** + * @brief Get the status message + * @return the status message + * + * 'HTTP/1.1 200 OK' -> the 'OK' in string + */ + virtual const std::string & getStatusMessage(void) const = 0; + + /** + * @brief get the version of HTTP in response + * @return the HTTP version + * + * 'HTTP/1.1 200 OK' -> the '1.1' in string + */ + virtual const std::string & getVersion(void) const = 0; + + /** + * @brief set the status code + * @param [in] code the status code to set + * @see IResponse::getStatusCode + */ + virtual void setStatusCode(StatusCode code) = 0; + + /** + * @brief Set the status message + * @param [in] msg the message to set + * @see IResponse::getStatusMessage + */ + virtual void setStatusMessage(const std::string & msg) = 0; + + /** + * @brief set the HTTP version + * @param [in] v the HTTP version to set + * @see IResponse::getVersion + */ + virtual void setVersion(const std::string &) = 0; + + /** + * @brief get HTTP header associated with the + * response + * @return the http headers + * @see IHeader + */ + virtual IHeader & getHeaders(void) const = 0; + +}; + +} + +} + +} + +#endif /* ! __ZIA_API_IRESPONSE_HPP__ */ +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/include/http/ITransaction.hpp Fri Mar 19 18:29:15 2010 +0100 @@ -0,0 +1,92 @@ +#ifndef __ZIA_API_TRANSACTION_HPP__ +# define __ZIA_API_TRANSACTION_HPP__ + +# include "IRequest.hpp" +# include "IResponse.hpp" +# include "IEndPoint.hpp" + +namespace zia +{ + +namespace api +{ + +namespace http +{ + +/** + * @brief This class provide a way to get all informations related + * to the request, and the response. + * + * Even if response is always available, it should not be modify in + * RequestModifier* handler. + * + * We do not provide a different interface to avoid too much useless class + * and it can be avoided with good practice + * + */ +class ITransaction +{ + +public: + virtual ~ITransaction(void) { } + + /** + * @brief Get the request received. + * @return the request + * @see IRequest + */ + virtual const IRequest & getRequest(void) const = 0; + + /** + * @brief Get the response that will be sent + * @return the response + * @see IResponse + * @remarks This should not be used by RequestHeaderModifier and RequestBodyModifier + * @see RequestHeaderModifier, RequestHeaderModifier, IResponse + */ + virtual const IResponse & getResponse(void) const = 0; + + /** + * @brief Get client endpoint to know from where he is connected + * @return the client connection point + * @see network::IEndPoint + */ + virtual const network::IEndPoint & getClientEndPoint(void) const = 0; + + /** + * @brief Get on what server the client is connected + * @return the server connection point + * @see network::IEndPoint + * @remarks This can be used to have a module adapted to different vhost + */ + virtual const network::IEndPoint & getServerEndPoint(void) const = 0; + + /** + * @brief Get the request received. + * @return the request + * @see IRequest + */ + virtual IRequest & getRequest(void) = 0; + + /** + * @brief Get the response that will be sent + * @return the response + * @remarks This should not be used by RequestHeaderModifier and RequestBodyModifier + * @see IResponse + * @see handler::EHook + */ + virtual IResponse & getResponse(void) = 0; + + virtual network::IEndPoint & getClientEndPoint(void) = 0; + virtual network::IEndPoint & getServerEndPoint(void) = 0; + +}; + +} + +} + +} + +#endif /* ! __ZIA_API_TRANSACTION_HPP__ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/include/network/IEndPoint.hpp Fri Mar 19 18:29:15 2010 +0100 @@ -0,0 +1,50 @@ +#ifndef __ZIA_API_IENDPOINT_HPP_ +# define __ZIA_API_IENDPOINT_HPP_ + +namespace zia +{ + +namespace api +{ + +namespace network +{ + +/** + * @brief This class represent a connection point. + * + */ +class IEndPoint +{ + +public: + typedef int Ip; + typedef unsigned short Port; + typedef int Socket; + +public: + /** + * @brief Get on wich port socket is connected + * @return the port + */ + virtual Port getPort(void) const = 0; + + + virtual const Ip & getIp(void) const = 0; + + + /** + * @brief Get the socket associated with the endpoint + * @return the socket + */ + virtual Socket getSocket(void) const = 0; + +}; + +} + +} + +} + +#endif /* ! __ZIA_API_IENDPOINT_HPP_ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uml/StreamIt_api.dia Fri Mar 19 18:29:15 2010 +0100 @@ -0,0 +1,3719 @@ +<?xml version="1.0" encoding="UTF-8"?> +<dia:diagram xmlns:dia="http://www.lysator.liu.se/~alla/dia/"> + <dia:diagramdata> + <dia:attribute name="background"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="pagebreak"> + <dia:color val="#000099"/> + </dia:attribute> + <dia:attribute name="paper"> + <dia:composite type="paper"> + <dia:attribute name="name"> + <dia:string>#A4#</dia:string> + </dia:attribute> + <dia:attribute name="tmargin"> + <dia:real val="2.8222000598907471"/> + </dia:attribute> + <dia:attribute name="bmargin"> + <dia:real val="2.8222000598907471"/> + </dia:attribute> + <dia:attribute name="lmargin"> + <dia:real val="2.8222000598907471"/> + </dia:attribute> + <dia:attribute name="rmargin"> + <dia:real val="2.8222000598907471"/> + </dia:attribute> + <dia:attribute name="is_portrait"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="scaling"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="fitto"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="grid"> + <dia:composite type="grid"> + <dia:attribute name="width_x"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="width_y"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="visible_x"> + <dia:int val="1"/> + </dia:attribute> + <dia:attribute name="visible_y"> + <dia:int val="1"/> + </dia:attribute> + <dia:composite type="color"/> + </dia:composite> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#d8e5e5"/> + </dia:attribute> + <dia:attribute name="guides"> + <dia:composite type="guides"> + <dia:attribute name="hguides"/> + <dia:attribute name="vguides"/> + </dia:composite> + </dia:attribute> + </dia:diagramdata> + <dia:layer name="Background" visible="true" active="true"> + <dia:object type="UML - LargePackage" version="0" id="O0"> + <dia:attribute name="obj_pos"> + <dia:point val="2.85,-10.1"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="2.8,-11.95;77.625,47.0094"/> + </dia:attribute> + <dia:attribute name="meta"> + <dia:composite type="dict"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="2.85,-10.1"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="74.725000000000023"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="57.059364149004011"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.10000000149011612"/> + </dia:attribute> + <dia:attribute name="line_colour"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="fill_colour"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="text_colour"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#namespace#</dia:string> + </dia:attribute> + <dia:attribute name="name"> + <dia:string>#zia#</dia:string> + </dia:attribute> + </dia:object> + <dia:object type="UML - LargePackage" version="0" id="O1"> + <dia:attribute name="obj_pos"> + <dia:point val="3.9,-6.66248"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="3.85,-8.51248;75.825,44.6969"/> + </dia:attribute> + <dia:attribute name="meta"> + <dia:composite type="dict"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="3.9,-6.66248"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="71.875000000000014"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="51.309364234685688"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.10000000149011612"/> + </dia:attribute> + <dia:attribute name="line_colour"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="fill_colour"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="text_colour"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#namespace#</dia:string> + </dia:attribute> + <dia:attribute name="name"> + <dia:string>#api#</dia:string> + </dia:attribute> + <dia:childnode parent="O0"/> + </dia:object> + <dia:object type="UML - Class" version="0" id="O2"> + <dia:attribute name="obj_pos"> + <dia:point val="44.925,-3.6375"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="44.875,-3.6875;67.035,2.0125"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="44.925,-3.6375"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="22.059999999999999"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="5.5999999999999996"/> + </dia:attribute> + <dia:attribute name="name"> + <dia:string>#IModule#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="suppress_attributes"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="suppress_operations"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_attributes"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="visible_comments"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="wrap_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="wrap_after_char"> + <dia:int val="40"/> + </dia:attribute> + <dia:attribute name="comment_line_length"> + <dia:int val="17"/> + </dia:attribute> + <dia:attribute name="comment_tagging"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.10000000000000001"/> + </dia:attribute> + <dia:attribute name="line_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="fill_color"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="text_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="normal_font"> + <dia:font family="monospace" style="0" name="Courier"/> + </dia:attribute> + <dia:attribute name="abstract_font"> + <dia:font family="monospace" style="88" name="Courier-BoldOblique"/> + </dia:attribute> + <dia:attribute name="polymorphic_font"> + <dia:font family="monospace" style="8" name="Courier-Oblique"/> + </dia:attribute> + <dia:attribute name="classname_font"> + <dia:font family="sans" style="80" name="Helvetica-Bold"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font"> + <dia:font family="sans" style="88" name="Helvetica-BoldOblique"/> + </dia:attribute> + <dia:attribute name="comment_font"> + <dia:font family="sans" style="8" name="Helvetica-Oblique"/> + </dia:attribute> + <dia:attribute name="normal_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="polymorphic_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="abstract_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="comment_font_height"> + <dia:real val="0.69999999999999996"/> + </dia:attribute> + <dia:attribute name="attributes"/> + <dia:attribute name="operations"> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#~IModule#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#dtor#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="1"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getName#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const std::string &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getVersion#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const std::string &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getHandlers#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const std::vector<IHander *> &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#configure#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#int#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"> + <dia:composite type="umlparameter"> + <dia:attribute name="name"> + <dia:string>#params#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#IConfig *#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="kind"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="template"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="templates"/> + <dia:childnode parent="O1"/> + </dia:object> + <dia:object type="UML - LargePackage" version="0" id="O3"> + <dia:attribute name="obj_pos"> + <dia:point val="5.05,19.65"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="5,17.8;53.625,43.075"/> + </dia:attribute> + <dia:attribute name="meta"> + <dia:composite type="dict"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="5.05,19.65"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="48.52500000000002"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="23.374999999999993"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.10000000149011612"/> + </dia:attribute> + <dia:attribute name="line_colour"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="fill_colour"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="text_colour"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#namespace#</dia:string> + </dia:attribute> + <dia:attribute name="name"> + <dia:string>#http#</dia:string> + </dia:attribute> + <dia:childnode parent="O1"/> + </dia:object> + <dia:object type="UML - Class" version="0" id="O4"> + <dia:attribute name="obj_pos"> + <dia:point val="6.35,21"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="6.3,20.95;27.69,30.85"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="6.35,21"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="21.289999999999999"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="9.8000000000000007"/> + </dia:attribute> + <dia:attribute name="name"> + <dia:string>#IHeader#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="suppress_attributes"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="suppress_operations"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_attributes"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="visible_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="visible_comments"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="wrap_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="wrap_after_char"> + <dia:int val="40"/> + </dia:attribute> + <dia:attribute name="comment_line_length"> + <dia:int val="17"/> + </dia:attribute> + <dia:attribute name="comment_tagging"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.10000000000000001"/> + </dia:attribute> + <dia:attribute name="line_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="fill_color"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="text_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="normal_font"> + <dia:font family="monospace" style="0" name="Courier"/> + </dia:attribute> + <dia:attribute name="abstract_font"> + <dia:font family="monospace" style="88" name="Courier-BoldOblique"/> + </dia:attribute> + <dia:attribute name="polymorphic_font"> + <dia:font family="monospace" style="8" name="Courier-Oblique"/> + </dia:attribute> + <dia:attribute name="classname_font"> + <dia:font family="sans" style="80" name="Helvetica-Bold"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font"> + <dia:font family="sans" style="88" name="Helvetica-BoldOblique"/> + </dia:attribute> + <dia:attribute name="comment_font"> + <dia:font family="sans" style="8" name="Helvetica-Oblique"/> + </dia:attribute> + <dia:attribute name="normal_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="polymorphic_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="abstract_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="comment_font_height"> + <dia:real val="0.69999999999999996"/> + </dia:attribute> + <dia:attribute name="attributes"> + <dia:composite type="umlattribute"> + <dia:attribute name="name"> + <dia:string>#Key#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#typedef#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>#std::string#</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + <dia:composite type="umlattribute"> + <dia:attribute name="name"> + <dia:string>#Value#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#typedef#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>#std::string#</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + <dia:composite type="umlattribute"> + <dia:attribute name="name"> + <dia:string>#Map#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#typedef#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>#std::map<Key, Value>#</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="operations"> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#~IHeader#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#dtor#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="1"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getValue#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const Value &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"> + <dia:composite type="umlparameter"> + <dia:attribute name="name"> + <dia:string>#key#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const Key &#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="kind"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getValue#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#Value &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"> + <dia:composite type="umlparameter"> + <dia:attribute name="name"> + <dia:string>#key#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const Key &#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="kind"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#operator[]#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const Value#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"> + <dia:composite type="umlparameter"> + <dia:attribute name="name"> + <dia:string>#key#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const Key &#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="kind"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#operator[]#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#Value &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"> + <dia:composite type="umlparameter"> + <dia:attribute name="name"> + <dia:string>#key#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const Key &#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="kind"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getHeaders#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const Map &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getHeaders#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#Map &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + </dia:attribute> + <dia:attribute name="template"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="templates"/> + <dia:childnode parent="O3"/> + </dia:object> + <dia:object type="UML - Class" version="0" id="O5"> + <dia:attribute name="obj_pos"> + <dia:point val="6.35,32"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="6.3,31.95;25.765,40.85"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="6.35,32"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="19.365000000000002"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="8.7999999999999989"/> + </dia:attribute> + <dia:attribute name="name"> + <dia:string>#IRequest#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="suppress_attributes"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="suppress_operations"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_attributes"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="visible_comments"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="wrap_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="wrap_after_char"> + <dia:int val="40"/> + </dia:attribute> + <dia:attribute name="comment_line_length"> + <dia:int val="17"/> + </dia:attribute> + <dia:attribute name="comment_tagging"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.10000000000000001"/> + </dia:attribute> + <dia:attribute name="line_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="fill_color"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="text_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="normal_font"> + <dia:font family="monospace" style="0" name="Courier"/> + </dia:attribute> + <dia:attribute name="abstract_font"> + <dia:font family="monospace" style="88" name="Courier-BoldOblique"/> + </dia:attribute> + <dia:attribute name="polymorphic_font"> + <dia:font family="monospace" style="8" name="Courier-Oblique"/> + </dia:attribute> + <dia:attribute name="classname_font"> + <dia:font family="sans" style="80" name="Helvetica-Bold"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font"> + <dia:font family="sans" style="88" name="Helvetica-BoldOblique"/> + </dia:attribute> + <dia:attribute name="comment_font"> + <dia:font family="sans" style="8" name="Helvetica-Oblique"/> + </dia:attribute> + <dia:attribute name="normal_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="polymorphic_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="abstract_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="comment_font_height"> + <dia:real val="0.69999999999999996"/> + </dia:attribute> + <dia:attribute name="attributes"/> + <dia:attribute name="operations"> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#~IRequest#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#dtor#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="1"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getMethod#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const std::string &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#setMethod#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#void#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"> + <dia:composite type="umlparameter"> + <dia:attribute name="name"> + <dia:string>#method#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const std::string &#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="kind"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getUri#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const std::string &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#setUri#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#void#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"> + <dia:composite type="umlparameter"> + <dia:attribute name="name"> + <dia:string>#uri#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const std::string &#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="kind"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getVersion#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const std::string &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#setVersion#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#void#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"> + <dia:composite type="umlparameter"> + <dia:attribute name="name"> + <dia:string>#version#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const std::string &#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="kind"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getHeaders#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const IHeaders &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getHeaders#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#IHttpHeader &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + </dia:attribute> + <dia:attribute name="template"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="templates"/> + <dia:childnode parent="O3"/> + </dia:object> + <dia:object type="UML - Class" version="0" id="O6"> + <dia:attribute name="obj_pos"> + <dia:point val="26.9,32"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="26.85,31.95;48.625,41.05"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="26.9,32"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="21.675000000000001"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="9"/> + </dia:attribute> + <dia:attribute name="name"> + <dia:string>#IResponse#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="suppress_attributes"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="suppress_operations"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_attributes"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="visible_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="visible_comments"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="wrap_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="wrap_after_char"> + <dia:int val="40"/> + </dia:attribute> + <dia:attribute name="comment_line_length"> + <dia:int val="17"/> + </dia:attribute> + <dia:attribute name="comment_tagging"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.10000000000000001"/> + </dia:attribute> + <dia:attribute name="line_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="fill_color"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="text_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="normal_font"> + <dia:font family="monospace" style="0" name="Courier"/> + </dia:attribute> + <dia:attribute name="abstract_font"> + <dia:font family="monospace" style="88" name="Courier-BoldOblique"/> + </dia:attribute> + <dia:attribute name="polymorphic_font"> + <dia:font family="monospace" style="8" name="Courier-Oblique"/> + </dia:attribute> + <dia:attribute name="classname_font"> + <dia:font family="sans" style="80" name="Helvetica-Bold"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font"> + <dia:font family="sans" style="88" name="Helvetica-BoldOblique"/> + </dia:attribute> + <dia:attribute name="comment_font"> + <dia:font family="sans" style="8" name="Helvetica-Oblique"/> + </dia:attribute> + <dia:attribute name="normal_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="polymorphic_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="abstract_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="comment_font_height"> + <dia:real val="0.69999999999999996"/> + </dia:attribute> + <dia:attribute name="attributes"> + <dia:composite type="umlattribute"> + <dia:attribute name="name"> + <dia:string>#StatusCode#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#typedef#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>#int#</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="operations"> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#~IResponse#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#dtor#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getStatusCode#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#StatusCode#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getStatusMessage#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const std::string &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getVersion#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const std::string &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#setStatusCode#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#void#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"> + <dia:composite type="umlparameter"> + <dia:attribute name="name"> + <dia:string>#statusCode#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#StatusCode#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="kind"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#setStatusMessage#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#void#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"> + <dia:composite type="umlparameter"> + <dia:attribute name="name"> + <dia:string>#message#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const std::string &#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="kind"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#setVersion#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#void#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"> + <dia:composite type="umlparameter"> + <dia:attribute name="name"> + <dia:string>#version#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const std::string &#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="kind"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getHeaders#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#IHttpHeader &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + </dia:attribute> + <dia:attribute name="template"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="templates"/> + <dia:childnode parent="O3"/> + </dia:object> + <dia:object type="UML - Class" version="0" id="O7"> + <dia:attribute name="obj_pos"> + <dia:point val="28.9,21.025"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="28.85,20.975;51.78,29.875"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="28.9,21.025"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="22.830000000000002"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="8.7999999999999989"/> + </dia:attribute> + <dia:attribute name="name"> + <dia:string>#ITransaction#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="suppress_attributes"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="suppress_operations"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_attributes"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="visible_comments"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="wrap_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="wrap_after_char"> + <dia:int val="40"/> + </dia:attribute> + <dia:attribute name="comment_line_length"> + <dia:int val="17"/> + </dia:attribute> + <dia:attribute name="comment_tagging"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.10000000000000001"/> + </dia:attribute> + <dia:attribute name="line_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="fill_color"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="text_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="normal_font"> + <dia:font family="monospace" style="0" name="Courier"/> + </dia:attribute> + <dia:attribute name="abstract_font"> + <dia:font family="monospace" style="88" name="Courier-BoldOblique"/> + </dia:attribute> + <dia:attribute name="polymorphic_font"> + <dia:font family="monospace" style="8" name="Courier-Oblique"/> + </dia:attribute> + <dia:attribute name="classname_font"> + <dia:font family="sans" style="80" name="Helvetica-Bold"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font"> + <dia:font family="sans" style="88" name="Helvetica-BoldOblique"/> + </dia:attribute> + <dia:attribute name="comment_font"> + <dia:font family="sans" style="8" name="Helvetica-Oblique"/> + </dia:attribute> + <dia:attribute name="normal_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="polymorphic_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="abstract_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="comment_font_height"> + <dia:real val="0.69999999999999996"/> + </dia:attribute> + <dia:attribute name="attributes"/> + <dia:attribute name="operations"> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#~ITransaction#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="1"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getRequest#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const IRequest &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getRequest#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#IRequest &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getResponse#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const IResponse &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getResponse#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#IResponse &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getClientEndPoint#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const network::IEndPoint &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getClientEndPoint#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#network::IEndPoint &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getServerEndPoint#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const network::IEndPoint &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getServerEndPoint#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#network::IEndPoint &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + </dia:attribute> + <dia:attribute name="template"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="templates"/> + <dia:childnode parent="O3"/> + </dia:object> + <dia:object type="UML - LargePackage" version="0" id="O8"> + <dia:attribute name="obj_pos"> + <dia:point val="5,-3.57186"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="4.95,-5.42186;43.597,17.3375"/> + </dia:attribute> + <dia:attribute name="meta"> + <dia:composite type="dict"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="5,-3.57186"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="38.546974811174358"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="20.859374924795702"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.10000000149011612"/> + </dia:attribute> + <dia:attribute name="line_colour"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="fill_colour"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="text_colour"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#namespace#</dia:string> + </dia:attribute> + <dia:attribute name="name"> + <dia:string>#handler#</dia:string> + </dia:attribute> + </dia:object> + <dia:object type="UML - Class" version="0" id="O9"> + <dia:attribute name="obj_pos"> + <dia:point val="13.575,-1.2375"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="13.525,-1.2875;24.52,2.0125"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="13.575,-1.2375"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="10.895"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="3.2000000000000002"/> + </dia:attribute> + <dia:attribute name="name"> + <dia:string>#IHandler#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="suppress_attributes"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="suppress_operations"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_attributes"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="visible_comments"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="wrap_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="wrap_after_char"> + <dia:int val="40"/> + </dia:attribute> + <dia:attribute name="comment_line_length"> + <dia:int val="17"/> + </dia:attribute> + <dia:attribute name="comment_tagging"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.10000000000000001"/> + </dia:attribute> + <dia:attribute name="line_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="fill_color"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="text_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="normal_font"> + <dia:font family="monospace" style="0" name="Courier"/> + </dia:attribute> + <dia:attribute name="abstract_font"> + <dia:font family="monospace" style="88" name="Courier-BoldOblique"/> + </dia:attribute> + <dia:attribute name="polymorphic_font"> + <dia:font family="monospace" style="8" name="Courier-Oblique"/> + </dia:attribute> + <dia:attribute name="classname_font"> + <dia:font family="sans" style="80" name="Helvetica-Bold"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font"> + <dia:font family="sans" style="88" name="Helvetica-BoldOblique"/> + </dia:attribute> + <dia:attribute name="comment_font"> + <dia:font family="sans" style="8" name="Helvetica-Oblique"/> + </dia:attribute> + <dia:attribute name="normal_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="polymorphic_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="abstract_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="comment_font_height"> + <dia:real val="0.69999999999999996"/> + </dia:attribute> + <dia:attribute name="attributes"/> + <dia:attribute name="operations"> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#~IHandler#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#dtor#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="1"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getHook#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#EHook#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + </dia:attribute> + <dia:attribute name="template"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="templates"/> + <dia:childnode parent="O8"/> + </dia:object> + <dia:object type="UML - Class" version="0" id="O10"> + <dia:attribute name="obj_pos"> + <dia:point val="5.84385,6.50626"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="5.79385,6.45626;24.8739,9.75626"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="5.84385,6.50626"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="18.98"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="3.2000000000000002"/> + </dia:attribute> + <dia:attribute name="name"> + <dia:string>#INetworkHandler#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="suppress_attributes"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="suppress_operations"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_attributes"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="visible_comments"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="wrap_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="wrap_after_char"> + <dia:int val="40"/> + </dia:attribute> + <dia:attribute name="comment_line_length"> + <dia:int val="17"/> + </dia:attribute> + <dia:attribute name="comment_tagging"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.10000000000000001"/> + </dia:attribute> + <dia:attribute name="line_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="fill_color"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="text_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="normal_font"> + <dia:font family="monospace" style="0" name="Courier"/> + </dia:attribute> + <dia:attribute name="abstract_font"> + <dia:font family="monospace" style="88" name="Courier-BoldOblique"/> + </dia:attribute> + <dia:attribute name="polymorphic_font"> + <dia:font family="monospace" style="8" name="Courier-Oblique"/> + </dia:attribute> + <dia:attribute name="classname_font"> + <dia:font family="sans" style="80" name="Helvetica-Bold"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font"> + <dia:font family="sans" style="88" name="Helvetica-BoldOblique"/> + </dia:attribute> + <dia:attribute name="comment_font"> + <dia:font family="sans" style="8" name="Helvetica-Oblique"/> + </dia:attribute> + <dia:attribute name="normal_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="polymorphic_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="abstract_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="comment_font_height"> + <dia:real val="0.69999999999999996"/> + </dia:attribute> + <dia:attribute name="attributes"/> + <dia:attribute name="operations"> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#operator()#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#ftor#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#int#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"> + <dia:composite type="umlparameter"> + <dia:attribute name="name"> + <dia:string>#endpoint#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#IEndPoint &#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="kind"> + <dia:enum val="3"/> + </dia:attribute> + </dia:composite> + <dia:composite type="umlparameter"> + <dia:attribute name="name"> + <dia:string>#stream#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#std::ios &#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="kind"> + <dia:enum val="3"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="template"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="templates"/> + <dia:childnode parent="O8"/> + </dia:object> + <dia:object type="UML - Class" version="0" id="O11"> + <dia:attribute name="obj_pos"> + <dia:point val="13.4064,11.3188"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="13.3564,11.2688;38.9814,14.5688"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="13.4064,11.3188"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="25.524999999999999"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="3.2000000000000002"/> + </dia:attribute> + <dia:attribute name="name"> + <dia:string>#IHttpHandler#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="suppress_attributes"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="suppress_operations"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_attributes"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="visible_comments"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="wrap_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="wrap_after_char"> + <dia:int val="40"/> + </dia:attribute> + <dia:attribute name="comment_line_length"> + <dia:int val="17"/> + </dia:attribute> + <dia:attribute name="comment_tagging"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.10000000000000001"/> + </dia:attribute> + <dia:attribute name="line_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="fill_color"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="text_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="normal_font"> + <dia:font family="monospace" style="0" name="Courier"/> + </dia:attribute> + <dia:attribute name="abstract_font"> + <dia:font family="monospace" style="88" name="Courier-BoldOblique"/> + </dia:attribute> + <dia:attribute name="polymorphic_font"> + <dia:font family="monospace" style="8" name="Courier-Oblique"/> + </dia:attribute> + <dia:attribute name="classname_font"> + <dia:font family="sans" style="80" name="Helvetica-Bold"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font"> + <dia:font family="sans" style="88" name="Helvetica-BoldOblique"/> + </dia:attribute> + <dia:attribute name="comment_font"> + <dia:font family="sans" style="8" name="Helvetica-Oblique"/> + </dia:attribute> + <dia:attribute name="normal_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="polymorphic_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="abstract_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="comment_font_height"> + <dia:real val="0.69999999999999996"/> + </dia:attribute> + <dia:attribute name="attributes"/> + <dia:attribute name="operations"> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#operator()#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#ftor#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#int#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"> + <dia:composite type="umlparameter"> + <dia:attribute name="name"> + <dia:string>#transaction#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#ITransaction &#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="kind"> + <dia:enum val="0"/> + </dia:attribute> + </dia:composite> + <dia:composite type="umlparameter"> + <dia:attribute name="name"> + <dia:string>#is#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#std::istream &#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="kind"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + <dia:composite type="umlparameter"> + <dia:attribute name="name"> + <dia:string>#os#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#std::ostream#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="kind"> + <dia:enum val="2"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="template"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="templates"/> + <dia:childnode parent="O8"/> + </dia:object> + <dia:object type="UML - Generalization" version="1" id="O12"> + <dia:attribute name="obj_pos"> + <dia:point val="19.0225,2.0129"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="15.2838,1.9629;19.8725,6.50586"/> + </dia:attribute> + <dia:attribute name="meta"> + <dia:composite type="dict"/> + </dia:attribute> + <dia:attribute name="orth_points"> + <dia:point val="19.0225,2.0129"/> + <dia:point val="19.0225,4.23438"/> + <dia:point val="15.3338,4.23438"/> + <dia:point val="15.3338,6.45586"/> + </dia:attribute> + <dia:attribute name="orth_orient"> + <dia:enum val="1"/> + <dia:enum val="0"/> + <dia:enum val="1"/> + </dia:attribute> + <dia:attribute name="orth_autoroute"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="text_colour"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="line_colour"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="name"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:connections> + <dia:connection handle="0" to="O9" connection="12"/> + <dia:connection handle="1" to="O10" connection="10"/> + </dia:connections> + <dia:childnode parent="O8"/> + </dia:object> + <dia:object type="UML - LargePackage" version="0" id="O13"> + <dia:attribute name="obj_pos"> + <dia:point val="56.9126,19.3625"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="56.8626,17.5125;72.322,29.85"/> + </dia:attribute> + <dia:attribute name="meta"> + <dia:composite type="dict"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="56.9126,19.3625"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="15.359374771127484"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="10.437499844469134"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.10000000149011612"/> + </dia:attribute> + <dia:attribute name="line_colour"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="fill_colour"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="text_colour"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#namespace#</dia:string> + </dia:attribute> + <dia:attribute name="name"> + <dia:string>#network#</dia:string> + </dia:attribute> + <dia:childnode parent="O1"/> + </dia:object> + <dia:object type="UML - Class" version="0" id="O14"> + <dia:attribute name="obj_pos"> + <dia:point val="58.1001,20.7375"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="58.0501,20.6875;70.9701,28.1875"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="58.1001,20.7375"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="12.82"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="7.4000000000000004"/> + </dia:attribute> + <dia:attribute name="name"> + <dia:string>#IEndPoint#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="suppress_attributes"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="suppress_operations"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_attributes"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="visible_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="visible_comments"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="wrap_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="wrap_after_char"> + <dia:int val="40"/> + </dia:attribute> + <dia:attribute name="comment_line_length"> + <dia:int val="17"/> + </dia:attribute> + <dia:attribute name="comment_tagging"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.10000000000000001"/> + </dia:attribute> + <dia:attribute name="line_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="fill_color"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="text_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="normal_font"> + <dia:font family="monospace" style="0" name="Courier"/> + </dia:attribute> + <dia:attribute name="abstract_font"> + <dia:font family="monospace" style="88" name="Courier-BoldOblique"/> + </dia:attribute> + <dia:attribute name="polymorphic_font"> + <dia:font family="monospace" style="8" name="Courier-Oblique"/> + </dia:attribute> + <dia:attribute name="classname_font"> + <dia:font family="sans" style="80" name="Helvetica-Bold"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font"> + <dia:font family="sans" style="88" name="Helvetica-BoldOblique"/> + </dia:attribute> + <dia:attribute name="comment_font"> + <dia:font family="sans" style="8" name="Helvetica-Oblique"/> + </dia:attribute> + <dia:attribute name="normal_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="polymorphic_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="abstract_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="comment_font_height"> + <dia:real val="0.69999999999999996"/> + </dia:attribute> + <dia:attribute name="attributes"> + <dia:composite type="umlattribute"> + <dia:attribute name="name"> + <dia:string>#Ip#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#typedef#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>#int#</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + <dia:composite type="umlattribute"> + <dia:attribute name="name"> + <dia:string>#Port#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#typedef#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>#int#</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + <dia:composite type="umlattribute"> + <dia:attribute name="name"> + <dia:string>#Socket#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#typedef#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="operations"> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#~EndPoint#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#dtor#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="1"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getIp#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#Ip#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getPort#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#Port#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getSocket#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#Socket &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + </dia:attribute> + <dia:attribute name="template"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="templates"/> + <dia:childnode parent="O13"/> + </dia:object> + <dia:object type="UML - Generalization" version="1" id="O15"> + <dia:attribute name="obj_pos"> + <dia:point val="19.0225,2.01268"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="18.1725,1.96268;26.2189,11.3193"/> + </dia:attribute> + <dia:attribute name="meta"> + <dia:composite type="dict"/> + </dia:attribute> + <dia:attribute name="orth_points"> + <dia:point val="19.0225,2.01268"/> + <dia:point val="19.0225,4.25939"/> + <dia:point val="26.1689,4.25939"/> + <dia:point val="26.1689,11.2693"/> + </dia:attribute> + <dia:attribute name="orth_orient"> + <dia:enum val="1"/> + <dia:enum val="0"/> + <dia:enum val="1"/> + </dia:attribute> + <dia:attribute name="orth_autoroute"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="text_colour"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="line_colour"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="name"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:connections> + <dia:connection handle="0" to="O9" connection="12"/> + <dia:connection handle="1" to="O11" connection="10"/> + </dia:connections> + <dia:childnode parent="O8"/> + </dia:object> + <dia:object type="UML - Class" version="0" id="O16"> + <dia:attribute name="obj_pos"> + <dia:point val="32.3595,-1.72498"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="32.3095,-1.77498;41.7645,7.92502"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="32.3595,-1.72498"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="9.3550000000000004"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="9.5999999999999996"/> + </dia:attribute> + <dia:attribute name="name"> + <dia:string>#EHook#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#enumeration#</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="suppress_attributes"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="suppress_operations"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_attributes"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="visible_operations"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_comments"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="wrap_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="wrap_after_char"> + <dia:int val="40"/> + </dia:attribute> + <dia:attribute name="comment_line_length"> + <dia:int val="17"/> + </dia:attribute> + <dia:attribute name="comment_tagging"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.10000000000000001"/> + </dia:attribute> + <dia:attribute name="line_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="fill_color"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="text_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="normal_font"> + <dia:font family="monospace" style="0" name="Courier"/> + </dia:attribute> + <dia:attribute name="abstract_font"> + <dia:font family="monospace" style="88" name="Courier-BoldOblique"/> + </dia:attribute> + <dia:attribute name="polymorphic_font"> + <dia:font family="monospace" style="8" name="Courier-Oblique"/> + </dia:attribute> + <dia:attribute name="classname_font"> + <dia:font family="sans" style="80" name="Helvetica-Bold"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font"> + <dia:font family="sans" style="88" name="Helvetica-BoldOblique"/> + </dia:attribute> + <dia:attribute name="comment_font"> + <dia:font family="sans" style="8" name="Helvetica-Oblique"/> + </dia:attribute> + <dia:attribute name="normal_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="polymorphic_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="abstract_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="comment_font_height"> + <dia:real val="0.69999999999999996"/> + </dia:attribute> + <dia:attribute name="attributes"> + <dia:composite type="umlattribute"> + <dia:attribute name="name"> + <dia:string>#AcceptionConnection#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + <dia:composite type="umlattribute"> + <dia:attribute name="name"> + <dia:string>#Reader#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + <dia:composite type="umlattribute"> + <dia:attribute name="name"> + <dia:string>#RequestHeaderModifier#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + <dia:composite type="umlattribute"> + <dia:attribute name="name"> + <dia:string>#RequestBodyModifier#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + <dia:composite type="umlattribute"> + <dia:attribute name="name"> + <dia:string>#ResponseProcessor#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + <dia:composite type="umlattribute"> + <dia:attribute name="name"> + <dia:string>#ResponseHeaderModifier#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + <dia:composite type="umlattribute"> + <dia:attribute name="name"> + <dia:string>#ResponseBodyModifier#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + <dia:composite type="umlattribute"> + <dia:attribute name="name"> + <dia:string>#Writer#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + <dia:composite type="umlattribute"> + <dia:attribute name="name"> + <dia:string>#CloseConnection#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="operations"/> + <dia:attribute name="template"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="templates"/> + <dia:childnode parent="O1"/> + </dia:object> + <dia:object type="UML - Class" version="0" id="O17"> + <dia:attribute name="obj_pos"> + <dia:point val="44.922,3.07189"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="44.872,3.02189;61.257,5.52189"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="44.922,3.07189"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="16.285"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="2.3999999999999999"/> + </dia:attribute> + <dia:attribute name="name"> + <dia:string>#IConfig#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="suppress_attributes"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="suppress_operations"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_attributes"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="visible_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="visible_comments"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="wrap_operations"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="wrap_after_char"> + <dia:int val="40"/> + </dia:attribute> + <dia:attribute name="comment_line_length"> + <dia:int val="17"/> + </dia:attribute> + <dia:attribute name="comment_tagging"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.10000000000000001"/> + </dia:attribute> + <dia:attribute name="line_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="fill_color"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="text_color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="normal_font"> + <dia:font family="monospace" style="0" name="Courier"/> + </dia:attribute> + <dia:attribute name="abstract_font"> + <dia:font family="monospace" style="88" name="Courier-BoldOblique"/> + </dia:attribute> + <dia:attribute name="polymorphic_font"> + <dia:font family="monospace" style="8" name="Courier-Oblique"/> + </dia:attribute> + <dia:attribute name="classname_font"> + <dia:font family="sans" style="80" name="Helvetica-Bold"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font"> + <dia:font family="sans" style="88" name="Helvetica-BoldOblique"/> + </dia:attribute> + <dia:attribute name="comment_font"> + <dia:font family="sans" style="8" name="Helvetica-Oblique"/> + </dia:attribute> + <dia:attribute name="normal_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="polymorphic_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="abstract_font_height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="abstract_classname_font_height"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="comment_font_height"> + <dia:real val="0.69999999999999996"/> + </dia:attribute> + <dia:attribute name="attributes"> + <dia:composite type="umlattribute"> + <dia:attribute name="name"> + <dia:string>#ValueMap#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#typedef#</dia:string> + </dia:attribute> + <dia:attribute name="value"> + <dia:string>#std::map<str::string, std::string>#</dia:string> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="operations"> + <dia:composite type="umloperation"> + <dia:attribute name="name"> + <dia:string>#getEntries#</dia:string> + </dia:attribute> + <dia:attribute name="stereotype"> + <dia:string>#const#</dia:string> + </dia:attribute> + <dia:attribute name="type"> + <dia:string>#const ValueMap &#</dia:string> + </dia:attribute> + <dia:attribute name="visibility"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="comment"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="abstract"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="inheritance_type"> + <dia:enum val="0"/> + </dia:attribute> + <dia:attribute name="query"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="class_scope"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="parameters"/> + </dia:composite> + </dia:attribute> + <dia:attribute name="template"> + <dia:boolean val="false"/> + </dia:attribute> + <dia:attribute name="templates"/> + <dia:childnode parent="O1"/> + </dia:object> + <dia:object type="UML - Note" version="0" id="O18"> + <dia:attribute name="obj_pos"> + <dia:point val="44.975,6.9"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="44.925,6.85;58.63,9.45"/> + </dia:attribute> + <dia:attribute name="meta"> + <dia:composite type="dict"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="44.975,6.9"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="13.605"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="2.5"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.10000000000000001"/> + </dia:attribute> + <dia:attribute name="line_colour"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="fill_colour"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>#extern "C" +ziaGetModuleInstance(): IModule *#</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="monospace" style="0" name="Courier"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="45.325,8.145"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="0"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:childnode parent="O1"/> + </dia:object> + </dia:layer> +</dia:diagram>