This appendix contains information on managed helper classes for the Access Server and Policy Manager APIs.
F.1 Managed Helper Classes for the APIs
Namespace: Oblix.Access.Common
/*
* ObDictionary class methods allow the application to
*
* - provide .NET style dictionary access to Java style ObMap object
*/
public __gc class ObDictionary :
public System::Collections::IDictionary,
public System::IDisposable,
public System::ICloneable
{
private:
ObMap __nogc* _map;
public:
ObDictionary();
ObDictionary(const ObMap& map);
// This constructor takes over the memory of the map object
ObDictionary(ObMap *map);
~ObDictionary();
//ICloneable
Object* Clone();
//IDisposible
void Dispose();
void Dispose(bool disposing);
//IDictionary
virtual void CopyTo(System::Array* ar, int count);
virtual IEnumerator* IEnumerable::GetEnumerator() {return GetEnumeratorImpl();}
virtual IDictionaryEnumerator* IDictionary::GetEnumerator() {return GetEnumeratorImpl();}
virtual IDictionaryEnumerator *GetEnumeratorImpl();
bool Contains(System::Object* key);
__property bool get_IsFixedSize();
__property bool get_IsReadOnly();
__property bool get_IsSynchronized();
__property int get_Count();
__property System::Collections::ICollection* get_Keys();
__property System::Collections::ICollection* get_Values();
__property ObMap *get_Map();
// This class is not thread safe, as a result there is no syncroot object. This method
// returns a NULL object.
__property System::Object* get_SyncRoot();
virtual void Add(System::Object* key, System::Object* value);
virtual void Clear(void);
virtual void Remove(System::Object* key);
//__property virtual void set_Item(System::String* key, System::String* value);
__property virtual void set_Item(System::Object* key, System::Object* value);
__property virtual System::Object* get_Item(System::Object* key);
//__property virtual System::String* get_Item(System::String* key);
//Type specific overloads
void Add(System::String* key, System::String* value);
bool Contains(System::String* key);
};
__gc class ObDictionaryEnumerator : public IDictionaryEnumerator
{
private:
int _iCurrent;
int _entrySize;
DictionaryEntry _ar[];
public:
ObDictionaryEnumerator(ObDictionary* dict);
//IDictionaryEnumerator
Object* get_Current();
DictionaryEntry get_Entry();
Object* get_Key();
Object* get_Value();
bool MoveNext();
void Reset();
};
/*
* ObConfigMgd functions allow the application to
*
* - initialize the Access API from a configuration file,
* - shutdown: delete resources used by the API,
* - get information from the Access API configuration, including
* - sessionTimeout: the maximum lifetime in seconds for a user session
* - idleTimeout: the maximum period in seconds allowed between authorization events
* - map user session error numbers to messages
* - get current version number for the Access Server SDK
* - get current version of Oracle Access Protocol or OAP version.
*/
public __gc class ObConfigMgd {
public:
static void initialize(System::String *configDir);
static void initialize();
static void shutdown();
__property static ObDictionary *get_AllItems();
__property static int get_NumberOfItems();
static System::String *getItem(System::String *name);
static System::String *getErrorMessage(int err);
__property static System::String *get_SDKVersion();
__property static System::String *get_NAPVersion();
private:
};
/*
* Access Exception Implementation Objects
* An ObAccessExceptionImpl object is thrown when a problem is detected by the Access API
* implementation methods. Access codes are defined in obaccess_api_defs.h. The mapAAAStatus()
* class method maps an ObAAAStatus returned by an ObAAAServiceClient method into a exception
* code.
*/
public __gc class ObAccessExceptionMgd : public System::Exception {
public:
ObAccessExceptionMgd();
ObAccessExceptionMgd(ObAccessException *ex);
//Cleanup
~ObAccessExceptionMgd();
//IDispose()
void Dispose();
void Dispose(bool disposing);
// getters and setters
__property ObAccessExceptionCode_t get_Code();
System::String *getParameter(int index);
System::String *getCodeString(ObAccessExceptionCode_t code);
__property System::String *get_String();
private:
/// Unmanaged Oblix object.
ObAccessException __nogc *_exception;
};
}
}