// **********************************************************************
//
// Generated by the CIDL Translator
//
// Copyright (c) 2001-2004
// StarMiddleware Group
// www.StarMiddleware.net
//
// All Rights Reserved
//
// Author: Huang Jie        huangjie@email.com
// Author: Chang Junsheng   cjs7908@163.com
// Author: Zhen Xianrong
//
// **********************************************************************


#ifndef __CCM_QueryComp_impl_h__
#define __CCM_QueryComp_impl_h__

#include <CCM.h>

#include <CCM_QueryComp_skel.h>
#include <QueryComp_ValueType_impl.h>


namespace Bank
{
    namespace QueryCompComposition
    {
        class CCM_QueryComp_impl : virtual public Bank::QueryCompComposition::CCM_QueryComp_skel,
                                   public Components::SessionComponent
        {
            CCM_QueryComp_impl(const CCM_QueryComp_impl&);
            void operator=(const CCM_QueryComp_impl&);

        protected:
            Bank::CCM_QueryComp_Context_var ctx_;
        public:

            CCM_QueryComp_impl();
            ~CCM_QueryComp_impl();

	    virtual const char** _STAR_ids() const { return 0; }
            virtual void configuration_complete()
            	throw (Components::InvalidConfiguration, CORBA::SystemException);
            virtual void enter_dyn_deploy()
            	throw(CORBA::SystemException);
            virtual void leave_dyn_deploy()
            	throw(CORBA::SystemException);
            virtual void set_session_context(Components::SessionContext*)
                throw(Components::CCMException,
                      CORBA::SystemException);
            virtual void ccm_activate()
                throw(Components::CCMException,
                      CORBA::SystemException);
            virtual void ccm_passivate()
                throw(Components::CCMException,
                      CORBA::SystemException);
            virtual void ccm_remove()
                throw(Components::CCMException,
                      CORBA::SystemException);
            #ifdef TAO
            virtual const char* _interface_repository_id() const { return 0; }
            virtual void* _tao_QueryInterface(ptr_arith_t type) { return 0; }
            #endif

            virtual CORBA::ULong getBalance(const char* id)
                throw(CORBA::SystemException);
        };

        class CCM_QueryCompHome_impl : virtual public Bank::QueryCompComposition::CCM_QueryCompHome_skel
        {
            CCM_QueryCompHome_impl(const CCM_QueryCompHome_impl&);
            void operator=(const CCM_QueryCompHome_impl&);

        public:

            CCM_QueryCompHome_impl();
            ~CCM_QueryCompHome_impl();

            virtual Components::EnterpriseComponent_ptr create()
                throw(Components::CCMException,
                      CORBA::SystemException);

            virtual char* get_storage_home_id();
        };


    }//End of namespace QueryCompComposition


}//End of namespace Bank


#endif
