+ yazpp_1::PDU_Assoc **pdu;
+ int m_duration_freq[22];
+ double m_duration_lim[22];
+ double m_duration_max;
+ double m_duration_min;
+ double m_duration_total;
+ int m_stop_signo;
+ public:
+ Rep();
+ ~Rep();
+ };
+ class FrontendNet::My_Timer_Thread : public yazpp_1::ISocketObserver {
+ private:
+ yazpp_1::ISocketObservable *m_obs;
+ Pipe m_pipe;
+ bool m_timeout;
+ public:
+ My_Timer_Thread(yazpp_1::ISocketObservable *obs, int duration);
+ void socketNotify(int event);
+ bool timeout();
+ };
+ class FrontendNet::ZAssocChild : public yazpp_1::Z_Assoc {
+ public:
+ ~ZAssocChild();
+ ZAssocChild(yazpp_1::IPDU_Observable *the_PDU_Observable,
+ mp::ThreadPoolSocketObserver *m_thread_pool_observer,
+ const mp::Package *package,
+ Port *port,
+ Rep *rep,
+ yazpp_1::LimitConnect &limit,
+ const char *peername);
+ int m_no_requests;
+ Port *m_port;
+ private:
+ yazpp_1::IPDU_Observer* sessionNotify(
+ yazpp_1::IPDU_Observable *the_PDU_Observable,
+ int fd);
+ void recv_GDU(Z_GDU *apdu, int len);
+ void report(Z_HTTP_Request *hreq);
+ void failNotify();
+ void timeoutNotify();
+ void connectNotify();
+ private:
+ mp::ThreadPoolSocketObserver *m_thread_pool_observer;
+ mp::Session m_session;
+ mp::Origin m_origin;
+ bool m_delete_flag;
+ const mp::Package *m_package;
+ Rep *m_p;
+ yazpp_1::LimitConnect &m_limit_http_req;
+ };
+ class FrontendNet::ThreadPoolPackage : public mp::IThreadPoolMsg {
+ public:
+ ThreadPoolPackage(mp::Package *package,
+ yf::FrontendNet::ZAssocChild *ses,
+ Rep *rep);
+ ~ThreadPoolPackage();
+ IThreadPoolMsg *handle();
+ void result(const char *t_info);
+ bool cleanup(void *info);
+ private:
+ yaz_timing_t timer;
+ ZAssocChild *m_assoc_child;
+ mp::Package *m_package;
+ Rep *m_p;
+ };
+ class FrontendNet::ZAssocServer : public yazpp_1::Z_Assoc {
+ public:
+ ~ZAssocServer();
+ ZAssocServer(yazpp_1::IPDU_Observable *PDU_Observable,
+ FrontendNet::Port *port,
+ Rep *rep);
+ void set_package(const mp::Package *package);
+ void set_thread_pool(ThreadPoolSocketObserver *observer);
+ private:
+ yazpp_1::IPDU_Observer* sessionNotify(
+ yazpp_1::IPDU_Observable *the_PDU_Observable,
+ int fd);
+ void recv_GDU(Z_GDU *apdu, int len);
+
+ void failNotify();
+ void timeoutNotify();
+ void connectNotify();
+ private:
+ mp::ThreadPoolSocketObserver *m_thread_pool_observer;
+ const mp::Package *m_package;
+ yazpp_1::LimitConnect limit_connect;
+ yazpp_1::LimitConnect limit_http_req;
+ Port *m_port;
+ Rep *m_p;