Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals

DCFutility.cpp

Go to the documentation of this file.
00001 // DCFutility.cpp
00002 //////////////////////////////////////////////////////////////////////
00003 //          (c) Copyright 2001-2002 Brown Deer Technology, LLC.
00004 //                        All rights reserved.
00005 //////////////////////////////////////////////////////////////////////
00006 
00007 #ifdef USE_STD
00008 #include <string>
00009 using namespace std;
00010 #else
00011 #include <string.h>
00012 #endif
00013 
00014 #include "DCFutility.h"
00015 
00016 void inttohex( int num, char* ptc, int len ) {
00017    const char* hexdigit="0123456789ABCDEF";
00018    char* pttmp=(char*)(&num);
00019    unsigned char c;
00020    int j=0;
00021 
00022    for(int i = 0; i < min( len, int(sizeof(int) ) ); i++ ) {
00023 #ifdef STORM_RS6000_AIX
00024       c=pttmp[ sizeof(int) - len + i ];
00025 #endif
00026 #ifdef STORM_x86_LINUX
00027       c=pttmp[ len - 1 - i ];
00028 #endif
00029 #ifdef STORM_SGI_IRIX
00030       c=pttmp[ sizeof(int) - len + i ];
00031 #endif
00032       ptc[j++] = hexdigit[ int( ( c & 0xF0 ) >> 4 ) ];
00033       ptc[j++] = hexdigit[ int( ( c & 0x0F ) ) ];
00034    }
00035 
00036    ptc[j]='\0';
00037 };
00038 
00039 void dcfsbfilename( 
00040    int const superblocknum, 
00041    string& filenamebase, 
00042    string& filenamesb
00043 ) 
00044 {
00045    char *ctmp = new char[2*2+1]; 
00046    inttohex( superblocknum, ctmp, 2  );
00047    filenamesb = filenamebase + ".sb" + ctmp + ".dcf";
00048 };
00049 
00050 void dcfmbfilename( 
00051   const int blocknum,
00052   const int m,
00053   const string& filenamebase,
00054   string& mbfilename
00055 ) 
00056 {
00057    char *ctmp1 = new char[2*2+1];
00058    char *ctmp2 = new char[2*1+1];
00059    inttohex( blocknum, ctmp1, 2  );
00060    inttohex( m, ctmp2, 1  );
00061    mbfilename = filenamebase + ".mb" + ctmp1 + "." + ctmp2 + ".dcf";
00062 }; 
00063 
00064 void dcfdbfilename( 
00065   const int blocknum,
00066   const string& filenamebase,
00067   string& dbfilename
00068 ) 
00069 {
00070    char *ctmp = new char[2*2+1];
00071    inttohex( blocknum, ctmp, 2  );
00072    dbfilename = filenamebase + ".db" + ctmp + ".dcf";
00073 };
00074 
00075 
00076 void dcflogfilename( 
00077    const string& filenamebase, 
00078    string& filenamelog
00079 ) 
00080 {
00081    filenamelog = filenamebase + ".log.dcf";
00082 }
00083 

Generated on Mon May 31 21:38:44 2004 for SR2k4 Assembler by doxygen 1.3.6