StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
daq_test.C
1 #include <sfs_index.h>
2 #include <stdio.h>
3 #include <rtsLog.h>
4 
5 //extern int debug;
6 
7 int main(int argc, char *argv[])
8 {
9  rtsLogOutput(2);
10  // rtsLogLevel(DBG);
11 
12  if(argc < 2) {
13  printf("Need a filename and offset\n");
14  exit(0);
15  }
16 
17 
18 
19  sfs_index sfs;
20  //debug = 0;
21 
22  long long int off = 0;
23  if(argc>2) off = atoi(argv[2]);
24 
25  int sz = 0;
26  int ret = sfs.mountSingleDir(argv[1], off);
27  //int ret = sfs.mountSingleDir(argv[1], 2147451904);
28  if(ret < 0) {
29  printf("Error mounting %s",argv[1]);
30  return -1;
31  }
32 
33  do {
34  int last_sz = sz;
35  long long int last_off = off;
36  sz= sfs.singleDirSize;
37  off = sfs.singleDirOffset;
38 
39 
40  LOG("JEFF", "Mounting new directory: (%s) offset=%lld (calc: %lld) size=%d",
41  sfs.singleDirIttr->fullpath,
42  off,
43  (last_off + last_sz) - off,
44  sz);
45 
46  // fs_dirent *ent;
47  fs_dir *dir = sfs.opendir("/");
48  if(dir) {
49  fs_filelist list;
50  sfs.mem_ls(&list, 1, dir);
51  for(int i=0;i<list.n;i++) {
52  if(strstr(list.filename[i], "TRGID") != NULL) {
53  int sz = sfs.fileSize(list.filename[i]);
54  LOG("JEFF", "%s: %d bytes",list.filename[i],sz);
55  char *buff = (char *)malloc(sz);
56  sfs.read(list.filename[i], buff, sz);
57  sfs.hexdump(buff, sz);
58  free(buff);
59  }
60  }
61 
62  sfs.closedir(dir);
63  }
64  else {
65  printf("no rootdir?\n");
66  }
67 
68  ret = sfs.mountNextDir();
69  } while(ret > 0);
70 
71 
72 }
73 
74 
75