| # Gaudi Framework, version v23r1 |

Home |  | Generated: Wed Feb 29 2012

# TESSerializer.h

Go to the documentation of this file.

    00001 // $Id: TESSerializer.h,v 1.1 2008/10/17 08:56:05 mato Exp $
    00002 #ifndef GAUDIMP_TESSERIALIZER_H
    00003 #define GAUDIMP_TESSERIALIZER_H
    00004
    00005 #include "GaudiKernel/IDataStoreAgent.h"
    00006 #include "GaudiKernel/IAddressCreator.h"
    00007
    00008 // ROOT includes
    00009 #include "TClass.h"
    00010
    00011 // vector and string
    00012 #include <string>
    00013 #include <vector>
    00014 #include <map>
    00015
    00016 // forward declarations
    00017 class IDataProviderSvc;
    00018 class IDataManagerSvc;
    00019 class TBufferFile;
    00020 class DataStoreItem;
    00021 class DataObject;
    00022 class IAddressCreator;
    00023
    00031 namespace GaudiMP {
    00032   class GAUDI_API TESSerializer :  virtual public IDataStoreAgent {
    00033     typedef std::vector<DataStoreItem*> Items;
    00034     typedef std::vector<std::string>    ItemNames;
    00035     typedef std::vector<DataObject*>    Objects;
    00036   public:
    00038     TESSerializer(IDataProviderSvc* svc, IAddressCreator* ac);
    00039
    00041     void dumpBuffer(TBufferFile&);
    00042
    00044     void loadBuffer(TBufferFile&);
    00045
    00047     void addItem(const std::string& path);
    00048
    00050     void addOptItem(const std::string& path);
    00051
    00053     bool analyse(IRegistry* dir, int level);
    00054
    00056     void checkItems( );
    00057
    00058     virtual ~TESSerializer() {}
    00059
    00060   protected:
    00062     void addItem(Items& itms, const std::string& descriptor);
    00063
    00065     DataStoreItem* findItem(const std::string& path);
    00066
    00067   private:
    00069     IDataProviderSvc* m_TES;
    00071     IDataManagerSvc*  m_TESMgr;
    00073     ItemNames         m_itemNames;
    00075     Items             m_itemList;
    00077     ItemNames         m_optItemNames;
    00079     Items             m_optItemList;
    00081     DataStoreItem*    m_currentItem;
    00083     Objects           m_objects;
    00084
    00086     std::map<std::string, TClass*> m_classMap;
    00088     bool                 m_verifyItems;
    00090     bool                 m_strict;
    00092     IAddressCreator*     m_addressCreator;
    00093   };
    00094 }
    00095 #endif
    00096
    00097

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines