/// <summary> /// Creates mechanism of given type with object parameter /// </summary> /// <param name="type">Mechanism type</param> /// <param name="parameter">Mechanism parameter</param> public Mechanism(CKM type, IMechanismParams parameter) { if (parameter == null) { throw new ArgumentNullException("parameter"); } // Keep reference to parameter so GC will not free it while mechanism exists _mechanismParams = parameter; object lowLevelParams = _mechanismParams.ToLowLevelParams(); _ckMechanism = LowLevelAPI.CkmUtils.CreateMechanism(type, lowLevelParams); }
/// <summary> /// Creates mechanism of given type with no parameter /// </summary> /// <param name="type">Mechanism type</param> public Mechanism(CKM type) { _ckMechanism = LowLevelAPI.CkmUtils.CreateMechanism(type); }
/// <summary> /// Creates mechanism of given type with byte array parameter /// </summary> /// <param name="type">Mechanism type</param> /// <param name="parameter">Mechanism parameter</param> public Mechanism(CKM type, byte[] parameter) { _ckMechanism = LowLevelAPI.CkmUtils.CreateMechanism(type, parameter); }