Skip Headers
Oracle® Access Manager Developer Guide
10g (10.1.4.3)
E12491-01
  Go To Documentation Library
Library
Go To Product List
Product
Go To Table Of Contents
Contents
Go To Index
Index

Previous
Previous
 
Next
Next
 

F Managed Helper Classes

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;
        };
  }
 }