util/SessionName.h

Go to the documentation of this file.
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