/*
* This file is part of rasdaman community.
*
* Rasdaman community is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Rasdaman community is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with rasdaman community. If not, see .
*
* Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
rasdaman GmbH.
*
* For more information please see
* or contact Peter Baumann via .
/
/**
* SOURCE: test_dbcontent.cc
*
* MODULE: test
*
* PURPOSE:
* Reads the contents of the specified collection and prints
* it on the screen.
*
* COMMENTS:
* none
*
*/
#include
#include
#include "o2template_CC.hxx" // declaration of O2 ref and coll classes
#include "ulongtype.hh"
#include "cachetamgr/persmddcoll.hh"
#include "cachetamgr/persmddobj.hh"
#include "cachetamgr/perstile.hh"
#include "cachetamgr/persmddcolliter.hh"
#include "adminif.hh"
#include "databaseif.hh"
#include "transactionif.hh"
#include
extern char* myExecArgv0 = "";
static void testAccessing( const char* collName );
/*************************************************************
* Function name.: int main( int argc, char** argv)
*
* Arguments.....:
* argc: number of arguments given to program
* argv: array of char* with arguments
* Return value..: exit status
* Description...: none
************************************************************/
void
main( int ac, char** av)
{
char baseName[255];
char collName[255];
if( ac > 1 )
strcpy( baseName, av[1] );
else
strcpy( baseName, "RasDaBase" );
if( ac > 2 )
strcpy( collName, av[2] );
else
strcpy( collName, "Images" );
pid_t cpid;
cout << "Parent process id is " << getpid() << endl;
cpid = fork();
if( !cpid )
{
cout << "Child process id is " << getpid() << endl;
// sleep(1);
}
// variables representing O2 database, ta and session
DatabaseIf database;
TransactionIf ta;
// don't forget to initialize before using AdminIf!
myExecArgv0 = av[0];
AdminIf* myAdmin = AdminIf::instance();
// connect to the database
cout << getpid() << " Connecting to database " << baseName << "..." << endl;
database.open( baseName );
// read coll and print contents
cout << getpid() << " Read collection and print contents..." << endl;
ta.begin();
testAccessing( collName );
ta.commit();
cout << getpid() << " closing db ... "; cout.flush();
database.close();
cout << getpid() << " OK" << endl;
cout << getpid() << " Ending O2 session..." << endl;
delete myAdmin;
cout << getpid() << " OK" << endl;
return;
}
/*************************************************************
* Function......: testAccessing()
*
* Arguments.....: none
* Return value..: none
* Description...: reads DirTilesIx's and shows contents
************************************************************/
static void testAccessing( const char* collName )
{
PersMDDObj* accessedObj;
cout << getpid() << " ....testAccessing" << endl;
/*
PersMDDColl objsSet( collName );
// To test PersMDDColl::printStatus( )
objsSet.printStatus( );
// To test PersMDDObj::printStatus( ), MDDCollIter::createIterator( ) and
// MDDCollIter methods :
MDDCollIter* objsIt = objsSet.createIterator( );
for( int i = 1 ; objsIt->notDone( ); i++, objsIt->advance( ))
{
accessedObj = (PersMDDObj*) objsIt->getElement();
cout << " --"<printStatus();
}
delete objsIt;
*/
}