delete some unused source files
authorAndreas Oberritter <obi@saftware.de>
Sat, 15 Aug 2009 15:47:50 +0000 (17:47 +0200)
committerAndreas Oberritter <obi@saftware.de>
Sat, 15 Aug 2009 15:47:50 +0000 (17:47 +0200)
lib/base/nxml.cpp [deleted file]
lib/gdi/font.cpp-new [deleted file]
lib/network/xmlrpc.cpp [deleted file]
lib/network/xmlrpc.h [deleted file]

diff --git a/lib/base/nxml.cpp b/lib/base/nxml.cpp
deleted file mode 100644 (file)
index f32880a..0000000
+++ /dev/null
@@ -1,339 +0,0 @@
-#include <lib/base/nconfig.h>
-#include <string.h>
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-
-#ifdef HAVE_LIBXML2
-#include <libxml/tree.h>
-#include <libxml/parser.h>
-#include <libxml/parserInternals.h>
-#else
-#define xmlChar char
-#endif /* HAVE_LIBXML2 */
-
-#define DE(x)          ((struct nc_de_s *) (data+(x)))
-#define IDE(x, y)      (DE(((unsigned *) (data+(x)->offset))[(y)]))
-#define XML_DE         ((const xmlChar *) "dirEntry")
-#define XML_NS         ((const xmlChar *) "http://hq.alert.sk/projects/nconfig")
-#define XML_ROOT       ((const xmlChar *) "NConfigExport")
-
-static char *encodeXml(const char *what)
-{
-       unsigned p = 0, size = 6*strlen(what)+1;
-       char *ret = (char *)malloc(size);
-       for (; *what; what++) {
-               switch (*what) {
-               case '"':
-                       ret[p++] = '&';
-                       ret[p++] = 'q';
-                       ret[p++] = 'u';
-                       ret[p++] = 'o';
-                       ret[p++] = 't';
-                       ret[p++] = ';';
-                       continue;
-               case '>':
-                       ret[p++] = '&';
-                       ret[p++] = 'q';
-                       ret[p++] = 't';
-                       ret[p++] = ';';
-                       continue;
-               case '<':
-                       ret[p++] = '&';
-                       ret[p++] = 'l';
-                       ret[p++] = 't';
-                       ret[p++] = ';';
-                       continue;
-               case '&':
-                       ret[p++] = '&';
-                       ret[p++] = 'a';
-                       ret[p++] = 'm';
-                       ret[p++] = 'p';
-                       ret[p++] = ';';
-                       continue;
-               }
-               if (*what >= 0x20 || *what == '\n' || *what == '\r' || *what == '\t')
-                       ret[p++] = *what;
-               else
-                       p += sprintf(ret+p, "&#%d;", *what);
-       }
-       ret[p] = '\0';
-       return ret;
-}
-
-void NConfig::store(nc_de_s *de, FILE *f)
-{
-       struct nc_de_s *cc;
-       for (unsigned i=0; i<de->pages; i++)
-               if ((cc = IDE(de, i))->type) {
-                       char *encname = encodeXml(data+cc->name);
-                       fprintf(f, "<nc:%s name=\"%s\" type=\"%d\" value=\"", XML_DE, encname, cc->type);
-                       free(encname);
-                       switch (cc->type) {
-                       case NC_DIR:
-                               fprintf(f, "%u\">\n", cc->pages);
-                               store(cc, f);
-                               fprintf(f, "</nc:%s>\n", XML_DE);
-                               break;
-                       case NC_STRING:
-                               fprintf(f, "%s\"/>\n", encname = encodeXml(data+cc->offset));
-                               free(encname);
-                               break;
-                       case NC_INT:
-                               fprintf(f, "%lld\"/>\n", *((signed long long *) (data+cc->offset)));
-                               break;
-                       case NC_UINT:
-                               fprintf(f, "%llu\"/>\n", *((unsigned long long *) (data+cc->offset)));
-                               break;
-                       case NC_DOUBLE:
-                               fprintf(f, "%La\"/>\n", *((long double *) (data+cc->offset)));
-                               break;
-                       case NC_RAW:
-                               {
-                                       const char *raw = data+cc->offset;
-                                       for (unsigned j=0; j<cc->pages; j++)
-                                               fprintf(f, "%d%d%d", raw[j] / 100, (raw[j] % 100) / 10, raw[j] % 10);
-                                       fprintf(f, "\"/>\n");
-                               }
-                       }
-               }
-}
-
-int NConfig::toXML(const char *filename)
-{
-       if (fd < 0)
-               return NC_ERR_NFILE;
-
-       FILE *f = fopen(filename, "w");
-       if (!f)
-               return NC_ERR_PERM;
-       
-       fprintf(f, "%s", "<?xml version=\"1.0\"?>\n");
-       fprintf(f, "<nc:%s xmlns:nc=\"%s\" libVersion=\"%s\"", XML_ROOT, XML_NS, VERSION);
-#ifdef HAVE_TIME_H
-    time_t t = time(NULL);
-    char *tim = ctime(&t);
-    tim[strlen(tim)-1] = 0;
-       fprintf(f, " time=\"%s\"", tim);
-#endif /* HAVE_TIME_H */
-       fprintf(f, ">\n");
-       lockFile(NC_L_RO);
-
-       store(rdir, f);
-
-       unLockFile();
-       fprintf(f, "</nc:%s>\n", XML_ROOT);
-       fclose(f);
-       return NC_ERR_OK;
-}
-
-#ifdef HAVE_LIBXML2
-static xmlSAXHandler sh;
-enum stateEnum {noRoot = 0, inRoot, inDir, inEnt, unknown};
-
-struct ncParseState {
-       stateEnum state, pState;
-       xmlChar *ns;
-       unsigned depth;
-       unsigned unDepth;
-       unsigned force;
-       NConfig *which;
-};
-
-static int ncXmlSAXParseFile(xmlSAXHandlerPtr sax, void *user_data, const char *filename)
-{
-       int ret = 0;
-       xmlParserCtxtPtr ctxt = xmlCreateFileParserCtxt(filename);
-       if (!ctxt)
-               return -1;
-       ctxt->sax = sax;
-       ctxt->userData = user_data;
-       xmlParseDocument(ctxt);
-       ret = ctxt->wellFormed ? 0 : -1;
-       if (sax)
-               ctxt->sax = NULL;
-       xmlFreeParserCtxt(ctxt);
-       return ret;
-}
-
-static xmlEntityPtr ncXmlGetEntity(void *user_data, const CHAR *name)
-{
-       return xmlGetPredefinedEntity(name);
-}
-
-static void ncXmlStartElement(void *user_data, const CHAR *name, const CHAR **attrs)
-{
-       struct ncParseState *p = (struct ncParseState *)user_data;
-#ifdef NC_DEBUG_XML
-       fprintf(stderr, "New element %s state=%d %s\n", name, p->state, p->ns);
-#endif
-       if (p->state == unknown) {
-               p->unDepth++;
-               return;
-       }
-       if (p->state == noRoot) {
-               while (*attrs) {
-                       if (!xmlStrncmp(*attrs, (const xmlChar *) "xmlns:", 6)) {
-                               if (!xmlStrcmp(attrs[1], XML_NS)) {
-                                       p->ns = xmlStrdup((*attrs)+6);
-                                       break;
-                               }
-                       }
-                       attrs += 2;
-               }
-               char *b = (char *) malloc(xmlStrlen(p->ns)+xmlStrlen(XML_ROOT)+2);
-               sprintf(b, "%s:%s", p->ns, XML_ROOT);
-               if (xmlStrcmp(name, (xmlChar *)b)) {
-#ifdef NC_DEBUG_XML
-                       fprintf(stderr, "NewElement, entering unknown %s\n", name);
-#endif
-                       p->pState = p->state;
-                       p->state = unknown;
-               } else
-                       p->state = inRoot;
-               free(b);
-               return;
-       }
-       if (p->state == inRoot || p->state == inDir) {
-               const xmlChar *value = NULL, *n = NULL;
-               int type = 0;
-               while (*attrs) {
-                       if (!xmlStrcmp(*attrs, (const xmlChar *)"value"))
-                               value = attrs[1];
-                       if (!xmlStrcmp(*attrs, (const xmlChar *)"name"))
-                               n = attrs[1];
-                       if (!xmlStrcmp(*attrs, (const xmlChar *)"type"))
-                               type = atoi(attrs[1]);
-                       attrs += 2;
-               }
-#ifdef NC_DEBUG_XML
-               fprintf(stderr, "%s %s %s %d %d\n", name, n, value, type, p->state);
-#endif
-               char *b = (char *) malloc(xmlStrlen(p->ns)+xmlStrlen(XML_DE)+2);
-               sprintf(b, "%s:%s", p->ns, XML_DE);
-               if (xmlStrcmp(name, (xmlChar *)b) || !type || !value || !n) {
-#ifdef NC_DEBUG_XML
-                       fprintf(stderr, "NewElement, entering unknown on mismatch\n");
-#endif
-                       p->pState = p->state;
-                       p->state = unknown;
-                       free(b);
-                       return;
-               }
-               free(b);
-               if (p->force)
-                       p->which->delKey((const char *)n);
-
-               switch (type) {
-               case NC_DIR:
-                       if (p->which->createDir((const char *)n, strtoul((const char *)value, NULL, 0)) != NC_ERR_OK) {
-                               p->pState = p->state;
-                               p->state = unknown;
-#ifdef NC_DEBUG_XML
-                               fprintf(stderr, "NewElement, entering unknown on failed mkdir\n");
-#endif
-                               return;
-                       }
-                       p->which->chDir((const char *)n);
-                       break;
-               case NC_STRING:
-                       p->which->setKey((const char *)n, (const char *)value);
-                       break;
-               case NC_INT:
-                       p->which->setKey((const char *)n, strtoll((const char *)value, NULL, 0));
-                       break;
-               case NC_UINT:
-                       p->which->setKey((const char *)n, strtoull((const char *)value, NULL, 0));
-                       break;
-               case NC_DOUBLE:
-                       {
-                               long double c;
-                               sscanf((const char *)value, "%La", &c);
-                               p->which->setKey((const char *)n, c);
-                       }
-                       break;
-               case NC_RAW:
-                       {
-                               unsigned size = xmlStrlen(value) / 3;
-                               char *dec = NULL;
-                               if (size) {
-                                       dec = (char *)malloc(size);
-                                       for (unsigned i=0, k=0; i<size; i++, k += 3)
-                                               dec[i] = value[k] * 100 + value[k+1] * 10 + value[k+2];
-                               }
-                               p->which->setKey((const char *)n, dec, size);
-                               free(dec);
-                       }
-               }
-               if (type == NC_DIR) {
-                       p->state = inDir;
-                       p->depth++;
-               } else {
-                       p->pState = p->state;
-                       p->state = inEnt;
-               }
-               return;
-       }
-}
-
-static void ncXmlEndElement(void *user_data, const CHAR *name)
-{
-       struct ncParseState *p = (struct ncParseState *)user_data;
-#ifdef NC_DEBUG_XML
-       fprintf(stderr, "EndElement %s %s %d\n", name, p->ns, p->state);
-#endif
-       if (p->state == inEnt) {
-               p->state = p->pState;
-               return;
-       }
-       if (p->state == unknown) {
-               if (p->unDepth)
-                       p->unDepth--;
-               else
-                       p->state = p->pState;
-               return;
-       }
-       if (p->state == inRoot) {
-               p->state = noRoot;
-               free(p->ns);
-               p->ns = NULL;
-               return;
-       }
-       if (p->state == inDir) {
-               p->depth--;
-               if (!p->depth)
-                       p->state = inRoot;
-               p->which->chDir("..");
-       }
-}
-#endif /* HAVE_LIBXML2 */
-
-int NConfig::fromXML(const char *filename, int force)
-{
-       if (fd < 0)
-               return NC_ERR_NFILE;
-       if (omode != NC_O_RW)
-               return NC_ERR_PERM;
-#ifndef HAVE_LIBXML2
-       return NC_ERR_NOSUPPORT;
-#else
-       struct ncParseState state = { noRoot, noRoot, NULL, 0, 0, force, this };
-       sh.getEntity = ncXmlGetEntity;
-       sh.startElement = ncXmlStartElement;
-       sh.endElement = ncXmlEndElement;
-
-       lockFile(NC_L_RW);
-       cdir = rdir;
-       int ret = ncXmlSAXParseFile(&sh, &state, filename);
-       cdir = rdir;
-       unLockFile();
-
-       return ret < 0 ? NC_ERR_NVAL : NC_ERR_OK;
-#endif /* HAVE_LIBXML2 */
-}
-
diff --git a/lib/gdi/font.cpp-new b/lib/gdi/font.cpp-new
deleted file mode 100644 (file)
index 143374b..0000000
+++ /dev/null
@@ -1,787 +0,0 @@
-#include <lib/gdi/font.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <pthread.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-// use this for init Freetype...
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#include <lib/base/eerror.h>
-#include <lib/gdi/lcd.h>
-#include <lib/gdi/grc.h>
-#include <lib/base/elock.h>
-#include <lib/base/init.h>
-
-#include <map>
-
-fontRenderClass *fontRenderClass::instance;
-static eLock ftlock;
-static FTC_Font cache_current_font=0;
-
-struct fntColorCacheKey
-{
-       gRGB start, end;
-       fntColorCacheKey(const gRGB &start, const gRGB &end)
-               : start(start), end(end)
-       {
-       }
-       bool operator <(const fntColorCacheKey &c) const
-       {
-               if (start < c.start)
-                       return 1;
-               else if (start == c.start)
-                       return end < c.end;
-               return 0;
-       }
-};
-
-std::map<fntColorCacheKey,gLookup> colorcache;
-
-static gLookup &getColor(const gPalette &pal, const gRGB &start, const gRGB &end)
-{
-       fntColorCacheKey key(start, end);
-       std::map<fntColorCacheKey,gLookup>::iterator i=colorcache.find(key);
-       if (i != colorcache.end())
-               return i->second;
-       gLookup &n=colorcache.insert(std::pair<fntColorCacheKey,gLookup>(key,gLookup())).first->second;
-       eDebug("[FONT] creating new font color cache entry %02x%02x%02x%02x .. %02x%02x%02x%02x", start.a, start.r, start.g, start.b,
-               end.a, end.r, end.g, end.b);
-       n.build(16, pal, start, end);
-/*     for (int i=0; i<16; i++)
-               eDebugNoNewLine("%02x|%02x%02x%02x%02x ", (int)n.lookup[i], pal.data[n.lookup[i]].a, pal.data[n.lookup[i]].r, pal.data[n.lookup[i]].g, pal.data[n.lookup[i]].b);
-       eDebug("");*/
-       return n;
-}
-
-fontRenderClass *fontRenderClass::getInstance()
-{
-       return instance;
-}
-
-FT_Error myFTC_Face_Requester(FTC_FaceID       face_id,
-                                                                                                                       FT_Library      library,
-                                                                                                                       FT_Pointer      request_data,
-                                                                                                                       FT_Face*                aface)
-{
-       return ((fontRenderClass*)request_data)->FTC_Face_Requester(face_id, aface);
-}
-
-
-FT_Error fontRenderClass::FTC_Face_Requester(FTC_FaceID        face_id, FT_Face* aface)
-{
-       fontListEntry *font=(fontListEntry *)face_id;
-       if (!font)
-               return -1;
-       
-       eDebug("[FONT] FTC_Face_Requester (%s)", font->face);
-
-       int error;
-       if ((error=FT_New_Face(library, font->filename, 0, aface)))
-       {
-               eDebug(" failed: %s", strerror(error));
-               return error;
-       }
-       FT_Select_Charmap(*aface, ft_encoding_unicode);
-       return 0;
-}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
-
-FTC_FaceID fontRenderClass::getFaceID(const char *face)
-{
-       for (fontListEntry *f=font; f; f=f->next)
-       {
-               if (!strcmp(f->face, face))
-                       return (FTC_FaceID)f;
-       }
-       return 0;
-}
-
-FT_Error fontRenderClass::getGlyphBitmap(FTC_ImageTypeRec *font, FT_ULong glyph_index, FTC_SBit *sbit)
-{
-       FT_Error res=FTC_SBitCache_Lookup(sbitsCache, font, glyph_index, sbit, 0);
-       eDebug("%x", sizeof(**sbit));
-       return res;
-}
-
-const char* fontRenderClass::AddFont(const char *filename)
-{
-       eDebugNoNewLine("[FONT] adding font %s...", filename);
-       fflush(stdout);
-       int error;
-       fontListEntry *n=new fontListEntry;
-
-       FT_Face face;
-       eLocker lock(ftlock);
-
-       if ((error=FT_New_Face(library, filename, 0, &face)))
-               eFatal(" failed: %s", strerror(error));
-
-       strcpy(n->filename=new char[strlen(filename)+1], filename);
-       strcpy(n->face=new char[strlen(face->family_name)+strlen(face->style_name)+2], face->family_name);
-       if (face->style_name[0]!=' ')
-               strcat(n->face, " ");
-       strcat(n->face, face->style_name);
-       FT_Done_Face(face);
-
-       n->next=font;
-       eDebug("OK (%s)", n->face);
-       font=n;
-
-       return n->face;
-}
-
-fontRenderClass::fontListEntry::~fontListEntry()
-{
-       delete[] filename;
-       delete[] face;
-}
-
-fontRenderClass::fontRenderClass(): fb(fbClass::getInstance())
-{
-       instance=this;
-       eDebug("[FONT] initializing lib...");
-       {
-               if (FT_Init_FreeType(&library))
-               {
-                       eDebug("[FONT] initializing failed.");
-                       return;
-               }
-       }
-       eDebug("[FONT] loading fonts...");
-       fflush(stdout);
-       font=0;
-       
-       int maxbytes=4*1024*1024;
-       eDebug("[FONT] Intializing font cache, using max. %dMB...", maxbytes/1024/1024);
-       fflush(stdout);
-       {
-               if (FTC_Manager_New(library, 8, 8, maxbytes, myFTC_Face_Requester, this, &cacheManager))
-               {
-                       eDebug("[FONT] initializing font cache failed!");
-                       return;
-               }
-               if (!cacheManager)
-               {
-                       eDebug("[FONT] initializing font cache manager error.");
-                       return;
-               }
-               if (FTC_SBitCache_New(cacheManager, &sbitsCache))
-               {
-                       eDebug("[FONT] initializing font cache sbit failed!");
-                       return;
-               }
-/*             if (FTC_ImageCache_New(cacheManager, &imageCache))
-               {
-                       eDebug("[FONT] initializing font cache imagecache failed!");
-               } */
-       }
-       return;
-}
-
-fontRenderClass::~fontRenderClass()
-{
-       ftlock.lock();
-//     auskommentiert weil freetype und enigma die kritische masse des suckens ueberschreiten. 
-//     FTC_Manager_Done(cacheManager);
-//     FT_Done_FreeType(library);
-}
-
-Font *fontRenderClass::getFont(const char *face, int size, int tabwidth)
-{
-       FTC_FaceID id=getFaceID(face);
-       if (!id)
-               eDebug("face %s does not exist!", face);
-       if (!id)
-               return 0;
-       return new Font(this, id, size, tabwidth);
-}
-
-Font::Font(fontRenderClass *render, FTC_FaceID faceid, int isize, int tw): tabwidth(tw)
-{
-       renderer=render;
-       font.font.face_id=faceid;
-       font.font.pix_width     = isize;
-       font.font.pix_height = isize;
-       font.flags = FT_LOAD_DEFAULT;
-       height=isize;
-       if (tabwidth==-1)
-               tabwidth=8*isize;
-       ref=0;
-}
-
-FT_Error Font::getGlyphBitmap(FT_ULong glyph_index, FTC_SBit *sbit)
-{
-       return renderer->getGlyphBitmap(&font, glyph_index, sbit);
-}
-
-Font::~Font()
-{
-}
-
-void Font::lock()
-{
-       ref++;
-}
-
-void Font::unlock()
-{
-       ref--;
-       if (!ref)
-               delete this;
-}
-
-int eTextPara::appendGlyph(FT_UInt glyphIndex, int flags, int rflags)
-{
-       FTC_SBit glyph;
-       if (current_font->getGlyphBitmap(glyphIndex, &glyph))
-               return 1;
-
-       int nx=cursor.x();
-
-       if (! (rflags & RS_RTL))
-               nx+=glyph->xadvance;
-       else
-       {
-               eDebug("RTL: glyph->xadvance: %d", glyph->xadvance);
-               nx-=glyph->xadvance;
-       }
-       
-       if (
-                       (rflags&RS_WRAP) && 
-                       (
-                               (!(rflags & RS_RTL)) 
-                                       ? 
-                                       (nx >= area.right()) : 
-                                       (nx < area.left())
-                               )
-                       )
-       {
-               int cnt = 0;
-               glyphString::iterator i(glyphs.end());
-               --i;
-               while (i != glyphs.begin())
-               {
-                       if (i->flags&(GS_ISSPACE|GS_ISFIRST))
-                               break;
-                       cnt++;
-                       --i;
-               } 
-               if (i != glyphs.begin() && ((i->flags&(GS_ISSPACE|GS_ISFIRST))==GS_ISSPACE) && (++i != glyphs.end()))           // skip space
-               {
-                       int linelength=cursor.x()-i->x;
-                               // RTL: linelength is negative
-                       i->flags|=GS_ISFIRST;
-                       ePoint offset=ePoint(i->x, i->y);
-                       newLine(rflags);
-                       offset-=cursor;
-                       while (i != glyphs.end())               // rearrange them into the next line
-                       {
-                               i->x-=offset.x();
-                               i->y-=offset.y();
-                               i->bbox->moveBy(-offset.x(), -offset.y());
-                               ++i;
-                       }
-                       cursor+=ePoint(linelength, 0);  // put the cursor after that line
-               } else
-               {
-           if (cnt)
-                       {
-                               newLine(rflags);
-                               flags|=GS_ISFIRST;
-                       }
-               }
-       }
-
-       int xadvance=glyph->xadvance, kern=0;
-       
-       if (previous && use_kerning)
-       {
-               FT_Vector delta;
-               FT_Get_Kerning(current_face, previous, glyphIndex, ft_kerning_default, &delta);
-               kern=delta.x>>6;
-       }
-
-  eRect* bbox = new eRect();
-       bbox->setLeft( (flags&GS_ISFIRST|glyphs.empty()?cursor.x():cursor.x()-1) + glyph->left );       
-       bbox->setTop( cursor.y() - glyph->top );
-       bbox->setWidth( glyph->width );
-       bbox->setHeight( glyph->height );
-
-       pGlyph ng;
-
-       xadvance+=kern;
-
-       if (!(rflags & RS_RTL))
-               ng.x=cursor.x()+kern;
-       else
-               ng.x=cursor.x()-xadvance;
-
-       ng.y=cursor.y();
-       ng.w=xadvance;
-       ng.font=current_font;
-       ng.font->lock();
-       ng.glyph_index=glyphIndex;
-       ng.flags=flags;
-       ng.bbox=bbox;
-       glyphs.push_back(ng);
-
-       if (!(rflags & RS_RTL))
-               cursor+=ePoint(xadvance, 0);
-       else
-               cursor-=ePoint(xadvance, 0);
-       previous=glyphIndex;
-       return 0;
-}
-
-void eTextPara::calc_bbox()
-{
-       boundBox.setLeft( 32000 );
-       boundBox.setTop( 32000 );
-       boundBox.setRight( -32000 );         // for each glyph image, compute its bounding box, translate it,
-       boundBox.setBottom( -32000 );
-       // and grow the string bbox
-
-       for (   glyphString::iterator i(glyphs.begin()); i != glyphs.end(); ++i)
-       {
-               if ( i->bbox->left() < boundBox.left() )
-                       boundBox.setLeft( i->bbox->left() );
-               if ( i->bbox->top() < boundBox.top() )
-                       boundBox.setTop( i->bbox->top() );
-               if ( i->bbox->right() > boundBox.right() )
-                       boundBox.setRight( i->bbox->right() );
-               if ( i->bbox->bottom() > boundBox.bottom() )
-                       boundBox.setBottom( i->bbox->bottom() );
-       }
-//     eDebug("boundBox left = %i, top = %i, right = %i, bottom = %i", boundBox.left(), boundBox.top(), boundBox.right(), boundBox.bottom() );
-       bboxValid=1;
-}
-
-void eTextPara::newLine(int flags)
-{
-       if (!(flags & RS_RTL))
-       {
-               if (maximum.width()<cursor.x())
-                       maximum.setWidth(cursor.x());
-               cursor.setX(left);
-               previous=0;
-       } else
-       {
-               if (maximum.width()<(area.right()-cursor.x()))
-                       maximum.setWidth(area.right()-cursor.x());
-               cursor.setX(area.right());
-       }
-       int linegap=current_face->size->metrics.height-(current_face->size->metrics.ascender+current_face->size->metrics.descender);
-       cursor+=ePoint(0, (current_face->size->metrics.ascender+current_face->size->metrics.descender+linegap*1/2)>>6);
-       if (maximum.height()<cursor.y())
-               maximum.setHeight(cursor.y());
-       previous=0;
-}
-
-static eLock refcntlck;
-
-eTextPara::~eTextPara()
-{
-       clear();
-       if (refcnt>=0)
-               eFatal("verdammt man der war noch gelockt :/\n");
-}
-
-void eTextPara::destroy()
-{
-       eLocker lock(refcntlck);
-
-       if (!refcnt--)
-               delete this;
-}
-
-eTextPara *eTextPara::grab()
-{
-       eLocker lock(refcntlck);
-
-       refcnt++;
-       return this;
-}
-
-void eTextPara::setFont(const gFont &font)
-{
-       if (refcnt)
-               eFatal("mod. after lock");
-       setFont(fontRenderClass::getInstance()->getFont(font.family.c_str(), font.pointSize));
-}
-
-void eTextPara::setFont(Font *fnt)
-{
-       if (refcnt)
-               eFatal("mod. after lock");
-       if (!fnt)
-               return;
-       if (current_font && !current_font->ref)
-               delete current_font;
-       current_font=fnt;
-       eLocker lock(ftlock);
-
-       if (FTC_Manager_Lookup_Size(fontRenderClass::instance->cacheManager, &current_font->font.font, &current_face, &current_font->size)<0)
-       {
-               eDebug("FTC_Manager_Lookup_Size failed!");
-               return;
-       }
-       cache_current_font=&current_font->font.font;
-       previous=0;
-       use_kerning=FT_HAS_KERNING(current_face);
-}
-
-int eTextPara::renderString(const std::string &string, int rflags)
-{
-       eLocker lock(ftlock);
-       
-       if (refcnt)
-               eFatal("mod. after lock");
-
-       if (!current_font)
-               return -1;
-
-       if (cursor.y()==-1)
-       {
-               if (!(rflags & RS_RTL))
-               {
-                       cursor=ePoint(area.x(), area.y()+(current_face->size->metrics.ascender>>6));
-               } else
-               {
-                       cursor=ePoint(area.right(), area.y()+(current_face->size->metrics.ascender>>6));
-               }
-               left=cursor.x();
-       }
-               
-       glyphs.reserve(glyphs.size()+string.length());
-
-       if (&current_font->font.font != cache_current_font)
-       {
-               if (FTC_Manager_Lookup_Size(fontRenderClass::instance->cacheManager, &current_font->font.font, &current_face, &current_font->size)<0)
-               {
-                       eDebug("FTC_Manager_Lookup_Size failed!");
-                       return -1;
-               }
-               cache_current_font=&current_font->font.font;
-       }
-       
-       std::string::const_iterator p(string.begin());
-
-       while(p != string.end())
-       {
-               int isprintable=1;
-               int flags=0;
-               
-               unsigned int unicode=*p++;
-
-               if (unicode & 0x80) // we have (hopefully) UTF8 here, and we assume that the encoding is VALID
-               {
-                       if ((unicode & 0xE0)==0xC0) // two bytes
-                       {
-                               unicode&=0x1F;
-                               unicode<<=6;
-                               if (p != string.end())
-                                       unicode|=(*p++)&0x3F;
-                       } else if ((unicode & 0xF0)==0xE0) // three bytes
-                       {
-                               unicode&=0x0F;
-                               unicode<<=6;
-                               if (p != string.end())
-                                       unicode|=(*p++)&0x3F;
-                               unicode<<=6;
-                               if (p != string.end())
-                                       unicode|=(*p++)&0x3F;
-                       } else if ((unicode & 0xF8)==0xF0) // four bytes
-                       {
-                               unicode&=0x07;
-                               unicode<<=6;
-                               if (p != string.end())
-                                       unicode|=(*p++)&0x3F;
-                               unicode<<=6;
-                               if (p != string.end())
-                                       unicode|=(*p++)&0x3F;
-                               unicode<<=6;
-                               if (p != string.end())
-                                       unicode|=(*p++)&0x3F;
-                       }
-               }
-
-               if (!(rflags&RS_DIRECT))
-               {
-                       switch (unicode)
-                       {
-                       case '\t':
-                               isprintable=0;
-                               if (!(rflags & RS_RTL))
-                               {
-                                       cursor+=ePoint(current_font->tabwidth, 0);
-                                       cursor-=ePoint(cursor.x()%current_font->tabwidth, 0);
-                               } else
-                               {
-                                               // does this work?
-                                       cursor-=ePoint(current_font->tabwidth, 0);
-                                       cursor+=ePoint(cursor.x()%current_font->tabwidth, 0);
-                               }
-                               break;
-                       case 0x8A:
-                       case 0xE08A:
-                       case '\n':
-                               isprintable=0;
-                               newLine(rflags);
-                               flags|=GS_ISFIRST;
-                               break;
-                       case '\r':
-                       case 0x86: case 0xE086:
-                       case 0x87: case 0xE087:
-                               isprintable=0;
-                               break;
-                       case ' ':
-                               flags|=GS_ISSPACE;
-                       default:
-                               break;
-                       }
-               }
-               if (isprintable)
-               {
-                       FT_UInt index;
-
-                       index=(rflags&RS_DIRECT)? unicode : FT_Get_Char_Index(current_face, unicode);
-
-                       if (!index)
-                               eDebug("unicode %d ('%c') not present", unicode, unicode);
-                       else
-                               appendGlyph(index, flags, rflags);
-               }
-       }
-       bboxValid=false;
-       calc_bbox();
-       return 0;
-}
-
-void eTextPara::blit(gPixmapDC &dc, const ePoint &offset, const gRGB &background, const gRGB &foreground)
-{
-       eLocker lock(ftlock);
-
-       if (&current_font->font.font != cache_current_font)
-       {
-               if (FTC_Manager_Lookup_Size(fontRenderClass::instance->cacheManager, &current_font->font.font, &current_face, &current_font->size)<0)
-               {
-                       eDebug("FTC_Manager_Lookup_Size failed!");
-                       return;
-               }
-               cache_current_font=&current_font->font.font;
-       }
-
-       gPixmap &target=dc.getPixmap();
-
-       register int opcode;
-       gColor *lookup8=0;
-       __u32 lookup32[16];
-               
-       if (target.bpp == 8)
-       {
-               if (target.clut.data)
-               {
-                       lookup8=getColor(target.clut, background, foreground).lookup;
-                       opcode=0;
-               } else
-                       opcode=1;
-       } else if (target.bpp == 32)
-       {
-               opcode=3;
-               if (target.clut.data)
-               {
-                       lookup8=getColor(target.clut, background, foreground).lookup;
-                       for (int i=0; i<16; ++i)
-                               lookup32[i]=((target.clut.data[lookup8[i]].a<<24)|
-                                       (target.clut.data[lookup8[i]].r<<16)|
-                                       (target.clut.data[lookup8[i]].g<<8)|
-                                       (target.clut.data[lookup8[i]].b))^0xFF000000;
-               } else
-               {
-                       for (int i=0; i<16; ++i)
-                               lookup32[i]=(0x010101*i)|0xFF000000;
-               }
-       } else
-       {
-               eWarning("can't render to %dbpp", target.bpp);
-               return;
-       }
-       
-       eRect clip(0, 0, target.x, target.y);
-       clip&=dc.getClip();
-
-       int buffer_stride=target.stride;
-
-       for (glyphString::iterator i(glyphs.begin()); i != glyphs.end(); ++i)
-       {
-               FTC_SBit glyph_bitmap;
-               memset(&glyph_bitmap, 0, sizeof(glyph_bitmap));
-               if (fontRenderClass::instance->getGlyphBitmap(&i->font->font, i->glyph_index, &glyph_bitmap))
-                       continue;
-               if (!glyph_bitmap->buffer)
-                       eFatal("you suck.");
-               int rx=i->x+glyph_bitmap->left + offset.x();
-               int ry=i->y-glyph_bitmap->top  + offset.y();
-               __u8 *d=(__u8*)(target.data)+buffer_stride*ry+rx*target.bypp;
-               __u8 *s=glyph_bitmap->buffer;
-               register int sx=glyph_bitmap->width;
-               int sy=glyph_bitmap->height;
-               if ((sy+ry) >= clip.bottom())
-                       sy=clip.bottom()-ry;
-               if ((sx+rx) >= clip.right())
-                       sx=clip.right()-rx;
-               if (rx < clip.left())
-               {
-                       int diff=clip.left()-rx;
-                       s+=diff;
-                       sx-=diff;
-                       rx+=diff;
-                       d+=diff*target.bypp;
-               }
-               if (ry < clip.top())
-               {
-                       int diff=clip.top()-ry;
-                       s+=diff*glyph_bitmap->pitch;
-                       sy-=diff;
-                       ry+=diff;
-                       d+=diff*buffer_stride;
-               }
-               if (sx>0)
-                       for (int ay=0; ay<sy; ay++)
-                       {
-                               if (!opcode)            // 4bit lookup to 8bit
-                               {
-                                       register __u8 *td=d;
-                                       register int ax;
-                                       for (ax=0; ax<sx; ax++)
-                                       {       
-                                               register int b=(*s++)>>4;
-                                               if(b)
-                                                       *td++=lookup8[b];
-                                               else
-                                                       td++;
-                                       }
-                               } else if (opcode == 1) // 8bit direct
-                               {
-                                       register __u8 *td=d;
-                                       register int ax;
-                                       for (ax=0; ax<sx; ax++)
-                                       {       
-                                               register int b=*s++;
-                                               *td++^=b;
-                                       }
-                               } else
-                               {
-                                       register __u32 *td=(__u32*)d;
-                                       register int ax;
-                                       for (ax=0; ax<sx; ax++)
-                                       {       
-                                               register int b=(*s++)>>4;
-                                               if(b)
-                                                       *td++=lookup32[b];
-                                               else
-                                                       td++;
-                                       }
-                               }
-                               s+=glyph_bitmap->pitch-sx;
-                               d+=buffer_stride;
-                       }
-       }
-}
-
-void eTextPara::realign(int dir)       // der code hier ist ein wenig merkwuerdig.
-{
-       glyphString::iterator begin(glyphs.begin()), c(glyphs.begin()), end(glyphs.begin()), last;
-       if (dir==dirLeft)
-               return;
-       while (c != glyphs.end())
-       {
-               int linelength=0;
-               int numspaces=0, num=0;
-               begin=end;
-               
-                       // zeilenende suchen
-               do {
-                       last=end;
-                       ++end;
-               } while ((end != glyphs.end()) && (!(end->flags&GS_ISFIRST)));
-                       // end zeigt jetzt auf begin der naechsten zeile
-                       
-               for (c=begin; c!=end; ++c)
-               {
-                               // space am zeilenende skippen
-                       if ((c==last) && (c->flags&GS_ISSPACE))
-                               continue;
-
-                       if (c->flags&GS_ISSPACE)
-                               numspaces++;
-                       linelength+=c->w;;
-                       num++;
-               }
-               if (!num)               // line mit nur einem space
-                       continue;
-
-               switch (dir)
-               {
-               case dirRight:
-               case dirCenter:
-               {
-                       int offset=area.width()-linelength;
-                       if (dir==dirCenter)
-                               offset/=2;
-                       while (begin != end)
-                       {
-                               begin->x+=offset;
-                               begin->bbox->moveBy(offset,0);
-                               ++begin;
-                       }
-                       break;
-               }
-               case dirBlock:
-               {
-                       if (end == glyphs.end())                // letzte zeile linksbuendig lassen
-                               continue;
-                       int spacemode;
-                       if (numspaces)
-                               spacemode=1;
-                       else
-                               spacemode=0;
-                       if ((!spacemode) && (num<2))
-                               break;
-                       int off=(area.width()-linelength)*256/(spacemode?numspaces:(num-1));
-                       int curoff=0;
-                       while (begin != end)
-                       {
-                               int doadd=0;
-                               if ((!spacemode) || (begin->flags&GS_ISSPACE))
-                                       doadd=1;
-                               begin->x+=curoff>>8;
-                               begin->bbox->moveBy(curoff>>8,0);
-                               if (doadd)
-                                       curoff+=off;
-                               ++begin;
-                       }
-                       break;
-               }
-               }
-       }
-       bboxValid=false;
-}
-
-void eTextPara::clear()
-{
-       eLocker lock(ftlock);
-
-       for (glyphString::iterator i(glyphs.begin()); i!=glyphs.end(); ++i)
-       {
-               i->font->unlock();
-               delete i->bbox;
-       }
-       glyphs.clear();
-}
-
-eAutoInitP0<fontRenderClass> init_fontRenderClass(1, "Font Render Class");
diff --git a/lib/network/xmlrpc.cpp b/lib/network/xmlrpc.cpp
deleted file mode 100644 (file)
index 3d981d5..0000000
+++ /dev/null
@@ -1,523 +0,0 @@
-#ifndef DISABLE_NETWORK
-
-#include <lib/network/xmlrpc.h>
-#include <lib/base/estring.h>
-
-
-static std::map<std::string, int (*)(std::vector<eXMLRPCVariant>&, ePtrList<eXMLRPCVariant>&)> rpcproc;
-
-void eXMLRPCVariant::zero()
-{
-       _struct=0;
-       _array=0;
-       _i4=0;
-       _boolean=0;
-       _string=0;
-       _double=0;
-//     _datetime=0;
-//     _base64=0;
-}
-
-eXMLRPCVariant::eXMLRPCVariant(std::map<std::string,eXMLRPCVariant*> *__struct)
-{
-       zero();
-       _struct=__struct;
-}
-
-eXMLRPCVariant::eXMLRPCVariant(std::vector<eXMLRPCVariant> *__array)
-{
-       zero();
-       _array=__array;
-}
-
-eXMLRPCVariant::eXMLRPCVariant(__s32 *__i4)
-{
-       zero();
-       _i4=__i4;
-}
-
-eXMLRPCVariant::eXMLRPCVariant(bool *__boolean)
-{
-       zero();
-       _boolean=__boolean;
-}
-
-eXMLRPCVariant::eXMLRPCVariant(std::string *__string)
-{
-       zero();
-       _string=__string;
-}
-
-eXMLRPCVariant::eXMLRPCVariant(double *__double)
-{
-       zero();
-       _double=__double;
-}
-
-/*eXMLRPCVariant::eXMLRPCVariant(QDateTime *__datetime)
-{
-       zero();
-       _datetime=__datetime;
-} */
-
-/*eXMLRPCVariant::eXMLRPCVariant(QByteArray *__base64)
-{
-       zero();
-       _base64=__base64;
-} */
-
-eXMLRPCVariant::eXMLRPCVariant(const eXMLRPCVariant &c)
-{
-       zero();
-       if (c._i4)
-               _i4=new int(*c._i4);
-       if (c._boolean)
-               _boolean=new bool(*c._boolean);
-       if (c._string)
-               _string=new std::string(*c._string);
-       if (c._double)
-               _double=new double(*c._double);
-       // datetime, base64
-       if (c._struct)
-       {
-               _struct=new std::map<std::string,eXMLRPCVariant*>;
-               for (std::map<std::string,eXMLRPCVariant*>::iterator b(c._struct->begin()); b != c._struct->end(); ++b)
-                       _struct->insert(std::pair<std::string,eXMLRPCVariant*>(b->first, new eXMLRPCVariant(*b->second)));
-       }
-       if (c._array)
-               _array = new std::vector<eXMLRPCVariant>(*c._array);
-}
-
-eXMLRPCVariant::~eXMLRPCVariant()
-{
-       if (_struct)
-       {
-               for (std::map<std::string,eXMLRPCVariant*>::iterator i(_struct->begin()); i != _struct->end(); ++i)
-                       delete i->second;
-
-               delete _struct;
-       }
-       if (_array)
-               delete _array;
-       if (_i4)
-               delete _i4;
-       if (_boolean)
-               delete _boolean;
-       if (_string)
-               delete _string;
-       if (_double)
-               delete _string;
-/*     if (_datetime)
-               delete _datetime;*/
-/*     if (_base64)
-               delete _base64;*/
-}
-
-std::map<std::string,eXMLRPCVariant*> *eXMLRPCVariant::getStruct()
-{
-       return _struct;
-}
-
-std::vector<eXMLRPCVariant> *eXMLRPCVariant::getArray()
-{
-       return _array;
-}
-
-__s32 *eXMLRPCVariant::getI4()
-{
-       return _i4;
-}
-
-bool *eXMLRPCVariant::getBoolean()
-{
-       return _boolean;
-}
-
-std::string *eXMLRPCVariant::getString()
-{
-       return _string;
-}
-
-double *eXMLRPCVariant::getDouble()
-{
-       return _double;
-}
-
-/*QDateTime *eXMLRPCVariant::getDatetime()
-{
-       return _datetime;
-} */
-
-/*QByteArray *eXMLRPCVariant::getBase64()
-{
-       return _base64;
-} */
-
-void eXMLRPCVariant::toXML(std::string &result)
-{
-       if (getArray())
-       {
-               static std::string s1("<value><array><data>");
-               result+=s1;
-               for (unsigned int i=0; i<getArray()->size(); i++)
-               {
-                       static std::string s("  ");
-                       result+=s;
-                       (*getArray())[i].toXML(result);
-                       static std::string s1("\n");
-                       result+=s1;
-               }
-               static std::string s2("</data></array></value>\n");
-               result+=s2;
-       } else if (getStruct())
-       {
-               static std::string s1("<value><struct>");
-               result+=s1;
-               for (std::map<std::string,eXMLRPCVariant*>::iterator i(_struct->begin()); i != _struct->end(); ++i)
-               {
-                       static std::string s1("  <member><name>");
-                       result+=s1;
-                       result+=i->first;
-                       static std::string s2("</name>");
-                       result+=s2;
-                       i->second->toXML(result);
-                       static std::string s3("</member>\n");
-                       result+=s3;
-               }
-               static std::string s2("</struct></value>\n");
-               result+=s2;
-       } else if (getI4())
-       {
-               static std::string s1("<value><i4>");
-               result+=s1;
-               result+=getNum(*getI4());
-               static std::string s2("</i4></value>");
-               result+=s2;
-       } else if (getBoolean())
-       {
-               static std::string s0("<value><boolean>0</boolean></value>");
-               static std::string s1("<value><boolean>1</boolean></value>");
-               result+=(*getBoolean())?s1:s0;
-       } else if (getString())
-       {
-               static std::string s1("<value><string>");
-               static std::string s2("</string></value>");
-               result+=s1;
-               result+=*getString();
-               result+=s2;
-       } else if (getDouble())
-       {
-//             result+=std::string().sprintf("<value><double>%lf</double></value>", *getDouble());
-#warning double support removed
-       }       else
-               eFatal("couldn't append");
-}
-
-static eXMLRPCVariant *fromXML(XMLTreeNode *n)
-{
-       if (strcmp(n->GetType(), "value"))
-               return 0;
-       n=n->GetChild();
-       const char *data=n->GetData();
-       if (!data)
-               data="";
-       if ((!strcmp(n->GetType(), "i4")) || (!strcmp(n->GetType(), "int")))
-               return new eXMLRPCVariant(new int(atoi(data)));
-       else if (!strcmp(n->GetType(), "boolean"))
-               return new eXMLRPCVariant(new bool(atoi(data)));
-       else if (!strcmp(n->GetType(), "string"))
-               return new eXMLRPCVariant(new std::string(data));
-       else if (!strcmp(n->GetType(), "double"))
-               return new eXMLRPCVariant(new double(atof(data)));
-       else if (!strcmp(n->GetType(), "struct")) {
-               std::map<std::string,eXMLRPCVariant*> *s=new std::map<std::string,eXMLRPCVariant*>;
-               for (n=n->GetChild(); n; n=n->GetNext())
-               {
-                       if (strcmp(data, "member"))
-                       {
-                               delete s;
-                               return 0;
-                       }
-                       std::string name=0;
-                       eXMLRPCVariant *value;
-                       for (XMLTreeNode *v=n->GetChild(); v; v=v->GetNext())
-                       {
-                               if (!strcmp(v->GetType(), "name"))
-                                       name=std::string(v->GetData());
-                               else if (!strcmp(v->GetType(), "value"))
-                                       value=fromXML(v);
-                       }
-                       if ((!value) || (!name))
-                       {
-                               delete s;
-                               return 0;
-                       }
-                       s->INSERT(name,value);
-               }
-               return new eXMLRPCVariant(s);
-       } else if (!strcmp(n->GetType(), "array"))
-       {
-               ePtrList<eXMLRPCVariant> l;
-               #warning autodelete removed
-//             l.setAutoDelete(true);
-               n=n->GetChild();
-               if (strcmp(data, "data"))
-                       return 0;
-               for (n=n->GetChild(); n; n=n->GetNext())
-                       if (!strcmp(n->GetType(), "value"))
-                       {
-                               eXMLRPCVariant *value=fromXML(n);
-                               if (!value)
-                                       return 0;
-                               l.push_back(value);
-                       }
-
-               return new eXMLRPCVariant( l.getVector() );
-       }
-       eDebug("couldn't convert %s", n->GetType());
-       return 0;
-}
-
-eXMLRPCResponse::eXMLRPCResponse(eHTTPConnection *c):
-       eHTTPDataSource(c), parser("ISO-8859-1")
-{
-       // size etc. setzen aber erst NACH data-phase
-       connection->localstate=eHTTPConnection::stateWait;
-}
-
-eXMLRPCResponse::~eXMLRPCResponse()
-{
-}
-
-int eXMLRPCResponse::doCall()
-{
-       eDebug("doing call");
-       result="";
-               // get method name
-       std::string methodName=0;
-       
-       if (connection->remote_header["Content-Type"]!="text/xml")
-       {
-               eDebug("remote header failure (%s != text/xml)", (connection->remote_header["Content-Type"]).c_str());
-               return -3;
-       }
-       
-       XMLTreeNode *methodCall=parser.RootNode();
-       if (!methodCall)
-       {
-               eDebug("empty xml");
-               return -1;
-       }
-       if (strcmp(methodCall->GetType(), "methodCall"))
-       {
-               eDebug("no methodCall found");
-               return -2;
-       }
-
-       ePtrList<eXMLRPCVariant> params;
-//     params.setAutoDelete(true);
-#warning params autodelete remove
-       
-       for (XMLTreeNode *c=methodCall->GetChild(); c; c=c->GetNext())
-       {
-               if (!strcmp(c->GetType(), "methodName"))
-                       methodName=std::string(c->GetData());
-               else if (!strcmp(c->GetType(), "params"))
-               {
-                       for (XMLTreeNode *p=c->GetChild(); p; p=p->GetNext())
-                               if (!strcmp(p->GetType(), "param"))
-                                       params.push_back(fromXML(p->GetChild()));
-               } else
-               {
-                       eDebug("unknown stuff found");
-                       return 0;
-               }
-       }
-       
-       if (!methodName)
-       {
-               eDebug("no methodName found!");
-               return -3;
-       }
-       
-       eDebug("methodName: %s", methodName.c_str() );
-       
-       result="<?xml version=\"1.0\"?>\n"
-               "<methodResponse>";
-       
-       ePtrList<eXMLRPCVariant> ret;
-//     ret.setAutoDelete(true);
-#warning autodelete removed
-
-       int (*proc)(std::vector<eXMLRPCVariant>&, ePtrList<eXMLRPCVariant> &)=rpcproc[methodName];
-       int fault;
-
-       std::vector<eXMLRPCVariant>* v = params.getVector();
-       
-       if (!proc)
-       {
-               fault=1;
-               xmlrpc_fault(ret, -1, "called method not present");             
-       } else
-               fault=proc( *v , ret);
-
-       delete v;
-
-       eDebug("converting to text...");
-
-       if (fault)
-       {
-               result+="<fault>\n";
-               ret.current()->toXML(result);
-               result+="</fault>\n";
-       } else
-       {
-               result+="<params>\n";
-               for (ePtrList<eXMLRPCVariant>::iterator i(ret); i != ret.end(); ++i)
-               {
-                       result+="<param>";
-                       i->toXML(result);
-                       result+="</param>";
-               }
-               result+="</params>";
-       }
-       result+="</methodResponse>";
-       char buffer[10];
-       snprintf(buffer, 10, "%d", size=result.length());
-       wptr=0;
-       connection->local_header["Content-Type"]="text/xml";
-       connection->local_header["Content-Length"]=buffer;
-       connection->code=200;
-       connection->code_descr="OK";
-       connection->localstate=eHTTPConnection::stateResponse;
-       return 0;
-}
-
-int eXMLRPCResponse::doWrite(int hm)
-{
-       int tw=size-wptr;
-       if (tw>hm)
-               tw=hm;
-       if (tw<=0)
-               return -1;
-       connection->writeBlock(result.c_str()+wptr, tw);
-       wptr+=tw;
-       return size > wptr ? 1 : -1;
-}
-
-void eXMLRPCResponse::haveData(void *data, int len)
-{
-       if (result)
-               return;
-       int err=0;
-
-       if (!parser.Parse((char*)data, len, !len))
-       {
-               char temp[len+1];
-               temp[len]=0;
-               memcpy(temp, data, len);
-               eDebug("%s: %s", temp, parser.ErrorString(parser.GetErrorCode()));
-               err=1;
-       }
-       
-       if ((!err) && (!len))
-               err=doCall();
-
-       if (err)
-       {
-               eDebug("schade: %d", err);
-               connection->code=400;
-               connection->code_descr="Bad request";
-               char buffer[10];
-               snprintf(buffer, 10, "%d", size=result.length());
-               wptr=0;
-               connection->local_header["Content-Type"]="text/html";
-               connection->local_header["Content-Length"]=buffer;
-               result.sprintf("XMLRPC error %d\n", err);
-               connection->localstate=eHTTPConnection::stateResponse;
-       }
-}
-
-void xmlrpc_initialize(eHTTPD *httpd)
-{
-       httpd->addResolver(new eHTTPXMLRPCResolver);
-}
-
-void xmlrpc_addMethod(std::string methodName, int (*proc)(std::vector<eXMLRPCVariant>&, ePtrList<eXMLRPCVariant>&))
-{
-       rpcproc[methodName]=proc;
-}
-
-void xmlrpc_fault(ePtrList<eXMLRPCVariant> &res, int faultCode, std::string faultString)
-{
-       std::map<std::string,eXMLRPCVariant*> *s=new std::map<std::string,eXMLRPCVariant*>;
-       s->INSERT("faultCode", new eXMLRPCVariant(new __s32(faultCode)));
-       s->INSERT("faultString", new eXMLRPCVariant(new std::string(faultString)));
-       res.push_back(new eXMLRPCVariant(s));
-}
-
-int xmlrpc_checkArgs(std::string args, std::vector<eXMLRPCVariant> &parm, ePtrList<eXMLRPCVariant> &res)
-{
-       if (parm.size() != args.length())
-       {
-               xmlrpc_fault(res, -500, std::string().sprintf("parameter count mismatch (found %d, expected %d)", parm.size(), args.length()));
-               return 1;
-       }
-       
-       for (unsigned int i=0; i<args.length(); i++)
-       {
-               switch (args[i])
-               {
-               case 'i':
-                       if (parm[i].getI4())
-                               continue;
-                       break;
-               case 'b':
-                       if (parm[i].getBoolean())
-                               continue;
-                       break;
-               case 's':
-                       if (parm[i].getString())
-                               continue;
-                       break;
-               case 'd':
-                       if (parm[i].getDouble())
-                               continue;
-                       break;
-/*             case 't':
-                       if (parm[i].getDatetime())
-                               continue;
-                       break;
-               case '6':
-                       if (parm[i].getBase64())
-                               continue;
-                       break;*/
-               case '$':
-                       if (parm[i].getStruct())
-                               continue;
-                       break;
-               case 'a':
-                       if (parm[i].getArray())
-                               continue;
-                       break;
-               }
-               xmlrpc_fault(res, -501, std::string().sprintf("parameter type mismatch, expected %c as #%d", args[i], i));
-               return 1;
-       }
-       return 0;
-}
-
-eHTTPXMLRPCResolver::eHTTPXMLRPCResolver()
-{
-}
-
-eHTTPDataSource *eHTTPXMLRPCResolver::getDataSource(std::string request, std::string path, eHTTPConnection *conn)
-{
-       if ((path=="/RPC2") && (request=="POST"))
-               return new eXMLRPCResponse(conn);
-       if ((path=="/SID2") && (request=="POST"))
-               return new eXMLRPCResponse(conn);
-       return 0;
-}
-
-#endif //DISABLE_NETWORK
diff --git a/lib/network/xmlrpc.h b/lib/network/xmlrpc.h
deleted file mode 100644 (file)
index b43e8e3..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-#ifndef DISABLE_NETWORK
-
-#ifndef __xmlrpc_h_
-#define __xmlrpc_h_
-
-#include <asm/types.h>
-#include <map>
-#include <vector>
-#include <xmltree.h>
-
-#include <string>
-#include <lib/base/eptrlist.h>
-#include <lib/network/httpd.h>
-
-#define INSERT(KEY,VALUE) insert(std::pair<std::string, eXMLRPCVariant*>(KEY,VALUE))
-
-class eXMLRPCVariant
-{
-       std::map<std::string,eXMLRPCVariant*> *_struct;
-       std::vector<eXMLRPCVariant> *_array;
-       __s32 *_i4;
-       bool *_boolean;
-       std::string *_string;
-       double *_double;
-//     QDateTime *_datetime;
-//     QByteArray *_base64;
-       void zero();
-public:
-       eXMLRPCVariant(std::map<std::string,eXMLRPCVariant*> *_struct);
-       eXMLRPCVariant(std::vector<eXMLRPCVariant> *_array);
-       eXMLRPCVariant(__s32 *_i4);
-       eXMLRPCVariant(bool *_boolean);
-       eXMLRPCVariant(std::string *_string);
-       eXMLRPCVariant(double *_double);
-//     eXMLRPCVariant(QDateTime *_datetime);
-//     eXMLRPCVariant(QByteArray *_base64);
-       eXMLRPCVariant(const eXMLRPCVariant &c);
-       ~eXMLRPCVariant();
-       
-       std::map<std::string,eXMLRPCVariant*> *getStruct();
-       std::vector<eXMLRPCVariant> *getArray();
-       __s32 *getI4();
-       bool *getBoolean();
-       std::string *getString();
-       double *getDouble();
-//     QDateTime *getDatetime();
-//     QByteArray *getBase64();
-       
-       void toXML(std::string &);
-};
-
-class eXMLRPCResponse: public eHTTPDataSource
-{
-       XMLTreeParser parser;
-       std::string result;
-       int size;
-       int wptr;
-       int doCall();
-public:
-       eXMLRPCResponse(eHTTPConnection *c);
-       ~eXMLRPCResponse();
-       
-       int doWrite(int);
-       void haveData(void *data, int len);
-};
-
-void xmlrpc_initialize(eHTTPD *httpd);
-void xmlrpc_addMethod(std::string methodName, int (*)(std::vector<eXMLRPCVariant>&, ePtrList<eXMLRPCVariant>&));
-void xmlrpc_fault(ePtrList<eXMLRPCVariant> &res, int faultCode, std::string faultString);
-int xmlrpc_checkArgs(std::string args, std::vector<eXMLRPCVariant>&, ePtrList<eXMLRPCVariant> &res);
-
-class eHTTPXMLRPCResolver: public iHTTPPathResolver
-{
-       DECLARE_REF(eHTTPXMLRPCResolver);
-public:
-       eHTTPXMLRPCResolver();
-       eHTTPDataSource *getDataSource(std::string request, std::string path, eHTTPConnection *conn);
-};
-
-#endif
-
-#endif //DISABLE_NETWORK