XrdMonSenderInfo.hh

Go to the documentation of this file.
00001 /*****************************************************************************/
00002 /*                                                                           */
00003 /*                            XrdMonSenderInfo.hh                            */
00004 /*                                                                           */
00005 /* (c) 2005 by the Board of Trustees of the Leland Stanford, Jr., University */
00006 /*                            All Rights Reserved                            */
00007 /*       Produced by Jacek Becla for Stanford University under contract      */
00008 /*              DE-AC02-76SF00515 with the Department of Energy              */
00009 /*****************************************************************************/
00010 
00011 // $Id: XrdMonSenderInfo.hh 22437 2008-03-04 14:35:16Z rdm $
00012 
00013 #ifndef XRDMONSENDERINFO_HH
00014 #define XRDMONSENDERINFO_HH
00015 
00016 #include "XrdMon/XrdMonTypes.hh"
00017 #include <stdio.h>
00018 #include <netinet/in.h>
00019 #include <map>
00020 #include <vector>
00021 using std::map;
00022 using std::vector;
00023 
00024 class XrdMonSenderInfo {
00025 public:
00026     static senderid_t convert2Id(struct sockaddr_in sAddr);
00027     static hp_t addr2HostPort(struct sockaddr_in sAddr) {
00028         return id2HostPort(convert2Id(sAddr));
00029     }
00030     static hp_t id2HostPort(senderid_t id) {
00031         if ( id >= _hps.size() ) {
00032             return hp_t((char*) "Error, invalid offset", 0);
00033         }
00034         return _hps[id];
00035     }
00036     static const char* id2HostPortStr(senderid_t id) {
00037         hp_t hp = id2HostPort(id);
00038         static char x[256];
00039         sprintf(x, "%s:%d", hp.first, hp.second);
00040         return x;
00041     }
00042     
00043     static const char* id2Host(senderid_t id) {
00044         if ( id >= _hps.size() ) {
00045             return "Error, invalid offset";
00046         }
00047         return _hps[id].first;
00048     }
00049     static void printSelf();
00050     
00051     static void shutdown();
00052     
00053 private:
00054     static void registerSender(struct sockaddr_in sAddr);
00055 
00056 private:
00057     // Maps hash of sockaddr_in --> id.
00058     // Used as offset in various vectors
00059     static map<kXR_int64, senderid_t> _ids;
00060 
00061     static vector<hp_t> _hps; // {host, port}
00062 };
00063 
00064 #endif /* XRDMONSENDERINFO_HH */

Generated on Tue Jul 5 14:46:43 2011 for ROOT_528-00b_version by  doxygen 1.5.1