00001 //-------------------------------------------------------------------------- 00002 // File and Version Information: 00003 // $Id: Code.h,v 1.2 2009/12/23 02:59:56 zhangy Exp $ 00004 // 00005 // Description: 00006 // Class Header for |Code| 00007 // Tell about success and failure 00008 // 00009 // Environment: 00010 // Software developed for the BaBar Detector at the SLAC B-Factory. 00011 // 00012 // Author List: 00013 // A. Snyder 00014 // 00015 // Copyright Information: 00016 // Copyright (C) 1996 SLAC 00017 // 00018 // History: 00019 // Migration for BESIII MDC 00020 // 00021 //------------------------------------------------------------------------ 00022 00023 #ifndef Code_H 00024 #define Code_H 00025 00026 #include <assert.h> 00027 #include <stdlib.h> 00028 00029 //DEL class ostream; 00030 00031 class Code { 00032 00033 public: 00034 00035 //constructors 00036 00037 //default to success, default success code is 1 00038 Code(int s=1,int f=0):_fail(0),_success(0) 00039 { 00040 if(f==0) {setSuccess(s);} 00041 else if(s==0) {setFail(f);} 00042 } 00043 00044 //copy 00045 Code(const Code &c) 00046 :_fail(c.fail()),_success(c.success()) 00047 {} 00048 00049 //access 00050 00051 inline int fail()const {return _fail;} 00052 inline int success()const {return _success;} 00053 00054 //set 00055 inline void setFail(int i) 00056 {assert(i); _fail=i; _success=0;} 00057 inline void setSuccess(int i) 00058 {assert(i); _success=i; _fail=0;} 00059 00060 00061 private: 00062 00063 //data 00064 00065 int _fail; // failure code 00066 int _success; // success code 00067 00068 }; 00069 00070 #endif