00001 /*------------------------------------------------------------------------------ 00002 Name: SessionName.h 00003 Project: xmlBlaster.org 00004 Copyright: xmlBlaster.org, see xmlBlaster-LICENSE file 00005 Comment: 00006 ------------------------------------------------------------------------------*/ 00007 00008 #ifndef XMLBLASTER_UTIL_SessionName_H 00009 #define XMLBLASTER_UTIL_SessionName_H 00010 00011 #include <util/xmlBlasterDef.h> 00012 #include <string> 00013 #include <util/ReferenceCounterBase.h> 00014 #include <util/ReferenceHolder.h> 00015 #include <util/StringTrim.h> 00016 00017 namespace org { namespace xmlBlaster { namespace util { 00018 00019 class Dll_Export SessionName : public org::xmlBlaster::util::ReferenceCounterBase 00020 { 00021 private: 00022 const std::string ME; 00023 std::string sessionId_; 00024 std::string clusterNodeId_; 00025 std::string subjectId_; 00026 long pubSessionId_; 00027 org::xmlBlaster::util::Global& global_; 00028 bool useSessionMarker_; // In future default to true, remove after Version 2.0 00029 00030 void copy(const SessionName& data); 00031 00032 void initialize(const std::string& absoluteName, const std::string& defaultUserName, long publicSessionId); 00033 00034 public: 00042 SessionName(org::xmlBlaster::util::Global& global, const std::string& absoluteName=""); 00043 00054 SessionName(org::xmlBlaster::util::Global& global, const std::string& defaultUserName, long publicSessionId); 00055 SessionName(const SessionName& data); 00056 SessionName& operator =(const SessionName& data); 00057 00058 virtual ~SessionName(); 00059 00070 void setAbsoluteName(/*const std::string nodeId="",*/ const std::string& name); 00071 std::string getRelativeName() const; 00072 std::string getRelativeName(bool forceSessionMarker) const; 00073 std::string getAbsoluteName() const; 00074 std::string getClusterNodeId() const; 00075 void setClusterNodeId(const std::string& clusterNodeId); 00076 std::string getSubjectId() const; 00077 void setSubjectId(const std::string& subjectId); 00078 long getPubSessionId() const; 00079 void setPubSessionId(const long pubSessionId); 00080 00081 // remove with version 2.0 00082 bool useSessionMarker() const { return useSessionMarker_; } 00083 00084 std::string getSecretSessionId() const; 00085 void setSecretSessionId(const std::string& sessionId); 00086 std::string toXml(const std::string& extraOffset="") const; 00087 }; 00088 00089 typedef org::xmlBlaster::util::ReferenceHolder<SessionName> SessionNameRef; 00090 00091 }}} // namespaces 00092 00093 #endif