Skip Headers
Oracle® Access Manager Developer Guide
10g (10.1.4.0.1)

Part Number B25346-01
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

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