+++ /dev/null
-#ifndef __DATATHREAD_H__
-#define __DATATHREAD_H__
-
-#include "../../../users.h"
-#include "base_store.h"
-#include <pthread.h>
-#include <expat.h>
-
-class DataThread {
-public:
- DataThread() : done(false), sock(-1) { Init(); };
- DataThread(USERS * u, BASE_STORE * s, int sd)
- : users(u),
- store(s),
- sock(sd),
- done(false)
- {
- Init();
- };
- ~DataThread();
-
- void SetUsers(USERS * u) { users = u; };
- void SetStore(BASE_STORE * s) { store = s; };
- void SetSocket(int s) { sock = s; };
-
- bool isDone() const { return done; };
- bool Init();
-
- bool Start();
- bool Stop();
-
- static void * Run(void *);
-
-
-private:
- pthread_t thread;
- USERS * users;
- BASE_STORE * store;
- XML_Parser parser;
- int sock;
- bool done;
- bool running;
- bool stopped;
- BLOWFISH_CTX ctx;
- std::string password;
- std::string reply;
-
- void Handle();
- bool PrepareContect();
- void Encode(const std::string &, char *);
- void Decode(char *, const std::string &);
-
- friend void StartHandler(void *data, const char *el, const char **attr);
- friend void EndHandler(void *data, const char *el);
- friend void DataHandler(void *data, const char *el);
-};
-
-#endif