123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- /*
- * Copyright (C) 2010-2011 Mamadou Diop.
- *
- * Contact: Mamadou Diop <diopmamadou(at)doubango.org>
- *
- * This file is part of Open Source Doubango Framework.
- *
- * DOUBANGO is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * DOUBANGO is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with DOUBANGO.
- *
- */
- #ifndef TINYWRAP_XCAP_H
- #define TINYWRAP_XCAP_H
- #include "tinyxcap.h"
- class XcapStack;
- typedef tsk_list_t twrap_xcap_steps_L_t;
- //
- // XcapSelector
- //
- class XcapSelector
- {
- public:
- XcapSelector(XcapStack* stack);
- virtual ~XcapSelector();
- public: /* API functions */
- XcapSelector* setAUID(const char* auid);
- XcapSelector* setName(const char* qname);
- XcapSelector* setAttribute(const char* qname, const char* att_qname, const char* att_value);
- XcapSelector* setPos(const char* qname, unsigned pos);
- XcapSelector* setPosAttribute(const char* qname, unsigned pos, const char* att_qname, const char* att_value);
- XcapSelector* setNamespace(const char* prefix, const char* value);
- char* getString();// %newobject
- void reset();
- private:
- txcap_stack_handle_t* stack_handle;
- char* auid;
- twrap_xcap_steps_L_t* steps;
- };
- //
- // XcapMessage
- //
- class XcapMessage
- {
- public:
- XcapMessage();
- #if !defined(SWIG)
- XcapMessage(const thttp_message_t *httpmessage);
- #endif
- virtual ~XcapMessage();
- short getCode() const;
- const char* getPhrase() const;
- char* getXcapHeaderValue(const char* name, unsigned index = 0);
- char* getXcapHeaderParamValue(const char* name, const char* param, unsigned index = 0);
- unsigned getXcapContentLength();
- unsigned getXcapContent(void* output, unsigned maxsize);
- private:
- const thttp_message_t *httpmessage;
- };
- //
- // XcapEvent
- //
- class XcapEvent
- {
- public:
- #if !defined(SWIG)
- XcapEvent(const thttp_event_t *httpevent);
- #endif
- virtual ~XcapEvent();
- thttp_event_type_t getType();
- const XcapMessage* getXcapMessage() const;
- private:
- const thttp_event_t *httpevent;
- const XcapMessage* httpmessage;
- };
- //
- // XcapCallback
- //
- class XcapCallback
- {
- public:
- XcapCallback();
- virtual ~XcapCallback();
- virtual int onEvent(const XcapEvent* e)const {
- return -1;
- }
- };
- //
- // XcapStack
- //
- class XcapStack
- {
- public:
- XcapStack(XcapCallback* callback, const char* xui, const char* password, const char* xcap_root);
- virtual ~XcapStack();
- public: /* API functions */
- bool registerAUID(const char* id, const char* mime_type, const char* ns, const char* document_name, bool is_global);
- bool start();
- bool setCredentials(const char* xui, const char* password);
- bool setXcapRoot(const char* xcap_root);
- bool setLocalIP(const char* ip);
- bool setLocalPort(unsigned port);
- bool addHeader(const char* name, const char* value);
- bool removeHeader(const char* name);
- bool setTimeout(unsigned timeout);
- bool getDocument(const char* url);
- bool getElement(const char* url);
- bool getAttribute(const char* url);
- bool deleteDocument(const char* url);
- bool deleteElement(const char* url);
- bool deleteAttribute(const char* url);
- bool putDocument(const char* url, const void* payload, unsigned len, const char* contentType);
- bool putElement(const char* url, const void* payload, unsigned len);
- bool putAttribute(const char* url, const void* payload, unsigned len);
- bool stop();
- public: /* Public helper function */
- #if !defined(SWIG)
- txcap_stack_handle_t* getHandle() {
- return this->handle;
- }
- XcapCallback* getCallback()const {
- return this->callback;
- }
- #endif
- private:
- txcap_stack_handle_t* handle;
- XcapCallback* callback;
- static unsigned count;
- };
- #endif /* TINYWRAP_XCAP_H */
|