ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)
#include "AliCDBManager.h"
#include "AliCDBStorage.h"
#include "AliCDBEntry.h"
#include "AliCDBId.h"
#include <TString.h>
#include <TList.h>
#endif

void CheckCDBentries(const char* dest)
{
	AliCDBManager* cdb = AliCDBManager::Instance();
	const char* ref="local://$ALICE_ROOT/OCDB";
	cdb->SetDefaultStorage(ref);
	cdb->SetRun(0);
	AliCDBStorage* newstor = cdb->GetStorage(dest);
	// Missing here a check that newstor is a valid storage
	// otherwise exit
	TList* allentries = cdb->GetAll("*/*/*");
	TList* allnewentries = newstor->GetAll("*/*/*",0);
	Int_t nall = allentries->GetEntries();
	Int_t nallnew = allnewentries->GetEntries();
	Printf("Number of entries in reference OCDB %d  and in checked OCDB %d",nall, nallnew);
	TString missing;
	Int_t nMissing=0;
	if(nall!=nallnew)
	{
		AliCDBEntry *entry, *newentry;
		TString cdbpath;
		for(Int_t i=0; i<nall; i++)
		{
			entry = dynamic_cast<AliCDBEntry*>(allentries->At(i));
			cdbpath = ((AliCDBId)entry->GetId()).GetPath();
			newentry = newstor->Get(cdbpath.Data(),0);
			if(!newentry)
			{
				missing += cdbpath;
				missing.Insert(missing.Length(),'\n');
				nMissing++;
			}
		}
	}
	if(nMissing)
	{
		Printf("\n\nEntries missing in destination OCDB folder %s w.r.t. reference folder %s:",dest,ref);
		Printf("%s",missing.Data());
	}else{
		Printf("\n\nNo entry is missing in destination OCDB folder %s w.r.t. reference folder %s:",dest,ref);
	}
}
 CheckCDBentries.C:1
 CheckCDBentries.C:2
 CheckCDBentries.C:3
 CheckCDBentries.C:4
 CheckCDBentries.C:5
 CheckCDBentries.C:6
 CheckCDBentries.C:7
 CheckCDBentries.C:8
 CheckCDBentries.C:9
 CheckCDBentries.C:10
 CheckCDBentries.C:11
 CheckCDBentries.C:12
 CheckCDBentries.C:13
 CheckCDBentries.C:14
 CheckCDBentries.C:15
 CheckCDBentries.C:16
 CheckCDBentries.C:17
 CheckCDBentries.C:18
 CheckCDBentries.C:19
 CheckCDBentries.C:20
 CheckCDBentries.C:21
 CheckCDBentries.C:22
 CheckCDBentries.C:23
 CheckCDBentries.C:24
 CheckCDBentries.C:25
 CheckCDBentries.C:26
 CheckCDBentries.C:27
 CheckCDBentries.C:28
 CheckCDBentries.C:29
 CheckCDBentries.C:30
 CheckCDBentries.C:31
 CheckCDBentries.C:32
 CheckCDBentries.C:33
 CheckCDBentries.C:34
 CheckCDBentries.C:35
 CheckCDBentries.C:36
 CheckCDBentries.C:37
 CheckCDBentries.C:38
 CheckCDBentries.C:39
 CheckCDBentries.C:40
 CheckCDBentries.C:41
 CheckCDBentries.C:42
 CheckCDBentries.C:43
 CheckCDBentries.C:44
 CheckCDBentries.C:45
 CheckCDBentries.C:46
 CheckCDBentries.C:47
 CheckCDBentries.C:48
 CheckCDBentries.C:49
 CheckCDBentries.C:50
 CheckCDBentries.C:51