ROOT logo
// @(#)root/proofx:$Id: TXUnixSocket.h 24719 2008-07-09 07:07:25Z 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_TXUnixSocket
#define ROOT_TXUnixSocket

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TXUnixSocket                                                         //
//                                                                      //
// Implementation of TXSocket using PF_UNIX sockets.                    //
// Used for the internal connection between coordinator and proofserv.  //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TXSocket
#include "TXSocket.h"
#endif
#include <list>

class TXHandler;

class TXUnixSocket  : public TXSocket {

friend class TXProofServ;

private:
   std::list<Int_t>  fClientIDs;

public:
   TXUnixSocket(const char *u,
                Int_t psid = -1, Char_t ver = -1, TXHandler *handler = 0);
   virtual ~TXUnixSocket() { fSessionID = -1; }

   Int_t GetClientID() const { return (fClientIDs.size() > 0) ? fClientIDs.front() : -1; }
   Int_t GetClientIDSize() const { return fClientIDs.size(); }

   void  RemoveClientID() { if (fClientIDs.size() > 1) fClientIDs.pop_front(); }
   void  SetClientID(Int_t cid) { fClientIDs.push_front(cid); }

   // Try reconnection after error
   Int_t Reconnect();

   ClassDef(TXUnixSocket, 0) //Connection class for Xrd PROOF using UNIX sockets
};

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