using namespace yp2;
-class P2_Session : public yazpp_1::Z_Assoc {
+class ZAssocServerChild : public yazpp_1::Z_Assoc {
public:
- ~P2_Session();
- P2_Session(yazpp_1::IPDU_Observable *the_PDU_Observable,
+ ~ZAssocServerChild();
+ ZAssocServerChild(yazpp_1::IPDU_Observable *the_PDU_Observable,
ThreadPoolSocketObserver *m_thread_pool_observer,
const Package *package);
int m_no_requests;
class ThreadPoolPackage : public IThreadPoolMsg {
public:
- ThreadPoolPackage(Package *package, P2_Session *ses) :
+ ThreadPoolPackage(Package *package, ZAssocServerChild *ses) :
m_session(ses), m_package(package) { };
~ThreadPoolPackage();
IThreadPoolMsg *handle();
void result();
private:
- P2_Session *m_session;
+ ZAssocServerChild *m_session;
Package *m_package;
};
}
-P2_Session::P2_Session(yazpp_1::IPDU_Observable *the_PDU_Observable,
+ZAssocServerChild::ZAssocServerChild(yazpp_1::IPDU_Observable *the_PDU_Observable,
ThreadPoolSocketObserver *my_thread_pool,
const Package *package)
: Z_Assoc(the_PDU_Observable)
}
-yazpp_1::IPDU_Observer *P2_Session::sessionNotify(yazpp_1::IPDU_Observable
+yazpp_1::IPDU_Observer *ZAssocServerChild::sessionNotify(yazpp_1::IPDU_Observable
*the_PDU_Observable, int fd)
{
return 0;
}
-P2_Session::~P2_Session()
+ZAssocServerChild::~ZAssocServerChild()
{
}
-void P2_Session::recv_GDU(Z_GDU *z_pdu, int len)
+void ZAssocServerChild::recv_GDU(Z_GDU *z_pdu, int len)
{
m_no_requests++;
m_thread_pool_observer->put(tp);
}
-void P2_Session::failNotify()
+void ZAssocServerChild::failNotify()
{
// TODO: send Package to signal "close"
if (m_session.is_closed())
m_thread_pool_observer->put(tp);
}
-void P2_Session::timeoutNotify()
+void ZAssocServerChild::timeoutNotify()
{
failNotify();
}
-void P2_Session::connectNotify()
+void ZAssocServerChild::connectNotify()
{
}
-class P2_Server : public yazpp_1::Z_Assoc {
+class ZAssocServer : public yazpp_1::Z_Assoc {
public:
- ~P2_Server();
- P2_Server(yazpp_1::IPDU_Observable *the_PDU_Observable,
+ ~ZAssocServer();
+ ZAssocServer(yazpp_1::IPDU_Observable *the_PDU_Observable,
ThreadPoolSocketObserver *m_thread_pool_observer,
const Package *package);
private:
};
-P2_Server::P2_Server(yazpp_1::IPDU_Observable *the_PDU_Observable,
+ZAssocServer::ZAssocServer(yazpp_1::IPDU_Observable *the_PDU_Observable,
ThreadPoolSocketObserver *thread_pool_observer,
const Package *package)
: Z_Assoc(the_PDU_Observable)
}
-yazpp_1::IPDU_Observer *P2_Server::sessionNotify(yazpp_1::IPDU_Observable
+yazpp_1::IPDU_Observer *ZAssocServer::sessionNotify(yazpp_1::IPDU_Observable
*the_PDU_Observable, int fd)
{
- P2_Session *my = new P2_Session(the_PDU_Observable, m_thread_pool_observer,
+ ZAssocServerChild *my = new ZAssocServerChild(the_PDU_Observable, m_thread_pool_observer,
m_package);
return my;
}
-P2_Server::~P2_Server()
+ZAssocServer::~ZAssocServer()
{
}
-void P2_Server::recv_GDU(Z_GDU *apdu, int len)
+void ZAssocServer::recv_GDU(Z_GDU *apdu, int len)
{
}
-void P2_Server::failNotify()
+void ZAssocServer::failNotify()
{
}
-void P2_Server::timeoutNotify()
+void ZAssocServer::timeoutNotify()
{
}
-void P2_Server::connectNotify()
+void ZAssocServer::connectNotify()
{
}
ThreadPoolSocketObserver threadPool(&mySocketManager, m_no_threads);
- P2_Server z(my_PDU_Assoc, &threadPool, &package);
+ ZAssocServer z(my_PDU_Assoc, &threadPool, &package);
z.server(m_listen_address.c_str());
while (mySocketManager.processEvent() > 0)
-/* $Id: p2.cpp,v 1.3 2005-10-08 23:29:32 adam Exp $
+/* $Id: p2.cpp,v 1.4 2005-10-14 10:27:18 adam Exp $
Copyright (c) 1998-2005, Index Data.
This file is part of the yaz-proxy.
}
P2_Server::P2_Server(IPDU_Observable *the_PDU_Observable,
- ThreadPoolSocketObserver *my_thread,
+ yp2::ThreadPoolSocketObserver *my_thread,
P2_Config *config,
P2_ModuleFactory *modules)
: Z_Assoc(the_PDU_Observable)
PDU_Assoc *my_PDU_Assoc = 0;
- ThreadPoolSocketObserver my_thread(&mySocketManager, config.m_no_threads);
+ yp2::ThreadPoolSocketObserver my_thread(&mySocketManager,
+ config.m_no_threads);
my_PDU_Assoc = new PDU_Assoc(&mySocketManager);
-/* $Id: p2_frontend.cpp,v 1.3 2005-10-08 23:29:32 adam Exp $
+/* $Id: p2_frontend.cpp,v 1.4 2005-10-14 10:27:18 adam Exp $
Copyright (c) 1998-2005, Index Data.
This file is part of the yaz-proxy.
using namespace std;
P2_Frontend::P2_Frontend(IPDU_Observable *the_PDU_Observable,
- ThreadPoolSocketObserver
+ yp2::ThreadPoolSocketObserver
*my_thread, P2_Server *server)
: Z_Assoc(the_PDU_Observable)
{
-/* $Id: p2_frontend.h,v 1.4 2005-10-13 20:06:45 adam Exp $
+/* $Id: p2_frontend.h,v 1.5 2005-10-14 10:27:18 adam Exp $
Copyright (c) 1998-2005, Index Data.
This file is part of the yaz-proxy.
public:
~P2_Server();
P2_Server(yazpp_1::IPDU_Observable *the_PDU_Observable,
- ThreadPoolSocketObserver *m_my_thread,
+ yp2::ThreadPoolSocketObserver *m_my_thread,
P2_Config *config,
P2_ModuleFactory *modules);
P2_Config *lockConfig();
void connectNotify();
private:
P2_Config *m_config;
- ThreadPoolSocketObserver *m_my_thread;
+ yp2::ThreadPoolSocketObserver *m_my_thread;
pthread_mutex_t m_mutex_config;
};
yazpp_1::Yaz_Z_Query m_query;
};
-class P2_Msg : public IThreadPoolMsg {
+class P2_Msg : public yp2::IThreadPoolMsg {
public:
int m_close_flag;
yazpp_1::GDU *m_gdu;
yazpp_1::GDU *m_output;
P2_Frontend *m_front;
P2_Server *m_server;
- IThreadPoolMsg *handle();
+ yp2::IThreadPoolMsg *handle();
void result();
P2_Msg(yazpp_1::GDU *gdu, P2_Frontend *front, P2_Server *server);
virtual ~P2_Msg();
public:
~P2_Frontend();
P2_Frontend(yazpp_1::IPDU_Observable *the_PDU_Observable,
- ThreadPoolSocketObserver *m_my_thread, P2_Server *server);
+ yp2::ThreadPoolSocketObserver *m_my_thread, P2_Server *server);
IPDU_Observer* sessionNotify(yazpp_1::IPDU_Observable *the_PDU_Observable,
int fd);
private:
yazpp_1::GDUQueue m_in_queue;
- ThreadPoolSocketObserver *m_my_thread;
+ yp2::ThreadPoolSocketObserver *m_my_thread;
P2_Server *m_server;
private:
bool P2_Frontend::search(Z_GDU *z_gdu);
-/* $Id: p2_msg.cpp,v 1.3 2005-10-08 23:29:32 adam Exp $
+/* $Id: p2_msg.cpp,v 1.4 2005-10-14 10:27:18 adam Exp $
Copyright (c) 1998-2005, Index Data.
This file is part of the yaz-proxy.
return zget_APDU(odr, Z_APDU_presentResponse);
}
-IThreadPoolMsg *P2_Msg::handle()
+yp2::IThreadPoolMsg *P2_Msg::handle()
{
ODR odr = odr_createmem(ODR_ENCODE);
yaz_log(YLOG_LOG, "P2_Msg:handle begin");
-/* $Id: test_thread_pool_observer.cpp,v 1.4 2005-10-13 20:06:45 adam Exp $
+/* $Id: test_thread_pool_observer.cpp,v 1.5 2005-10-14 10:27:18 adam Exp $
Copyright (c) 1998-2005, Index Data.
This file is part of the yaz-proxy.
class My_Timer_Thread;
-class My_Msg : public IThreadPoolMsg {
+class My_Msg : public yp2::IThreadPoolMsg {
public:
- IThreadPoolMsg *handle();
+ yp2::IThreadPoolMsg *handle();
void result();
int m_val;
My_Timer_Thread *m_timer;
private:
ISocketObservable *m_obs;
int m_fd[2];
- ThreadPoolSocketObserver *m_t;
+ yp2::ThreadPoolSocketObserver *m_t;
public:
int m_sum;
int m_requests;
int m_responses;
- My_Timer_Thread(ISocketObservable *obs, ThreadPoolSocketObserver *t);
+ My_Timer_Thread(ISocketObservable *obs, yp2::ThreadPoolSocketObserver *t);
void socketNotify(int event);
};
-IThreadPoolMsg *My_Msg::handle()
+yp2::IThreadPoolMsg *My_Msg::handle()
{
My_Msg *res = new My_Msg;
}
My_Timer_Thread::My_Timer_Thread(ISocketObservable *obs,
- ThreadPoolSocketObserver *t) : m_obs(obs)
+ yp2::ThreadPoolSocketObserver *t) : m_obs(obs)
{
pipe(m_fd);
m_t = t;
{
SocketManager mySocketManager;
- ThreadPoolSocketObserver m(&mySocketManager, 3);
+ yp2::ThreadPoolSocketObserver m(&mySocketManager, 3);
My_Timer_Thread t(&mySocketManager, &m) ;
while (t.m_responses < 30 && mySocketManager.processEvent() > 0)
;
-/* $Id: thread_pool_observer.cpp,v 1.5 2005-10-14 10:08:40 adam Exp $
+/* $Id: thread_pool_observer.cpp,v 1.6 2005-10-14 10:27:18 adam Exp $
Copyright (c) 1998-2005, Index Data.
This file is part of the yaz-proxy.
#include "thread_pool_observer.hpp"
using namespace yazpp_1;
+using namespace yp2;
IThreadPoolMsg::~IThreadPoolMsg()
{
-/* $Id: thread_pool_observer.hpp,v 1.2 2005-10-14 10:08:40 adam Exp $
+/* $Id: thread_pool_observer.hpp,v 1.3 2005-10-14 10:27:18 adam Exp $
Copyright (c) 1998-2005, Index Data.
This file is part of the yaz-proxy.
#include <yaz++/socket-observer.h>
#include <yaz/yconfig.h>
-class IThreadPoolMsg {
-public:
- virtual IThreadPoolMsg *handle() = 0;
- virtual void result() = 0;
- virtual ~IThreadPoolMsg();
-};
-
-class ThreadPoolSocketObserver : public yazpp_1::ISocketObserver {
-private:
- class Worker {
+namespace yp2 {
+ class IThreadPoolMsg {
public:
- Worker(ThreadPoolSocketObserver *s) : m_s(s) {};
- ThreadPoolSocketObserver *m_s;
- void operator() (void) {
- m_s->run(0);
- }
+ virtual IThreadPoolMsg *handle() = 0;
+ virtual void result() = 0;
+ virtual ~IThreadPoolMsg();
};
-public:
- ThreadPoolSocketObserver(yazpp_1::ISocketObservable *obs, int no_threads);
- virtual ~ThreadPoolSocketObserver();
- void socketNotify(int event);
- void put(IThreadPoolMsg *m);
- IThreadPoolMsg *get();
- void run(void *p);
- int m_fd[2];
-private:
- yazpp_1::ISocketObservable *m_SocketObservable;
- int m_no_threads;
- boost::thread_group m_thrds;
- std::deque<IThreadPoolMsg *> m_input;
- std::deque<IThreadPoolMsg *> m_output;
+ class ThreadPoolSocketObserver : public yazpp_1::ISocketObserver {
+ private:
+ class Worker {
+ public:
+ Worker(ThreadPoolSocketObserver *s) : m_s(s) {};
+ ThreadPoolSocketObserver *m_s;
+ void operator() (void) {
+ m_s->run(0);
+ }
+ };
+ public:
+ ThreadPoolSocketObserver(yazpp_1::ISocketObservable *obs,
+ int no_threads);
+ virtual ~ThreadPoolSocketObserver();
+ void socketNotify(int event);
+ void put(IThreadPoolMsg *m);
+ IThreadPoolMsg *get();
+ void run(void *p);
+ int m_fd[2];
+ private:
+ yazpp_1::ISocketObservable *m_SocketObservable;
+ int m_no_threads;
+ boost::thread_group m_thrds;
- boost::mutex m_mutex_input_data;
- boost::condition m_cond_input_data;
- boost::mutex m_mutex_output_data;
- bool m_stop_flag;
+ std::deque<IThreadPoolMsg *> m_input;
+ std::deque<IThreadPoolMsg *> m_output;
-
-};
+ boost::mutex m_mutex_input_data;
+ boost::condition m_cond_input_data;
+ boost::mutex m_mutex_output_data;
+ bool m_stop_flag;
+
+ };
+}
#endif
/*
* Local variables: