ROOT logo
// @(#)root/proofx:$Id: TXSocketHandler.h 26678 2008-12-05 14:53:23Z ganis $
// Author: G. Ganis Oct 2005

/*************************************************************************
 * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TXSocketHandler
#define ROOT_TXSocketHandler

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TXSocketHandler                                                      //
//                                                                      //
// Input handler for xproofd sockets. These sockets cannot be directly  //
// monitored on their descriptor, because the reading activity goes via //
// the reader thread. This class allows to handle this problem.         //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TSysEvtHandler
#include "TSysEvtHandler.h"
#endif
#ifndef ROOT_TXSocket
#include "TXSocket.h"
#endif

class TXSocketHandler : public TFileHandler {

// friend class TXSocket;

   TFileHandler   *fHandler;    // Handler associated to the input socket
   TSocket        *fInputSock;  // Input socket from client or master

   void    SetHandler(TFileHandler *h, TSocket *s)
                                   { fHandler = h; fInputSock = s; }

   static TXSocketHandler *fgSocketHandler; // Input socket handler

   TXSocketHandler(TFileHandler *h, TSocket *s) :
                   TFileHandler(TXSocket::fgPipe.GetRead(), 1)
                   { fHandler = h; fInputSock = s; }
public:
   virtual ~TXSocketHandler() { }

   Bool_t  Notify();
   Bool_t  ReadNotify() { return Notify(); }

   static TXSocketHandler *GetSocketHandler(TFileHandler *h = 0, TSocket *s = 0);

   ClassDef(TXSocketHandler, 0) //Input handler class for xproofd sockets
};

#endif
 TXSocketHandler.h:1
 TXSocketHandler.h:2
 TXSocketHandler.h:3
 TXSocketHandler.h:4
 TXSocketHandler.h:5
 TXSocketHandler.h:6
 TXSocketHandler.h:7
 TXSocketHandler.h:8
 TXSocketHandler.h:9
 TXSocketHandler.h:10
 TXSocketHandler.h:11
 TXSocketHandler.h:12
 TXSocketHandler.h:13
 TXSocketHandler.h:14
 TXSocketHandler.h:15
 TXSocketHandler.h:16
 TXSocketHandler.h:17
 TXSocketHandler.h:18
 TXSocketHandler.h:19
 TXSocketHandler.h:20
 TXSocketHandler.h:21
 TXSocketHandler.h:22
 TXSocketHandler.h:23
 TXSocketHandler.h:24
 TXSocketHandler.h:25
 TXSocketHandler.h:26
 TXSocketHandler.h:27
 TXSocketHandler.h:28
 TXSocketHandler.h:29
 TXSocketHandler.h:30
 TXSocketHandler.h:31
 TXSocketHandler.h:32
 TXSocketHandler.h:33
 TXSocketHandler.h:34
 TXSocketHandler.h:35
 TXSocketHandler.h:36
 TXSocketHandler.h:37
 TXSocketHandler.h:38
 TXSocketHandler.h:39
 TXSocketHandler.h:40
 TXSocketHandler.h:41
 TXSocketHandler.h:42
 TXSocketHandler.h:43
 TXSocketHandler.h:44
 TXSocketHandler.h:45
 TXSocketHandler.h:46
 TXSocketHandler.h:47
 TXSocketHandler.h:48
 TXSocketHandler.h:49
 TXSocketHandler.h:50
 TXSocketHandler.h:51
 TXSocketHandler.h:52
 TXSocketHandler.h:53
 TXSocketHandler.h:54
 TXSocketHandler.h:55
 TXSocketHandler.h:56
 TXSocketHandler.h:57
 TXSocketHandler.h:58