00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00035 #ifndef OW_OPERATION_CONTEXT_HPP_INCLUDE_GUARD_
00036 #define OW_OPERATION_CONTEXT_HPP_INCLUDE_GUARD_
00037 #include "OW_config.h"
00038 #include "OW_String.hpp"
00039 #include "OW_IntrusiveReference.hpp"
00040 #include "OW_IntrusiveCountableBase.hpp"
00041 #include "OW_SortedVectorMap.hpp"
00042 #include "OW_Exception.hpp"
00043 #include "OW_CommonFwd.hpp"
00044
00045
00046
00047
00048 namespace OW_NAMESPACE
00049 {
00050
00051 OW_DECLARE_APIEXCEPTION(ContextDataNotFound, OW_COMMON_API);
00052
00065 class OW_COMMON_API OperationContext
00066 {
00067 public:
00068
00069 class OW_COMMON_API Data : public IntrusiveCountableBase
00070 {
00071 public:
00072 virtual ~Data();
00073 };
00074
00075 typedef IntrusiveReference<Data> DataRef;
00076
00077 OperationContext();
00078
00083 void setData(const String& key, const DataRef& data);
00084
00090 void removeData(const String& key);
00091
00098 DataRef getData(const String& key) const;
00099
00105 bool keyHasData(const String& key) const;
00106
00111 void setStringData(const String& key, const String& str);
00112
00116 String getStringData(const String& key) const;
00117
00121 String getStringDataWithDefault(const String& key, const String& def = String() ) const;
00122
00123
00124 static const char* const USER_NAME;
00125 static const char* const USER_PASSWD;
00126 static const char* const HTTP_PATH;
00127 static const char* const CURUSER_UIDKEY;
00128 static const char* const BYPASS_LOCKERKEY;
00129 static const char* const SESSION_LANGUAGE_KEY;
00130 static const char* const HTTP_ACCEPT_LANGUAGE_KEY;
00131 static const char* const CLIENT_IPADDR;
00132
00133
00134
00135 UserInfo getUserInfo() const;
00136
00137 private:
00138
00139 #ifdef OW_WIN32
00140 #pragma warning (push)
00141 #pragma warning (disable: 4251)
00142 #endif
00143
00144 SortedVectorMap<String, DataRef> m_data;
00145
00146 #ifdef OW_WIN32
00147 #pragma warning (pop)
00148 #endif
00149
00150
00151 OperationContext(const OperationContext&);
00152 OperationContext& operator=(const OperationContext&);
00153 };
00154
00155 }
00156
00157 #endif
00158
00159