ヘッダーをスキップ
Oracle Access Manager開発者ガイド
10g(10.1.4.2.0)
E05808-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

F 管理ヘルパー・クラス

この付録では、アクセス・サーバーAPIおよびポリシー・マネージャAPIのための管理ヘルパー・クラスについての情報を記載します。

F.1 各API用の管理ヘルパー・クラス

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