XrdCksCalc.hh

Go to the documentation of this file.
00001 #ifndef __XRDCKSCALC_HH__
00002 #define __XRDCKSCALC_HH__
00003 /******************************************************************************/
00004 /*                                                                            */
00005 /*                         X r d C k s C a l c . h h                          */
00006 /*                                                                            */
00007 /* (c) 2011 by the Board of Trustees of the Leland Stanford, Jr., University  */
00008 /*                            All Rights Reserved                             */
00009 /*   Produced by Andrew Hanushevsky for Stanford University under contract    */
00010 /*              DE-AC02-76-SFO0515 with the Department of Energy              */
00011 /*                                                                            */
00012 /* This file is part of the XRootD software suite.                            */
00013 /*                                                                            */
00014 /* XRootD is free software: you can redistribute it and/or modify it under    */
00015 /* the terms of the GNU Lesser General Public License as published by the     */
00016 /* Free Software Foundation, either version 3 of the License, or (at your     */
00017 /* option) any later version.                                                 */
00018 /*                                                                            */
00019 /* XRootD is distributed in the hope that it will be useful, but WITHOUT      */
00020 /* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or      */
00021 /* FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public       */
00022 /* License for more details.                                                  */
00023 /*                                                                            */
00024 /* You should have received a copy of the GNU Lesser General Public License   */
00025 /* along with XRootD in a file called COPYING.LESSER (LGPL license) and file  */
00026 /* COPYING (GPL license).  If not, see <http://www.gnu.org/licenses/>.        */
00027 /*                                                                            */
00028 /* The copyright holder's institutional names and contributor's names may not */
00029 /* be used to endorse or promote products derived from this software without  */
00030 /* specific prior written permission of the institution or contributor.       */
00031 /******************************************************************************/
00032 
00039 class XrdCksCalc
00040 {
00041 public:
00042 
00043 //------------------------------------------------------------------------------
00052 //------------------------------------------------------------------------------
00053 
00054 virtual char *Calc(const char *Buff, int BLen)
00055                   {Init(); Update(Buff, BLen); return Final();}
00056 
00057 //------------------------------------------------------------------------------
00063 //------------------------------------------------------------------------------
00064 
00065 virtual char *Current() {return Final();}
00066 
00067 //------------------------------------------------------------------------------
00072 //------------------------------------------------------------------------------
00073 
00074 virtual char *Final() = 0;
00075 
00076 //------------------------------------------------------------------------------
00079 //------------------------------------------------------------------------------
00080 
00081 virtual void  Init() = 0;
00082 
00083 //------------------------------------------------------------------------------
00087 //------------------------------------------------------------------------------
00088 virtual
00089 XrdCksCalc   *New() = 0;
00090 
00091 //------------------------------------------------------------------------------
00093 //------------------------------------------------------------------------------
00094 
00095 virtual void  Recycle() {delete this;}
00096 
00097 //------------------------------------------------------------------------------
00105 //------------------------------------------------------------------------------
00106 
00107 virtual const char *Type(int &csSize) = 0;
00108 
00109 //------------------------------------------------------------------------------
00115 //------------------------------------------------------------------------------
00116 
00117 virtual void  Update(const char *Buff, int BLen) = 0;
00118 
00119 //------------------------------------------------------------------------------
00121 //------------------------------------------------------------------------------
00122 
00123               XrdCksCalc() {}
00124 
00125 //------------------------------------------------------------------------------
00127 //------------------------------------------------------------------------------
00128 
00129 virtual      ~XrdCksCalc() {}
00130 };
00131 
00132 /******************************************************************************/
00133 /*               C h e c k s u m   O b j e c t   C r e a t o r                */
00134 /******************************************************************************/
00135   
00136 //------------------------------------------------------------------------------
00150 //------------------------------------------------------------------------------
00151 
00158 //------------------------------------------------------------------------------
00164 //------------------------------------------------------------------------------
00165 
00171 #endif

Generated on 5 Oct 2016 for xrootd by  doxygen 1.4.7