/// <summary> /// Basic constructor /// </summary> /// <param name="description">The adapter description. The first address in the Addressed field is used for hosting the server.</param> /// <param name="mmiRegisterAddress">The address of the register (where all services, adapters and mmus are registered)</param> /// <param name="mmuPath">The path where the MMUs are located</param> /// <param name="mmuProvider">A class which provides information regarding the available MMUs</param> /// <param name="mmuInstantiatior">A class which can instantiate MMUs based on the file and description</param> /// <param name="customAdapterImplementation">An optionally specified customAdapterImplementation which is utilized instead of the default one</param> public AdapterController(SessionData sessionData, MAdapterDescription description, MIPAddress mmiRegisterAddress, IMMUProvider mmuProvider, IMMUInstantiation mmuInstantiatior, MMIAdapter.Iface customAdapterImplementation = null) { //Assign the session data this.SessionData = sessionData; //Is the default implementation if not explicitly set if (customAdapterImplementation == null) { this.adapterImplementation = new ThriftAdapterImplementation(sessionData, mmuInstantiatior); } else { this.adapterImplementation = customAdapterImplementation; } //Assign the adapter implementation instance SessionData.AdapterInstance = this.adapterImplementation; //Assign the mmu instantiator this.mmuInstantiator = mmuInstantiatior; this.mmuProvider = mmuProvider; //Assign the adapter description this.adapterDescription = description; SessionData.AdapterDescription = description; //Assign the addresses this.address = description.Addresses[0]; this.mmiRegisterAddress = mmiRegisterAddress; //Assign the MMI register address SessionData.MMIRegisterAddress = mmiRegisterAddress; //Register on changed event this.mmuProvider.MMUsChanged += MmuProvider_MMUsChanged; }
/// <summary> /// Basic constructor /// </summary> public ThriftAdapterImplementation(SessionData sessionData, IMMUInstantiation mmuInstantiator) { this.SessionData = sessionData; this.mmuInstantiator = mmuInstantiator; }