ACR_ServerCommunicator.ServerVaultConnector.Initialize C# (CSharp) Method

Initialize() public static method

Initialize the server vault connector subsystem.
public static Initialize ( ACR_ServerCommunicator Script, string ConnectionString, bool VerboseLogging ) : bool
Script ACR_ServerCommunicator Supplies the main script object.
ConnectionString string Supplies the connection string for /// the server vault.
VerboseLogging bool Supplies true if verbose logging is /// enabled.
return bool
        public static bool Initialize(ACR_ServerCommunicator Script, string ConnectionString, bool VerboseLogging)
        {
            if (Initialized)
                return true;

            try
            {
                StoreConnectionString = ConnectionString;

                FileStoreProvider.DefaultVaultConnectionString = ConnectionString;

                SynchronizeAccountFromVaultDelegate = new SynchronizeAccountFromVault(OnSynchronizeAccountFromVault);
                SynchronizeAccountFromVaultHandle = GCHandle.Alloc(SynchronizeAccountFromVaultDelegate);

                SynchronizeAccountFileToVaultDelegate = new SynchronizeAccountFileToVault(OnSynchronizeAccountFileToVault);
                SynchronizeAccountFileToVaultHandle = GCHandle.Alloc(SynchronizeAccountFileToVaultDelegate);

                try
                {
                    if (SetStoragePluginCallbacks(Marshal.GetFunctionPointerForDelegate(SynchronizeAccountFromVaultDelegate),
                        Marshal.GetFunctionPointerForDelegate(SynchronizeAccountFileToVaultDelegate),
                        IntPtr.Zero) == 0)
                    {
                        throw new ApplicationException("Failed to install storage plugin callbacks.");
                    }
                }
                catch (Exception e)
                {
                    Script.WriteTimestampedLogEntry(String.Format("ServerVaultConnector.Initialize: Exception: {0}", e));
                    SynchronizeAccountFileToVaultDelegate = null;
                    SynchronizeAccountFileToVaultHandle.Free();
                    SynchronizeAccountFromVaultDelegate = null;
                    SynchronizeAccountFromVaultHandle.Free();
                    throw;
                }
            }
            catch
            {
                return false;
            }

            Initialized = true;
            return true;
        }