00001 #ifndef Impala_Persistency_ImageLocator_h
00002 #define Impala_Persistency_ImageLocator_h
00003
00004 #include "Basis/Quid.h"
00005 #include "Persistency/Locator.h"
00006
00007 namespace Impala
00008 {
00009 namespace Persistency
00010 {
00011
00012
00013 class ImageLocator : public Locator
00014 {
00015 public:
00016
00017
00018 ImageLocator(CString protocolAndHost, CString dataSet, CString container,
00019 CString name)
00020 : Locator(protocolAndHost, dataSet)
00021 {
00022 mContainer = container;
00023 mName = name;
00024 }
00025
00026 ImageLocator(const Locator& base, CString container, CString name)
00027 : Locator(base.GetProtocol(), base.GetHost(), base.GetDataSet())
00028 {
00029 mContainer = container;
00030 mName = name;
00031 }
00032
00033 virtual
00034 ~ImageLocator()
00035 {
00036 }
00037
00038 String
00039 GetContainer() const
00040 {
00041 return mContainer;
00042 }
00043
00044 String
00045 GetName() const
00046 {
00047 return mName;
00048 }
00049
00050 String
00051 ToString() const
00052 {
00053 return "ImageLocator(" + GetProtocol() + "," + GetHost()
00054 + "," + GetDataSet() + "," + GetContainer() + "," + GetName() + ")";
00055 }
00056
00057 private:
00058
00059 String mContainer;
00060 String mName;
00061
00062 ILOG_VAR_DEC;
00063 };
00064
00065 ILOG_VAR_INIT(ImageLocator, Impala.Persistency);
00066
00067 std::ostream&
00068 operator<< (std::ostream& os, const ImageLocator& loc)
00069 {
00070 os << loc.ToString();
00071 return os;
00072 }
00073
00074 }
00075 }
00076
00077 #endif