Home || Visual Search || Applications || Architecture || Important Messages || OGL || Src

Locator.h

Go to the documentation of this file.
00001 #ifndef Impala_Persistency_Locator_h
00002 #define Impala_Persistency_Locator_h
00003 
00004 #include "Basis/ILog.h"
00005 #include "Basis/CmdOptions.h"
00006 
00007 namespace Impala
00008 {
00009 namespace Persistency
00010 {
00011 
00012 
00024 class Locator
00025 {
00026 public:
00027 
00028     Locator()
00029     {
00030         mProtocol = "not_set";
00031         mHost = "not_set";
00032         mDataSet = "not_set";
00033     }
00034 
00035     Locator(CString dataSet)
00036     {
00037         mProtocol = "not_set";
00038         mHost = "not_set";
00039         mDataSet = dataSet;
00040     }
00041 
00042     Locator(CString protocolAndHost, CString dataSet)
00043     {
00044         mProtocol = StringHead(protocolAndHost, ':', false);
00045         mHost = StringTail(protocolAndHost, ':', false);
00046         mDataSet = dataSet;
00047     }
00048 
00049     Locator(CString protocol, CString host, CString dataSet)
00050     {
00051         mProtocol = protocol;
00052         mHost = host;
00053         mDataSet = dataSet;
00054     }
00055 
00056     Locator(CString dataSet, CmdOptions& options)
00057     {
00058         mDataSet = dataSet;
00059 
00060         String dataServer = options.GetString("dataServer");
00061         String dataServer2 = options.GetString("dataServer::"+mDataSet, "");
00062         if (!dataServer2.empty())
00063             dataServer = dataServer2;
00064         if (!dataServer.empty())
00065         {
00066             mProtocol = "dataServer";
00067             mHost = dataServer;
00068             return;
00069         }
00070 
00071         String mapi = options.GetString("mapi");
00072         String mapi2 = options.GetString("mapi::"+mDataSet, "");
00073         if (!mapi2.empty())
00074             mapi = mapi2;
00075         if (!mapi.empty())
00076         {
00077             mProtocol = "mapi";
00078             mHost = mapi;
00079             return;
00080         }
00081 
00082         bool inMem = options.GetBool("inMem", false);
00083         bool inMem2 = options.GetBool("inMem::"+mDataSet, false);
00084         if (inMem2)
00085             inMem = inMem2;
00086         if (inMem)
00087         {
00088             mProtocol = "inMem";
00089             mHost = "";
00090             return;
00091         }
00092 
00093         mProtocol = "file";
00094     }
00095 
00096     virtual
00097     ~Locator()
00098     {
00099     }
00100 
00101     String
00102     GetProtocol() const
00103     {
00104         return mProtocol;
00105     }
00106 
00107     void
00108     SetProtocol(CString protocol)
00109     {
00110         mProtocol = protocol;
00111     }
00112 
00113     String
00114     GetHost() const
00115     {
00116         return mHost;
00117     }
00118 
00119     void
00120     SetHost(CString host)
00121     {
00122         mHost = host;
00123     }
00124 
00125     String
00126     GetProtocolAndHost() const
00127     {
00128         return mProtocol + ":" + mHost;
00129     }
00130 
00131     String
00132     GetDataSet() const
00133     {
00134         return mDataSet;
00135     }
00136 
00137     void
00138     SetDataSet(CString dataSet)
00139     {
00140         mDataSet = dataSet;
00141     }
00142 
00143     String
00144     ToString() const
00145     {
00146         return "Locator(" + GetProtocol() + "," + GetHost()
00147             + "," + GetDataSet() + ")";
00148     }
00149 
00150 private:
00151 
00152     String mProtocol;
00153     String mHost;
00154     String mDataSet;
00155 
00156     ILOG_VAR_DEC;
00157 };
00158 
00159 ILOG_VAR_INIT(Locator, Impala.Persistency);
00160 
00161 std::ostream&
00162 operator<< (std::ostream& os, const Locator& loc)
00163 {
00164     os << loc.ToString();
00165     return os;
00166 }
00167 
00168 } // namespace Persistency
00169 } // namespace Impala
00170 
00171 #endif

Generated on Thu Jan 13 09:05:08 2011 for ImpalaSrc by  doxygen 1.5.1