dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] CVS: pnetlib/System.EnterpriseServices .cvsignore,


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnetlib/System.EnterpriseServices .cvsignore, NONE, 1.1 AccessChecksLevelOption.cs, NONE, 1.1 ActivationOption.cs, NONE, 1.1 Activity.cs, NONE, 1.1 ApplicationAccessControlAttribute.cs, NONE, 1.1 ApplicationActivationAttribute.cs, NONE, 1.1 ApplicationIDAttribute.cs, NONE, 1.1 ApplicationNameAttribute.cs, NONE, 1.1 ApplicationQueuingAttribute.cs, NONE, 1.1 AuthenticationOption.cs, NONE, 1.1 AutoCompleteAttribute.cs, NONE, 1.1 BOID.cs, NONE, 1.1 BYOT.cs, NONE, 1.1 BindingOption.cs, NONE, 1.1 COMTIIntrinsicsAttribute.cs, NONE, 1.1 ComponentAccessControlAttribute.cs, NONE, 1.1 ConstructionEnabledAttribute.cs, NONE, 1.1 ContextUtil.cs, NONE, 1.1 DescriptionAttribute.cs, NONE, 1.1 EventClassAttribute.cs, NONE, 1.1 EventTrackingEnabledAttribute.cs, NONE, 1.1 ExceptionClassAttribute.cs, NONE, 1.1 IAsyncErrorNotify.cs, NONE, 1.1 IConfigurationAttribute.cs, NONE, 1.1 IISIntrinsicsAttribute.cs, NONE, 1.1 IPlaybackControl.cs, NONE, 1.1 IProcessInitControl.cs, NONE, 1.1 IProcessInitializer.cs, NONE, 1.1 IRegistrationHelper.cs, NONE, 1.1 IRemoteDispatch.cs, NONE, 1.1 IServiceCall.cs, NONE, 1.1 IServicedComponentInfo.cs, NONE, 1.1 ITransaction.cs, NONE, 1.1 ImpersonationLevelOption.cs, NONE, 1.1 InheritanceOption.cs, NONE, 1.1 InstallationFlags.cs, NONE, 1.1 InterfaceQueuingAttribute.cs, NONE, 1.1 JustInTimeActivationAttribute.cs, NONE, 1.1 LoadBalancingSupportedAttribute.cs, NONE, 1.1 Makefile.am, NONE, 1.1 MustRunInClientContextAttribute.cs, NONE, 1.1 ObjectPoolingAttribute.cs, NONE, 1.1 PartitionOption.cs, NONE, 1.1 PrivateComponentAttribute.cs, NONE, 1.1 PropertyLockMode.cs, NONE, 1.1 PropertyReleaseMode.cs, NONE, 1.1 RegistrationConfig.cs, NONE, 1.1 RegistrationErrorInfo.cs, NONE, 1.1 RegistrationException.cs, NONE, 1.1 RegistrationHelper.cs, NONE, 1.1 RegistrationHelperTx.cs, NONE, 1.1 ResourcePool.cs, NONE, 1.1 SecureMethodAttribute.cs, NONE, 1.1 SecurityCallContext.cs, NONE, 1.1 SecurityCallers.cs, NONE, 1.1 SecurityIdentity.cs, NONE, 1.1 SecurityRoleAttribute.cs, NONE, 1.1 ServiceConfig.cs, NONE, 1.1 ServiceDomain.cs, NONE, 1.1 ServicedComponent.cs, NONE, 1.1 ServicedComponentException.cs, NONE, 1.1 SharedProperty.cs, NONE, 1.1 SharedPropertyGroup.cs, NONE, 1.1 SharedPropertyGroupManager.cs, NONE, 1.1 SxsOption.cs, NONE, 1.1 SynchronizationAttribute.cs, NONE, 1.1 SynchronizationOption.cs, NONE, 1.1 System.EnterpriseServices.build, NONE, 1.1 ThreadPoolOption.cs, NONE, 1.1 TransactionAttribute.cs, NONE, 1.1 TransactionIsolationLevel.cs, NONE, 1.1 TransactionOption.cs, NONE, 1.1 TransactionStatus.cs, NONE, 1.1 TransactionVote.cs, NONE, 1.1 XACTTRANSINFO.cs, NONE, 1.1
Date: Sun, 21 Sep 2003 03:56:42 -0400

Update of /cvsroot/dotgnu-pnet/pnetlib/System.EnterpriseServices
In directory subversions:/tmp/cvs-serv23168/System.EnterpriseServices

Added Files:
        .cvsignore AccessChecksLevelOption.cs ActivationOption.cs 
        Activity.cs ApplicationAccessControlAttribute.cs 
        ApplicationActivationAttribute.cs ApplicationIDAttribute.cs 
        ApplicationNameAttribute.cs ApplicationQueuingAttribute.cs 
        AuthenticationOption.cs AutoCompleteAttribute.cs BOID.cs 
        BYOT.cs BindingOption.cs COMTIIntrinsicsAttribute.cs 
        ComponentAccessControlAttribute.cs 
        ConstructionEnabledAttribute.cs ContextUtil.cs 
        DescriptionAttribute.cs EventClassAttribute.cs 
        EventTrackingEnabledAttribute.cs ExceptionClassAttribute.cs 
        IAsyncErrorNotify.cs IConfigurationAttribute.cs 
        IISIntrinsicsAttribute.cs IPlaybackControl.cs 
        IProcessInitControl.cs IProcessInitializer.cs 
        IRegistrationHelper.cs IRemoteDispatch.cs IServiceCall.cs 
        IServicedComponentInfo.cs ITransaction.cs 
        ImpersonationLevelOption.cs InheritanceOption.cs 
        InstallationFlags.cs InterfaceQueuingAttribute.cs 
        JustInTimeActivationAttribute.cs 
        LoadBalancingSupportedAttribute.cs Makefile.am 
        MustRunInClientContextAttribute.cs ObjectPoolingAttribute.cs 
        PartitionOption.cs PrivateComponentAttribute.cs 
        PropertyLockMode.cs PropertyReleaseMode.cs 
        RegistrationConfig.cs RegistrationErrorInfo.cs 
        RegistrationException.cs RegistrationHelper.cs 
        RegistrationHelperTx.cs ResourcePool.cs 
        SecureMethodAttribute.cs SecurityCallContext.cs 
        SecurityCallers.cs SecurityIdentity.cs 
        SecurityRoleAttribute.cs ServiceConfig.cs ServiceDomain.cs 
        ServicedComponent.cs ServicedComponentException.cs 
        SharedProperty.cs SharedPropertyGroup.cs 
        SharedPropertyGroupManager.cs SxsOption.cs 
        SynchronizationAttribute.cs SynchronizationOption.cs 
        System.EnterpriseServices.build ThreadPoolOption.cs 
        TransactionAttribute.cs TransactionIsolationLevel.cs 
        TransactionOption.cs TransactionStatus.cs TransactionVote.cs 
        XACTTRANSINFO.cs 
Log Message:


Check in an implementation of "System.EnterpriseServices".


--- NEW FILE ---
Makefile
Makefile.in
.deps
*.dll

--- NEW FILE ---
/*
 * AccessChecksLevelOption.cs - Implementation of the
 *                      "System.EnterpriseServices.AccessChecksLevelOption" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

public enum AccessChecksLevelOption
{
        Application                             = 0,
        ApplicationComponent    = 1

}; // enum AccessChecksLevelOption

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * ActivationOption.cs - Implementation of the
 *                      "System.EnterpriseServices.ActivationOption" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

public enum ActivationOption
{
        Library         = 0,
        Server          = 1

}; // enum ActivationOption

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * Activity.cs - Implementation of the
 *                      "System.EnterpriseServices.Activity" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
public sealed class Activity
{
        // Constructor.
        public Activity(ServiceConfig cfg) {}

        // Run a batch item asychronously.
        public void AsynchronousCall(IServiceCall serviceCall)
                        {
                                // We do everything synchronously in this 
implementation.
                                SynchronousCall(serviceCall);
                        }

        // Bind the user-defined work to the current thread.
        public void BindToCurrentThread()
                        {
                                // Nothing to do in this implementation.
                        }

        // Run a batch item sychronously.
        public void SynchronousCall(IServiceCall serviceCall)
                        {
                                if(serviceCall != null)
                                {
                                        serviceCall.OnCall();
                                }
                        }

        // Unbind the user-defined work from whatever thread it is running on.
        public void UnbindFromThread()
                        {
                                // Nothing to do in this implementation.
                        }

}; // class Activity

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * ApplicationAccessControlAttribute.cs - Implementation of the
 *              "System.EnterpriseServices.ApplicationAccessControlAttribute" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Assembly, Inherited=true)]
public sealed class ApplicationAccessControlAttribute : Attribute
{
        // Internal state.
        private bool val;
        private AccessChecksLevelOption accessChecksLevel;
        private AuthenticationOption authentication;
        private ImpersonationLevelOption impersonationLevel;

        // Constructors.
        public ApplicationAccessControlAttribute() : this(true) {}
        public ApplicationAccessControlAttribute(bool val)
                        {
                                this.val = val;
                        }

        // Get or set this attribute's values.
        public AccessChecksLevelOption AccessChecksLevel
                        {
                                get
                                {
                                        return accessChecksLevel;
                                }
                                set
                                {
                                        accessChecksLevel = value;
                                }
                        }
        public AuthenticationOption Authentication
                        {
                                get
                                {
                                        return authentication;
                                }
                                set
                                {
                                        authentication = value;
                                }
                        }
        public ImpersonationLevelOption ImpersonationLevel
                        {
                                get
                                {
                                        return impersonationLevel;
                                }
                                set
                                {
                                        impersonationLevel = value;
                                }
                        }
        public bool Value
                        {
                                get
                                {
                                        return val;
                                }
                        }

}; // class ApplicationAccessControlAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * ApplicationActivationAttribute.cs - Implementation of the
 *              "System.EnterpriseServices.ApplicationActivationAttribute" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Assembly, Inherited=true)]
public sealed class ApplicationActivationAttribute : Attribute
{
        // Internal state.
        private ActivationOption opt;
        private String soapMailbox;
        private String soapVRoot;

        // Constructor.
        public ApplicationActivationAttribute(ActivationOption opt)
                        {
                                this.opt = opt;
                        }

        // Get or set this attribute's values.
        public String SoapMailbox
                        {
                                get
                                {
                                        return soapMailbox;
                                }
                                set
                                {
                                        soapMailbox = value;
                                }
                        }
        public String SoapVRoot
                        {
                                get
                                {
                                        return soapVRoot;
                                }
                                set
                                {
                                        soapVRoot = value;
                                }
                        }
        public ActivationOption Value
                        {
                                get
                                {
                                        return opt;
                                }
                        }

}; // class ApplicationActivationAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * ApplicationIDAttribute.cs - Implementation of the
 *                      "System.EnterpriseServices.ApplicationIDAttribute" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Assembly, Inherited=true)]
public sealed class ApplicationIDAttribute : Attribute
{
        // Internal state.
#if !ECMA_COMPAT
        private Guid guid;
#endif

        // Constructors.
        public ApplicationIDAttribute(String guid)
                        {
                                this.guid = new Guid(guid);
                        }

#if !ECMA_COMPAT
        // Get this attribute's value.
        public Guid Value
                        {
                                get
                                {
                                        return guid;
                                }
                        }
#endif

}; // class ApplicationIDAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * ApplicationNameAttribute.cs - Implementation of the
 *                      "System.EnterpriseServices.ApplicationNameAttribute" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Assembly, Inherited=true)]
public sealed class ApplicationNameAttribute : Attribute
{
        // Internal state.
        private String name;

        // Constructors.
        public ApplicationNameAttribute(String name)
                        {
                                this.name = name;
                        }

        // Get this attribute's value.
        public String Value
                        {
                                get
                                {
                                        return name;
                                }
                        }

}; // class ApplicationNameAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * ApplicationQueuingAttribute.cs - Implementation of the
 *                      "System.EnterpriseServices.ApplicationQueuingAttribute" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Assembly, Inherited=true)]
public sealed class ApplicationQueuingAttribute : Attribute
{
        // Internal state.
        private bool enabled;
        private int maxListenerThreads;
        private bool queueListenerEnabled;

        // Constructors.
        public ApplicationQueuingAttribute()
                        {
                                this.enabled = true;
                        }

        // Get or set this attribute's values.
        public bool Enabled
                        {
                                get
                                {
                                        return enabled;
                                }
                                set
                                {
                                        enabled = value;
                                }
                        }
        public int MaxListenerThreads
                        {
                                get
                                {
                                        return maxListenerThreads;
                                }
                                set
                                {
                                        maxListenerThreads = value;
                                }
                        }
        public bool QueueListenerEnabled
                        {
                                get
                                {
                                        return queueListenerEnabled;
                                }
                                set
                                {
                                        queueListenerEnabled = value;
                                }
                        }

}; // class ApplicationQueuingAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * AuthenticationOption.cs - Implementation of the
 *                      "System.EnterpriseServices.AuthenticationOption" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

public enum AuthenticationOption
{
        Default         = 0,
        None            = 1,
        Connect         = 2,
        Call            = 3,
        Packet          = 4,
        Integrity       = 5,
        Privacy         = 6

}; // enum AuthenticationOption

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * AutoCompleteAttribute.cs - Implementation of the
 *                      "System.EnterpriseServices.AutoCompleteAttribute" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Method, Inherited=true)]
public sealed class AutoCompleteAttribute : Attribute
{
        // Internal state.
        private bool val;

        // Constructors.
        public AutoCompleteAttribute() : this(true) {}
        public AutoCompleteAttribute(bool val)
                        {
                                this.val = val;
                        }

        // Get this attribute's value.
        public bool Value
                        {
                                get
                                {
                                        return val;
                                }
                        }

}; // class AutoCompleteAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * BOID.cs - Implementation of the "System.EnterpriseServices.BOID" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[StructLayout(LayoutKind.Sequential)]
public struct BOID
{
        [MarshalAs(UnmanagedType.ByValArray, SizeConst=16)]
        public byte[] rgb;

}; // struct BOID

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * BYOT.cs - Implementation of the
 *                      "System.EnterpriseServices.BYOT" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Security;

public sealed class BYOT
{
        // Cannot instantiate this class.
        private BYOT() {}

        // Create an object that is enlisted with a TIP transaction.
        public static Object CreateWithTipTransaction(String url, Type t)
                        {
                                throw new SecurityException();
                        }

        // Create an object that is enlished with a manual transaction.
        public static Object CreateWithTransaction(Object transaction, Type t)
                        {
                                throw new SecurityException();
                        }

}; // class BYOT

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * BindingOption.cs - Implementation of the
 *                      "System.EnterpriseServices.BindingOption" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
public enum BindingOption
{
        NoBinding                       = 0,
        BindingToPoolThread     = 1

}; // enum BindingOption

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * COMTIIntrinsicsAttribute.cs - Implementation of the
 *                      "System.EnterpriseServices.COMTIIntrinsicsAttribute" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Class, Inherited=true)]
public sealed class COMTIIntrinsicsAttribute : Attribute
{
        // Internal state.
        private bool val;

        // Constructors.
        public COMTIIntrinsicsAttribute() : this(true) {}
        public COMTIIntrinsicsAttribute(bool val)
                        {
                                this.val = val;
                        }

        // Get this attribute's value.
        public bool Value
                        {
                                get
                                {
                                        return val;
                                }
                        }

}; // class COMTIIntrinsicsAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * ComponentAccessControlAttribute.cs - Implementation of the
 *                      
"System.EnterpriseServices.ComponentAccessControlAttribute" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Class, Inherited=true)]
public sealed class ComponentAccessControlAttribute : Attribute
{
        // Internal state.
        private bool val;

        // Constructors.
        public ComponentAccessControlAttribute() : this(true) {}
        public ComponentAccessControlAttribute(bool val)
                        {
                                this.val = val;
                        }

        // Get this attribute's value.
        public bool Value
                        {
                                get
                                {
                                        return val;
                                }
                        }

}; // class ComponentAccessControlAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * ConstructionEnabledAttribute.cs - Implementation of the
 *                      
"System.EnterpriseServices.ConstructionEnabledAttribute" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Class, Inherited=true)]
public sealed class ConstructionEnabledAttribute : Attribute
{
        // Internal state.
        private String defaultString;
        private bool enabled;

        // Constructors.
        public ConstructionEnabledAttribute() : this(true) {}
        public ConstructionEnabledAttribute(bool val)
                        {
                                this.defaultString = String.Empty;
                                this.enabled = val;
                        }

        // Get or set this attribute's values.
        public String Default
                        {
                                get
                                {
                                        return defaultString;
                                }
                                set
                                {
                                        defaultString = value;
                                }
                        }
        public bool Enabled
                        {
                                get
                                {
                                        return enabled;
                                }
                                set
                                {
                                        enabled = value;
                                }
                        }

}; // class ConstructionEnabledAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * ContextUtil.cs - Implementation of the
 *                      "System.EnterpriseServices.ContextUtil" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

// Don't use this class.  It is specific to Windows 2000 systems.
// Where possible, we try to pretend that Windows 2000 doesn't
// exists so that all platforms work the same way.

public sealed class ContextUtil
{
        // Internal state.
        [ThreadStatic] private static bool deactivateOnReturn;
        [ThreadStatic] private static bool consistent;

        // Cannot instantiate this class.
        private ContextUtil() {}

        // Get or set the context properties.
#if !ECMA_COMPAT
        public static Guid ActivityId
                        {
                                get
                                {
                                        throw new 
PlatformNotSupportedException();
                                }
                        }
        public static Guid ApplicationId
                        {
                                get
                                {
                                        throw new 
PlatformNotSupportedException();
                                }
                        }
        public static Guid ApplicationInstanceId
                        {
                                get
                                {
                                        throw new 
PlatformNotSupportedException();
                                }
                        }
        public static Guid ContextId
                        {
                                get
                                {
                                        throw new 
PlatformNotSupportedException();
                                }
                        }
        public static Guid PartitionId
                        {
                                get
                                {
                                        throw new 
PlatformNotSupportedException();
                                }
                        }
        public static Guid TransactionId
                        {
                                get
                                {
                                        throw new 
PlatformNotSupportedException();
                                }
                        }
#endif
        public static bool DeactivateOnReturn
                        {
                                get
                                {
                                        return deactivateOnReturn;
                                }
                                set
                                {
                                        deactivateOnReturn = value;
                                }
                        }
        public static bool IsInTransaction
                        {
                                get
                                {
                                        return false;
                                }
                        }
        public static bool IsSecurityEnabled
                        {
                                get
                                {
                                        return false;
                                }
                        }
        public static TransactionVote MyTransactionVote
                        {
                                get
                                {
                                        if(consistent)
                                        {
                                                return TransactionVote.Commit;
                                        }
                                        else
                                        {
                                                return TransactionVote.Abort;
                                        }
                                }
                                set
                                {
                                        consistent = (value == 
TransactionVote.Commit);
                                }
                        }
        public static Object Transaction
                        {
                                get
                                {
                                        throw new 
PlatformNotSupportedException();
                                }
                        }

        // Enable or disable commits.
        public static void EnableCommit()
                        {
                                consistent = true;
                                deactivateOnReturn = false;
                        }
        public static void DisableCommit()
                        {
                                consistent = false;
                                deactivateOnReturn = false;
                        }

        // Get a named property from the context.
        public static Object GetNamedProperty(String name)
                        {
                                throw new PlatformNotSupportedException();
                        }

        // Determine if the caller is within a specified role.
        public static bool IsCallerInRole(String role)
                        {
                                return 
SecurityCallContext.CurrentCall.IsCallerInRole(role);
                        }

        // Abort the current transaction.
        public static void SetAbort()
                        {
                                consistent = false;
                                deactivateOnReturn = true;
                        }

        // Mark the current transaction as complete.
        public static void SetComplete()
                        {
                                consistent = true;
                                deactivateOnReturn = true;
                        }

}; // class ContextUtil

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * DescriptionAttribute.cs - Implementation of the
 *                      "System.EnterpriseServices.DescriptionAttribute" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Assembly |
                                AttributeTargets.Class |
                                AttributeTargets.Method |
                                AttributeTargets.Interface, Inherited=true)]
public sealed class DescriptionAttribute : Attribute
{
        // Constructor.
        public DescriptionAttribute(String desc) {}

}; // class DescriptionAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * EventClassAttribute.cs - Implementation of the
 *                      "System.EnterpriseServices.EventClassAttribute" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Class, Inherited=true)]
public sealed class EventClassAttribute : Attribute
{
        // Internal state.
        private bool allowInprocSubscribers;
        private bool fireInParallel;
        private String publisherFilter;

        // Constructors.
        public EventClassAttribute()
                        {
                                this.allowInprocSubscribers = true;
                        }

        // Get or set this attribute's values.
        public bool AllowInprocSubscribers
                        {
                                get
                                {
                                        return allowInprocSubscribers;
                                }
                                set
                                {
                                        allowInprocSubscribers = value;
                                }
                        }
        public bool FireInParallel
                        {
                                get
                                {
                                        return fireInParallel;
                                }
                                set
                                {
                                        fireInParallel = value;
                                }
                        }
        public String PublisherFilter
                        {
                                get
                                {
                                        return publisherFilter;
                                }
                                set
                                {
                                        publisherFilter = value;
                                }
                        }

}; // class EventClassAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * EventTrackingEnabledAttribute.cs - Implementation of the
 *                      
"System.EnterpriseServices.EventTrackingEnabledAttribute" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Class, Inherited=true)]
public sealed class EventTrackingEnabledAttribute : Attribute
{
        // Internal state.
        private bool val;

        // Constructors.
        public EventTrackingEnabledAttribute() : this(true) {}
        public EventTrackingEnabledAttribute(bool val)
                        {
                                this.val = val;
                        }

        // Get this attribute's value.
        public bool Value
                        {
                                get
                                {
                                        return val;
                                }
                        }

}; // class EventTrackingEnabledAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * ExceptionClassAttribute.cs - Implementation of the
 *                      "System.EnterpriseServices.ExceptionClassAttribute" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Class, Inherited=true)]
public sealed class ExceptionClassAttribute : Attribute
{
        // Internal state.
        private String name;

        // Constructors.
        public ExceptionClassAttribute(String name)
                        {
                                this.name = name;
                        }

        // Get this attribute's value.
        public String Value
                        {
                                get
                                {
                                        return name;
                                }
                        }

}; // class ExceptionClassAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * IAsyncErrorNotify.cs - Implementation of the
 *                      "System.EnterpriseServices.IAsyncErrorNotify" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if CONFIG_COM_INTEROP
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[ComImport]
#endif
#if !ECMA_COMPAT
[Guid("FE6777FB-A674-4177-8F32-6D707E113484")]
#endif
public interface IAsyncErrorNotify
{
        // Handle errors for a batch operation.
        void OnError(int hresult);

}; // interface IAsyncErrorNotify

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * IConfigurationAttribute.cs - Implementation of the
 *                      "System.EnterpriseServices.IConfigurationAttribute" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Collections;

internal interface IConfigurationAttribute
{
        bool AfterSaveChanges(Hashtable info);
        bool Apply(Hashtable info);
        bool IsValidTarget(String s);

}; // interface IConfigurationAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * IISIntrinsicsAttribute.cs - Implementation of the
 *                      "System.EnterpriseServices.IISIntrinsicsAttribute" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Class, Inherited=true)]
public sealed class IISIntrinsicsAttribute : Attribute
{
        // Internal state.
        private bool val;

        // Constructors.
        public IISIntrinsicsAttribute() : this(true) {}
        public IISIntrinsicsAttribute(bool val)
                        {
                                this.val = val;
                        }

        // Get this attribute's value.
        public bool Value
                        {
                                get
                                {
                                        return val;
                                }
                        }

}; // class IISIntrinsicsAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * IPlaybackControl.cs - Implementation of the
 *                      "System.EnterpriseServices.IPlaybackControl" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if CONFIG_COM_INTEROP
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[ComImport]
#endif
#if !ECMA_COMPAT
[Guid("51372AFD-CAE7-11CF-BE81-00AA00A2FA25")]
#endif
public interface IPlaybackControl
{
        // Provide notification that all client retries have failed.
        void FinalClientRetry();

        // Provide notification that all server retries have failed.
        void FinalServerRetry();

}; // interface IPlaybackControl

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * IProcessInitControl.cs - Implementation of the
 *                      "System.EnterpriseServices.IProcessInitControl" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if CONFIG_COM_INTEROP
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[ComImport]
#endif
#if !ECMA_COMPAT
[Guid("72380d55-8d2b-43a3-8513-2b6ef31434e9")]
#endif
public interface IProcessInitControl
{
        // Reset the initialization startup timeout.
        void ResetInitializerTimeout(int dwSecondsRemaining);

}; // interface IProcessInitControl

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * IProcessInitializer.cs - Implementation of the
 *                      "System.EnterpriseServices.IProcessInitializer" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if CONFIG_COM_INTEROP
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[ComImport]
#endif
#if !ECMA_COMPAT
[Guid("1113f52d-dc7f-4943-aed6-88d04027e32a")]
#endif
public interface IProcessInitializer
{
        // Perform shutdown actions.
        void Shutdown();

        // Perform startup actions.
        void Startup([In] Object punkProcessControl);

}; // interface IProcessInitializer

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * IRegistrationHelper.cs - Implementation of the
 *                      "System.EnterpriseServices.IRegistrationHelper" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if CONFIG_COM_INTEROP
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
#endif
#if !ECMA_COMPAT
[Guid("55e3ea25-55cb-4650-8887-18e8d30bb4bc")]
#endif
public interface IRegistrationHelper
{
        // Install an assembly into the catalog.
        void InstallAssembly
                        ([In] String assembly, [In,Out] ref String application,
                         [In,Out] ref String tlb, [In] InstallationFlags 
installFlags);

        // Uninstall an assembly from the catalog.
        void UninstallAssembly
                        ([In] String assembly, [In] String application);

}; // interface IRegistrationHelper

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * IRemoteDispatch.cs - Implementation of the
 *                      "System.EnterpriseServices.IRemoteDispatch" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[Guid("6619a740-8154-43be-a186-0319578e02db")]
#endif
public interface IRemoteDispatch
{
        [AutoComplete(true)]
        String RemoteDispatchAutoDone(String s);

        [AutoComplete(false)]
        String RemoteDispatchNotAutoDone(String s);

}; // interface IRemoteDispatch

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * IServiceCall.cs - Implementation of the
 *                      "System.EnterpriseServices.IServiceCall" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if CONFIG_COM_INTEROP
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[ComImport]
#endif
#if !ECMA_COMPAT
[Guid("BD3E2E12-42DD-40f4-A09A-95A50C58304B")]
#endif
public interface IServiceCall
{
        // Start execution of the batch work for this call.
        void OnCall();

}; // interface IServiceCall

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * IServicedComponentInfo.cs - Implementation of the
 *                      "System.EnterpriseServices.IServicedComponentInfo" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if CONFIG_COM_INTEROP
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
#endif
#if !ECMA_COMPAT
[Guid("8165B19E-8D3A-4d0b-80C8-97DE310DB583")]
#endif
public interface IServicedComponentInfo
{
        // Get information about this component.
        void GetComponentInfo(ref int infoMask, out String[] infoArray);

}; // interface IServicedComponentInfo

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * ITransaction.cs - Implementation of the
 *                      "System.EnterpriseServices.ITransaction" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if CONFIG_COM_INTEROP
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[ComImport]
#endif
#if !ECMA_COMPAT
[Guid("0FB15084-AF41-11CE-BD2B-204C4F4F5020")]
#endif
public interface ITransaction
{
        // Abort the transaction.
        void Abort(ref BOID pboidReason, int fRetaining, int fAsync);

        // Commit the transaction.
        void Commit(int fRetaining, int grfTC, int grfRM);

        // Get information about this transaction.
        void GetTransactionInfo(out XACTTRANSINFO pinfo);

}; // interface ITransaction

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * ImpersonationLevelOption.cs - Implementation of the
 *                      "System.EnterpriseServices.ImpersonationLevelOption" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

public enum ImpersonationLevelOption
{
        Default         = 0,
        Anonymous       = 1,
        Identify        = 2,
        Impersonate     = 3,
        Delegate        = 4

}; // enum ImpersonationLevelOption

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * InheritanceOption.cs - Implementation of the
 *                      "System.EnterpriseServices.InheritanceOption" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
public enum InheritanceOption
{
        Inherit = 0,
        Ignore  = 1

}; // enum InheritanceOption

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * InstallationFlags.cs - Implementation of the
 *                      "System.EnterpriseServices.InstallationFlags" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

[Flags]
public enum InstallationFlags
{
        Default                                                 = 0x0000,
        ExpectExistingTypeLib                   = 0x0001,
        CreateTargetApplication                 = 0x0002,
        FindOrCreateTargetApplication   = 0x0004,
        ReconfigureExistingApplication  = 0x0008,
        ConfigureComponentsOnly                 = 0x0010,
        ReportWarningsToConsole                 = 0x0020,
        Register                                                = 0x0100,
        Install                                                 = 0x0200,
        Configure                                               = 0x0400

}; // enum InstallationFlags

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * InterfaceQueuingAttribute.cs - Implementation of the
 *                      "System.EnterpriseServices.InterfaceQueuingAttribute" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface,
                                Inherited=true, AllowMultiple=true)]
public sealed class InterfaceQueuingAttribute : Attribute
{
        // Internal state.
        private bool enabled;
        private String interfaceString;

        // Constructors.
        public InterfaceQueuingAttribute() : this(true) {}
        public InterfaceQueuingAttribute(bool val)
                        {
                                this.enabled = enabled;
                        }

        // Get this attribute's value.
        public bool Enabled
                        {
                                get
                                {
                                        return enabled;
                                }
                                set
                                {
                                        enabled = value;
                                }
                        }
        public String Interface
                        {
                                get
                                {
                                        return interfaceString;
                                }
                                set
                                {
                                        interfaceString = value;
                                }
                        }

}; // class IInterfaceQueuingAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * JustInTimeActivationAttribute.cs - Implementation of the
 *                      
"System.EnterpriseServices.JustInTimeActivationAttribute" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Class, Inherited=true)]
public sealed class JustInTimeActivationAttribute : Attribute
{
        // Internal state.
        private bool val;

        // Constructors.
        public JustInTimeActivationAttribute() : this(true) {}
        public JustInTimeActivationAttribute(bool val)
                        {
                                this.val = val;
                        }

        // Get this attribute's value.
        public bool Value
                        {
                                get
                                {
                                        return val;
                                }
                        }

}; // class JustInTimeActivationAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * LoadBalancingSupportedAttribute.cs - Implementation of the
 *                      
"System.EnterpriseServices.LoadBalancingSupportedAttribute" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Class, Inherited=true)]
public sealed class LoadBalancingSupportedAttribute : Attribute
{
        // Internal state.
        private bool val;

        // Constructors.
        public LoadBalancingSupportedAttribute() : this(true) {}
        public LoadBalancingSupportedAttribute(bool val)
                        {
                                this.val = val;
                        }

        // Get this attribute's value.
        public bool Value
                        {
                                get
                                {
                                        return val;
                                }
                        }

}; // class LoadBalancingSupportedAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---

.PHONY: System.EnterpriseServices.dll

all-local: System.EnterpriseServices.dll

System.EnterpriseServices.dll:
        "$(CSANT)" $(CSANT_FLAGS) -f System.EnterpriseServices.build all

CLEANFILES = System.EnterpriseServices.dll

pnetassembliesdir = $(libdir)/cscc/lib
pnetassemblies_DATA = System.EnterpriseServices.dll

--- NEW FILE ---
/*
 * MustRunInClientContextAttribute.cs - Implementation of the
 *                      
"System.EnterpriseServices.MustRunInClientContextAttribute" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Class, Inherited=true)]
public sealed class MustRunInClientContextAttribute : Attribute
{
        // Internal state.
        private bool val;

        // Constructors.
        public MustRunInClientContextAttribute() : this(true) {}
        public MustRunInClientContextAttribute(bool val)
                        {
                                this.val = val;
                        }

        // Get this attribute's value.
        public bool Value
                        {
                                get
                                {
                                        return val;
                                }
                        }

}; // class MustRunInClientContextAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * ObjectPoolingAttribute.cs - Implementation of the
 *                      "System.EnterpriseServices.ObjectPoolingAttribute" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;
using System.Collections;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Class, Inherited=true)]
public sealed class ObjectPoolingAttribute : Attribute, IConfigurationAttribute
{
        // Internal state.
        private bool enabled;
        private int minPoolSize;
        private int maxPoolSize;
        private int creationTimeout;

        // Constructors.
        public ObjectPoolingAttribute() : this(true) {}
        public ObjectPoolingAttribute(bool enable)
                        {
                                this.enabled = enable;
                                this.minPoolSize = -1;
                                this.maxPoolSize = -1;
                                this.creationTimeout = -1;
                        }
        public ObjectPoolingAttribute(int minPoolSize, int maxPoolSize)
                        : this(true, minPoolSize, maxPoolSize) {}
        public ObjectPoolingAttribute(bool enable, int minPoolSize, int 
maxPoolSize)
                        {
                                this.enabled = enable;
                                this.minPoolSize = minPoolSize;
                                this.maxPoolSize = maxPoolSize;
                                this.creationTimeout = -1;
                        }

        // Get or set this attribute's values.
        public int CreationTimeout
                        {
                                get
                                {
                                        return creationTimeout;
                                }
                                set
                                {
                                        creationTimeout = value;
                                }
                        }
        public bool Enabled
                        {
                                get
                                {
                                        return enabled;
                                }
                                set
                                {
                                        enabled = value;
                                }
                        }
        public int MaxPoolSize
                        {
                                get
                                {
                                        return maxPoolSize;
                                }
                                set
                                {
                                        maxPoolSize = value;
                                }
                        }
        public int MinPoolSize
                        {
                                get
                                {
                                        return minPoolSize;
                                }
                                set
                                {
                                        minPoolSize = value;
                                }
                        }

        // Implement the IConfigurationAttribute interface.
        public bool AfterSaveChanges(Hashtable info)
                        {
                                // Not used in this implementation.
                                return false;
                        }
        public bool Apply(Hashtable info)
                        {
                                // Not used in this implementation.
                                return true;
                        }
        public bool IsValidTarget(String s)
                        {
                                // Not used in this implementation.
                                return (s == "Component");
                        }

}; // class ObjectPoolingAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * PartitionOption.cs - Implementation of the
 *                      "System.EnterpriseServices.PartitionOption" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
public enum PartitionOption
{
        Ignore  = 0,
        Inherit = 1,
        New             = 2

}; // enum PartitionOption

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * PrivateComponentAttribute.cs - Implementation of the
 *                      "System.EnterpriseServices.PrivateComponentAttribute" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Class, Inherited=true)]
public sealed class PrivateComponentAttribute : Attribute
{
        // Constructor.
        public PrivateComponentAttribute() {}

}; // class PrivateComponentAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * PropertyLockMode.cs - Implementation of the
 *                      "System.EnterpriseServices.PropertyLockMode" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
public enum PropertyLockMode
{
        SetGet  = 0,
        Method  = 1

}; // enum PropertyLockMode

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * PropertyReleaseMode.cs - Implementation of the
 *                      "System.EnterpriseServices.PropertyReleaseMode" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
public enum PropertyReleaseMode
{
        Standard        = 0,
        Process         = 1

}; // enum PropertyReleaseMode

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * RegistrationConfig.cs - Implementation of the
 *                      "System.EnterpriseServices.RegistrationConfig" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[Serializable]
[Guid("36dcda30-dc3b-4d93-be42-90b2d74c64e7")]
#endif
public class RegistrationConfig
{
        // Internal state.
        private String application;
        private String applicationRootDirectory;
        private String assemblyFile;
        private InstallationFlags installationFlags;
        private String partition;
        private String typeLibrary;

        // Constructor.
        public RegistrationConfig() {}

        // Get or set this object's properties.
        public String Application
                        {
                                get
                                {
                                        return application;
                                }
                                set
                                {
                                        application = value;
                                }
                        }
        public String ApplicationRootDirectory
                        {
                                get
                                {
                                        return applicationRootDirectory;
                                }
                                set
                                {
                                        applicationRootDirectory = value;
                                }
                        }
        public String AssemblyFile
                        {
                                get
                                {
                                        return assemblyFile;
                                }
                                set
                                {
                                        assemblyFile = value;
                                }
                        }
        public InstallationFlags InstallationFlags
                        {
                                get
                                {
                                        return installationFlags;
                                }
                                set
                                {
                                        installationFlags = value;
                                }
                        }
        public String Partition
                        {
                                get
                                {
                                        return partition;
                                }
                                set
                                {
                                        partition = value;
                                }
                        }
        public String TypeLibrary
                        {
                                get
                                {
                                        return typeLibrary;
                                }
                                set
                                {
                                        typeLibrary = value;
                                }
                        }

}; // class RegistrationConfig

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * RegistrationErrorInfo.cs - Implementation of the
 *                      "System.EnterpriseServices.RegistrationErrorInfo" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[Serializable]
#endif
public sealed class RegistrationErrorInfo
{
        // Internal state.
        private int errorCode;
        private String errorString;
        private String majorRef;
        private String minorRef;
        private String name;

        // Constructor.
        internal RegistrationErrorInfo() {}

        // Get this object's properties.
        public int ErrorCode
                        {
                                get
                                {
                                        return errorCode;
                                }
                        }
        public String ErrorString
                        {
                                get
                                {
                                        return errorString;
                                }
                        }
        public String MajorRef
                        {
                                get
                                {
                                        return majorRef;
                                }
                        }
        public String MinorRef
                        {
                                get
                                {
                                        return minorRef;
                                }
                        }
        public String Name
                        {
                                get
                                {
                                        return name;
                                }
                        }

}; // class RegistrationErrorInfo

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * RegistrationException.cs - Implementation of the
 *                      "System.EnterpriseServices.RegistrationException" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.Serialization;

#if !ECMA_COMPAT
[Serializable]
#endif
public sealed class RegistrationException : SystemException
{
        // Internal state.
        private RegistrationErrorInfo[] errorInfo;

        // Constructors.
        public RegistrationException(String msg) : base(msg) {}
#if CONFIG_SERIALIZATION
        internal RegistrationException
                                (SerializationInfo info, StreamingContext 
context)
                        : base(info, context)
                        {
                                errorInfo = 
(RegistrationErrorInfo[])info.GetValue
                                        ("ErrorInfo", 
typeof(RegistrationErrorInfo[]));
                        }

        // Get the serialization information for this object.
        public override void GetObjectData
                                (SerializationInfo info, StreamingContext 
context)
                        {
                                base.GetObjectData(info, context);
                                info.AddValue("ErrorInfo", errorInfo,
                                                          
typeof(RegistrationErrorInfo[]));
                        }
#endif

        // Get the error object's within this exception.
        public RegistrationErrorInfo[] ErrorInfo
                        {
                                get
                                {
                                        return errorInfo;
                                }
                        }

}; // class RegistrationException

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * RegistrationHelper.cs - Implementation of the
 *                      "System.EnterpriseServices.RegistrationHelper" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;
using System.Security;

#if !ECMA_COMPAT
[Guid("89a86e7b-c229-4008-9baa-2f5c8411d7e0")]
#endif
public sealed class RegistrationHelper
        : MarshalByRefObject, IRegistrationHelper
{
        // Constructor.
        public RegistrationHelper() {}

        // Implement the IRegistrationHelper interface.
        public void InstallAssembly
                                (String assembly, ref String application,
                                 ref String tlb, InstallationFlags installFlags)
                        {
                                InstallAssembly(assembly, ref application, null,
                                                                ref tlb, 
installFlags);
                        }
        public void UninstallAssembly(String assembly, String application)
                        {
                                UninstallAssembly(assembly, application, null);
                        }

        // Install an assembly.
        public void InstallAssembly
                                (String assembly, ref String application, 
String partition,
                                 ref String tlb, InstallationFlags installFlags)
                        {
                                RegistrationConfig config = new 
RegistrationConfig();
                                config.AssemblyFile = assembly;
                                config.Application = application;
                                config.Partition = partition;
                                config.TypeLibrary = tlb;
                                config.InstallationFlags = installFlags;
                                InstallAssemblyFromConfig(ref config);
                                application = config.Application;
                                tlb = config.TypeLibrary;
                        }

        // Uninstall an assembly.
        public void UninstallAssembly
                                (String assembly, String application, String 
partition)
                        {
                                RegistrationConfig config = new 
RegistrationConfig();
                                config.AssemblyFile = assembly;
                                config.Application = application;
                                UninstallAssemblyFromConfig(ref config);
                        }

        // Install an assembly given configuration information.
        public void InstallAssemblyFromConfig(ref RegistrationConfig regConfig)
                        {
                                throw new SecurityException();
                        }

        // Uninstall an assembly given configuration information.
        public void UninstallAssemblyFromConfig(ref RegistrationConfig 
regConfig)
                        {
                                throw new SecurityException();
                        }

}; // class RegistrationHelper

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * RegistrationHelperTx.cs - Implementation of the
 *                      "System.EnterpriseServices.RegistrationHelperTx" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;
using System.Security;

#if !ECMA_COMPAT
[Guid("9e31421c-2f15-4f35-ad20-66fb9d4cd428")]
#endif
[Transaction(TransactionOption.RequiresNew)]
public sealed class RegistrationHelperTx : ServicedComponent
{
        // Constructor.
        public RegistrationHelperTx() {}

        // Method that is called when the serviced component is activated.
        protected internal override void Activate() {}

        // Method that is called just before the component is deactivated.
        protected internal override void Deactivate() {}

        // Install an assembly.
        public void InstallAssembly
                                (String assembly, ref String application,
                                 ref String tlb, InstallationFlags 
installFlags, Object sync)
                        {
                                InstallAssembly(assembly, ref application, null,
                                                                ref tlb, 
installFlags, sync);
                        }
        public void InstallAssembly
                                (String assembly, ref String application, 
String partition,
                                 ref String tlb, InstallationFlags 
installFlags, Object sync)
                        {
                                RegistrationConfig config = new 
RegistrationConfig();
                                config.AssemblyFile = assembly;
                                config.Application = application;
                                config.Partition = partition;
                                config.TypeLibrary = tlb;
                                config.InstallationFlags = installFlags;
                                InstallAssemblyFromConfig(ref config, sync);
                                application = config.Application;
                                tlb = config.TypeLibrary;
                        }

        // Uninstall an assembly.
        public void UninstallAssembly
                                (String assembly, String application, Object 
sync)
                        {
                                UninstallAssembly(assembly, application, null, 
sync);
                        }
        public void UninstallAssembly
                                (String assembly, String application,
                                 String partition, Object sync)
                        {
                                RegistrationConfig config = new 
RegistrationConfig();
                                config.AssemblyFile = assembly;
                                config.Application = application;
                                UninstallAssemblyFromConfig(ref config, sync);
                        }

        // Install an assembly given configuration information.
        public void InstallAssemblyFromConfig
                                (ref RegistrationConfig regConfig, Object sync)
                        {
                                RegistrationHelper helper;
                                bool complete = false;
                                try
                                {
                                        helper = new RegistrationHelper();
                                        helper.InstallAssemblyFromConfig(ref 
regConfig);
                                        ContextUtil.SetComplete();
                                        complete = true;
                                }
                                finally
                                {
                                        if(!complete)
                                        {
                                                ContextUtil.SetAbort();
                                        }
                                }
                        }

        // Uninstall an assembly given configuration information.
        public void UninstallAssemblyFromConfig
                                (ref RegistrationConfig regConfig, Object sync)
                        {
                                RegistrationHelper helper;
                                bool complete = false;
                                try
                                {
                                        helper = new RegistrationHelper();
                                        helper.UninstallAssemblyFromConfig(ref 
regConfig);
                                        ContextUtil.SetComplete();
                                        complete = true;
                                }
                                finally
                                {
                                        if(!complete)
                                        {
                                                ContextUtil.SetAbort();
                                        }
                                }
                        }

        // Determine if this component is running inside a transaction.
        public bool IsInTransaction()
                        {
                                return ContextUtil.IsInTransaction;
                        }

}; // class RegistrationHelperTx

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * ResourcePool.cs - Implementation of the
 *                      "System.EnterpriseServices.ResourcePool" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

public sealed class ResourcePool
{
        // Internal state.
        private TransactionEndDelegate cb;
        private Object resource;

        // Constructor.
        public ResourcePool(TransactionEndDelegate cb)
                        {
                                this.cb = cb;
                        }

        // Get a resource from the current transaction.
        public Object GetResource()
                        {
                                return resource;
                        }

        // Add a resource to the current transaction.
        public bool PutResource(Object resource)
                        {
                                this.resource = resource;
                                return true;
                        }

        // A delegate that handles returning resources at the end
        // of a transaction.
        public delegate void TransactionEndDelegate(Object resource);

}; // class ResourcePool

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * SecureMethodAttribute.cs - Implementation of the
 *                      "System.EnterpriseServices.SecureMethodAttribute" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method,
                                Inherited=true, AllowMultiple=false)]
public sealed class SecureMethodAttribute : Attribute
{
        // Constructor.
        public SecureMethodAttribute() {}

}; // class SecureMethodAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * SecurityCallContext.cs - Implementation of the
 *                      "System.EnterpriseServices.SecurityCallContext" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

public sealed class SecurityCallContext
{
        // Internal state.
        [ThreadStatic] private static SecurityCallContext currentCall;
        private SecurityCallers callers;

        // Constructor.
        private SecurityCallContext()
                        {
                                // Create the caller chain and push the current 
user onto it.
                                callers = new SecurityCallers();
                                callers.PushCaller(new SecurityIdentity());
                        }

        // Get the current security call context.
        public static SecurityCallContext CurrentCall
                        {
                                get
                                {
                                        if(currentCall == null)
                                        {
                                                currentCall = new 
SecurityCallContext();
                                        }
                                        return currentCall;
                                }
                        }

        // Get this object's properties.
        public SecurityCallers Callers
                        {
                                get
                                {
                                        return callers;
                                }
                        }
        public SecurityIdentity DirectCaller
                        {
                                get
                                {
                                        return callers[0];
                                }
                        }
        public bool IsSecurityEnabled
                        {
                                get
                                {
                                        return true;
                                }
                        }
        public int MinAuthenticationLevel
                        {
                                get
                                {
                                        return 0;
                                }
                        }
        public int NumCallers
                        {
                                get
                                {
                                        return Callers.Count;
                                }
                        }
        public SecurityIdentity OriginalCaller
                        {
                                get
                                {
                                        return callers[callers.Count - 1];
                                }
                        }

        // Determine if the current caller is in a particular role.
        public bool IsCallerInRole(String role)
                        {
                                // Not used in this implementation.
                                return false;
                        }

        // Determine if the user is in a particular role.
        public bool IsUserInRole(String user, String role)
                        {
                                // Not used in this implementation.
                                return false;
                        }

}; // class SecurityCallContext

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * SecurityCallers.cs - Implementation of the
 *                      "System.EnterpriseServices.SecurityCallers" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Collections;

public sealed class SecurityCallers : IEnumerable
{
        // Internal state.
        private ArrayList list;

        // Constructor.
        internal SecurityCallers()
                        {
                                list = new ArrayList();
                        }

        // Get the number of callers in the chain.
        public int Count
                        {
                                get
                                {
                                        return list.Count;
                                }
                        }

        // Get a particular item within the call chain.
        public SecurityIdentity this[int idx]
                        {
                                get
                                {
                                        return (SecurityIdentity)(list[idx]);
                                }
                        }

        // Enumerate over all callers in the chain.
        public IEnumerator GetEnumerator()
                        {
                                return list.GetEnumerator();
                        }

        // Push a caller onto the chain.
        internal void PushCaller(SecurityIdentity caller)
                        {
                                list.Insert(0, caller);
                        }

        // Pop the top-most caller from the chain.  Cannot pop the original 
value.
        internal void PopCaller()
                        {
                                if(list.Count > 1)
                                {
                                        list.RemoveAt(0);
                                }
                        }

}; // class SecurityCallers

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * SecurityIdentity.cs - Implementation of the
 *                      "System.EnterpriseServices.SecurityIdentity" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

public sealed class SecurityIdentity
{
        // Internal state.
        private String accountName;
        private AuthenticationOption authenticationLevel;
        private int authenticationService;
        private ImpersonationLevelOption impersonationLevel;

        // Constructor.
        internal SecurityIdentity(String accountName,
                                                          AuthenticationOption 
authenticationLevel,
                                                          int 
authenticationService,
                                                          
ImpersonationLevelOption impersonationLevel)
                        {
                                this.accountName = accountName;
                                this.authenticationLevel = authenticationLevel;
                                this.authenticationService = 
authenticationService;
                                this.impersonationLevel = impersonationLevel;
                        }
        internal SecurityIdentity()
                        {
                        #if !ECMA_COMPAT
                                this.accountName = Environment.UserName;
                        #else
                                this.accountName = "nobody";
                        #endif
                        }

        // Get this object's properties.
        public String AccountName
                        {
                                get
                                {
                                        return accountName;
                                }
                        }
        public AuthenticationOption AuthenticationLevel
                        {
                                get
                                {
                                        return authenticationLevel;
                                }
                        }
        public int AuthenticationService
                        {
                                get
                                {
                                        return authenticationService;
                                }
                        }
        public ImpersonationLevelOption ImpersonationLevel
                        {
                                get
                                {
                                        return impersonationLevel;
                                }
                        }

}; // class SecurityIdentity

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * SecurityRoleAttribute.cs - Implementation of the
 *                      "System.EnterpriseServices.SecurityRoleAttribute" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Assembly |
                                AttributeTargets.Class |
                                AttributeTargets.Method |
                                AttributeTargets.Interface,
                                Inherited=true, AllowMultiple=true)]
public sealed class SecurityRoleAttribute : Attribute
{
        // Internal state.
        private String description;
        private String role;
        private bool everyone;

        // Constructor.
        public SecurityRoleAttribute(String role) : this(role, false) {}
        public SecurityRoleAttribute(String role, bool everyone)
                        {
                                this.role = role;
                                this.everyone = everyone;
                        }

        // Get or set this attribute's values.
        public String Description
                        {
                                get
                                {
                                        return description;
                                }
                                set
                                {
                                        description = value;
                                }
                        }
        public String Role
                        {
                                get
                                {
                                        return role;
                                }
                                set
                                {
                                        role = value;
                                }
                        }
        public bool SetEveryoneAccess
                        {
                                get
                                {
                                        return everyone;
                                }
                                set
                                {
                                        everyone = value;
                                }
                        }

}; // class SecurityRoleAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * ServiceConfig.cs - Implementation of the
 *                      "System.EnterpriseServices.ServiceConfig" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
public sealed class ServiceConfig
{
        // Internal state.
        private BindingOption binding;
        private ITransaction bringYourOwnTransaction;
        private bool comTIIntrinsicsEnabled;
        private bool iisIntrinsicsEnabled;
        private InheritanceOption inheritance;
        private TransactionIsolationLevel isolationLevel;
#if !ECMA_COMPAT
        private Guid partitionId;
#endif
        private PartitionOption partitionOption;
        private String sxsDirectory;
        private String sxsName;
        private SxsOption sxsOption;
        private SynchronizationOption synchronization;
        private ThreadPoolOption threadPool;
        private String tipUrl;
        private String trackingAppName;
        private String trackingComponentName;
        private bool trackingEnabled;
        private TransactionOption transaction;
        private String transactionDescription;
        private int transactionTimeout;

        // Constructor.
        public ServiceConfig() {}

        // Get or set this object's properties.
        public BindingOption Binding
                        {
                                get
                                {
                                        return binding;
                                }
                                set
                                {
                                        binding = value;
                                }
                        }
        public ITransaction BringYourOwnTransaction
                        {
                                get
                                {
                                        return bringYourOwnTransaction;
                                }
                                set
                                {
                                        bringYourOwnTransaction = value;
                                }
                        }
        public bool COMTIIntrinsicsEnabled
                        {
                                get
                                {
                                        return comTIIntrinsicsEnabled;
                                }
                                set
                                {
                                        comTIIntrinsicsEnabled = value;
                                }
                        }
        public bool IISIntrinsicsEnabled
                        {
                                get
                                {
                                        return iisIntrinsicsEnabled;
                                }
                                set
                                {
                                        iisIntrinsicsEnabled = value;
                                }
                        }
        public InheritanceOption Inheritance
                        {
                                get
                                {
                                        return inheritance;
                                }
                                set
                                {
                                        inheritance = value;
                                }
                        }
        public TransactionIsolationLevel IsolationLevel
                        {
                                get
                                {
                                        return isolationLevel;
                                }
                                set
                                {
                                        isolationLevel = value;
                                }
                        }
#if !ECMA_COMPAT
        public Guid PartitionId
                        {
                                get
                                {
                                        return partitionId;
                                }
                                set
                                {
                                        partitionId = value;
                                }
                        }
#endif
        public PartitionOption PartitionOption
                        {
                                get
                                {
                                        return partitionOption;
                                }
                                set
                                {
                                        partitionOption = value;
                                }
                        }
        public String SxsDirectory
                        {
                                get
                                {
                                        return sxsDirectory;
                                }
                                set
                                {
                                        sxsDirectory = value;
                                }
                        }
        public String SxsName
                        {
                                get
                                {
                                        return sxsName;
                                }
                                set
                                {
                                        sxsName = value;
                                }
                        }
        public SxsOption SxsOption
                        {
                                get
                                {
                                        return sxsOption;
                                }
                                set
                                {
                                        sxsOption = value;
                                }
                        }
        public SynchronizationOption Synchronization
                        {
                                get
                                {
                                        return synchronization;
                                }
                                set
                                {
                                        synchronization = value;
                                }
                        }
        public ThreadPoolOption ThreadPool
                        {
                                get
                                {
                                        return threadPool;
                                }
                                set
                                {
                                        threadPool = value;
                                }
                        }
        public String TipUrl
                        {
                                get
                                {
                                        return tipUrl;
                                }
                                set
                                {
                                        tipUrl = value;
                                }
                        }
        public String TrackingAppName
                        {
                                get
                                {
                                        return trackingAppName;
                                }
                                set
                                {
                                        trackingAppName = value;
                                }
                        }
        public String TrackingComponentName
                        {
                                get
                                {
                                        return trackingComponentName;
                                }
                                set
                                {
                                        trackingComponentName = value;
                                }
                        }
        public bool TrackingEnabled
                        {
                                get
                                {
                                        return trackingEnabled;
                                }
                                set
                                {
                                        trackingEnabled = value;
                                }
                        }
        public TransactionOption Transaction
                        {
                                get
                                {
                                        return transaction;
                                }
                                set
                                {
                                        transaction = value;
                                }
                        }
        public String TransactionDescription
                        {
                                get
                                {
                                        return transactionDescription;
                                }
                                set
                                {
                                        transactionDescription = value;
                                }
                        }
        public int TransactionTimeout
                        {
                                get
                                {
                                        return transactionTimeout;
                                }
                                set
                                {
                                        transactionTimeout = value;
                                }
                        }

}; // class ServiceConfig

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * ServiceDomain.cs - Implementation of the
 *                      "System.EnterpriseServices.ServiceDomain" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Collections;
using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
public sealed class ServiceDomain
{
        // Internal state.
        [ThreadStatic] private static ArrayList configList;
        [ThreadStatic] private static TransactionStatus status;

        // Cannot instantiate this class.
        private ServiceDomain() {}

        // Enter a new service configuration.
        public static void Enter(ServiceConfig cfg)
                        {
                                if(configList == null)
                                {
                                        configList = new ArrayList();
                                }
                                configList.Add(cfg);
                        }

        // Leave the current service configuration.
        public static TransactionStatus Leave()
                        {
                                // Bail out if there was no context currently 
active.
                                if(configList == null || configList.Count == 0)
                                {
                                        return TransactionStatus.NoTransaction;
                                }

                                // Pop the top-most configuration context.
                                configList.RemoveAt(configList.Count - 1);

                                // Return the transaction status.
                                return status;
                        }

}; // class ServiceDomain

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * ServicedComponent.cs - Implementation of the
 *                      "System.EnterpriseServices.ServicedComponent" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

#if !ECMA_COMPAT
[Serializable]
public abstract class ServicedComponent : ContextBoundObject
#else
public abstract class ServicedComponent : MarshalByRefObject
#endif
        , IDisposable , IServicedComponentInfo, IRemoteDispatch
{
        // Constructor.
        public ServicedComponent() {}

        // Dispose of this object.
        public void Dispose()
                        {
                                DisposeObject(this);
                        }
        protected virtual void Dispose(bool disposing)
                        {
                                // Nothing to do here in the base class.
                        }

        // Dispose a serviced component object.
        public static void DisposeObject(ServicedComponent sc)
                        {
                                sc.Dispose(true);
                        }

        // Method that is called when the serviced component is activated.
        protected internal virtual void Activate() {}

        // Determine if this serviced component can be pooled.
        protected internal virtual bool CanBePooled()
                        {
                                return false;
                        }

        // Method that is called when the serviced component is constructed.
        protected internal virtual void Construct(String s) {}

        // Method that is called just before the component is deactivated.
        protected internal virtual void Deactivate() {}

        // Implement the IServicedComponentInfo interface.
        void IServicedComponentInfo.GetComponentInfo
                                (ref int infoMask, out String[] infoArray)
                        {
                                infoArray = new String [0];
                        }

        // Implement the IRemoteDispatch interface.
        [AutoComplete(true)]
        String IRemoteDispatch.RemoteDispatchAutoDone(String s)
                        {
                                return null;
                        }
        [AutoComplete(true)]
        String IRemoteDispatch.RemoteDispatchNotAutoDone(String s)
                        {
                                return null;
                        }

}; // class ServicedComponent

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * ServicedComponentException.cs - Implementation of the
 *                      "System.EnterpriseServices.ServicedComponentException" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;
using System.Runtime.Serialization;

#if !ECMA_COMPAT
[ComVisible(false)]
[Serializable]
#endif
public sealed class ServicedComponentException : SystemException
{
        // Internal state.
        private RegistrationErrorInfo[] errorInfo;

        // Constructors.
        public ServicedComponentException() : base() {}
        public ServicedComponentException(String msg)
                : base(msg) {}
        public ServicedComponentException(String msg, Exception inner)
                : base(msg, inner) {}
#if CONFIG_SERIALIZATION
        internal ServicedComponentException
                                (SerializationInfo info, StreamingContext 
context)
                        : base(info, context) {}
#endif

}; // class ServicedComponentException

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * SharedProperty.cs - Implementation of the
 *                      "System.EnterpriseServices.SharedProperty" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
public sealed class SharedProperty
{
        // Internal state.
        private Object value;

        // Constructor.
        internal SharedProperty() {}

        // Get or set this property's value.
        public Object Value
                        {
                                get
                                {
                                        return value;
                                }
                                set
                                {
                                        this.value = value;
                                }
                        }

}; // class SharedProperty

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * SharedPropertyGroup.cs - Implementation of the
 *                      "System.EnterpriseServices.SharedPropertyGroup" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Collections;
using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
public sealed class SharedPropertyGroup
{
        // Internal state.
        private Hashtable table;

        // Constructor.
        internal SharedPropertyGroup()
                        {
                                table = new Hashtable();
                        }

        // Create a new property within the shared group.
        public SharedProperty CreateProperty(String name, out bool fExists)
                        {
                                SharedProperty property;
                                property = (SharedProperty)(table[name]);
                                if(property != null)
                                {
                                        fExists = true;
                                        return property;
                                }
                                property = new SharedProperty();
                                table[name] = property;
                                fExists = false;
                                return property;
                        }
        public SharedProperty CreatePropertyByPosition
                                (int position, out bool fExists)
                        {
                                SharedProperty property;
                                property = (SharedProperty)(table[position]);
                                if(property != null)
                                {
                                        fExists = true;
                                        return property;
                                }
                                property = new SharedProperty();
                                table[position] = property;
                                fExists = false;
                                return property;
                        }

        // Get a property with a particular identifier.
        public SharedProperty Property(String name)
                        {
                                return (table[name] as SharedProperty);
                        }
        public SharedProperty PropertyByPosition(int position)
                        {
                                return (table[position] as SharedProperty);
                        }

}; // class SharedPropertyGroup

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * SharedPropertyGroupManager.cs - Implementation of the
 *                      "System.EnterpriseServices.SharedPropertyGroupManager" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Collections;
using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
public sealed class SharedPropertyGroupManager : IEnumerable
{
        // Internal state.
        private Hashtable table;

        // Constructor.
        public SharedPropertyGroupManager()
                        {
                                table = new Hashtable();
                        }

        // Find or create a shared property group.
        public SharedPropertyGroup CreatePropertyGroup
                                (String name, ref PropertyLockMode dwIsoMode,
                         ref PropertyReleaseMode dwRelMode, out bool fExist)
                        {
                                SharedPropertyGroup group;
                                group = (SharedPropertyGroup)(table[name]);
                                if(group != null)
                                {
                                        fExist = true;
                                        return group;
                                }
                                group = new SharedPropertyGroup();
                                table[name] = group;
                                fExist = false;
                                return group;
                        }

        // Get an enumerator for the group manager.
        public IEnumerator GetEnumerator()
                        {
                                return new 
GroupEnumerator(table.GetEnumerator());
                        }

        // Find the group with a specific name.
        public SharedPropertyGroup Group(String name)
                        {
                                return (table[name] as SharedPropertyGroup);
                        }

        // Enumerator for this class.
        private sealed class GroupEnumerator : IEnumerator
        {
                // Internal state.
                private IDictionaryEnumerator e;

                // Constructor.
                public GroupEnumerator(IDictionaryEnumerator e)
                                {
                                        this.e = e;
                                }

                // Implement the IEnumerator interface.
                public bool MoveNext()
                                {
                                        return e.MoveNext();
                                }
                public void Reset()
                                {
                                        e.Reset();
                                }
                public Object Current
                                {
                                        get
                                        {
                                                return e.Value;
                                        }
                                }

        }; // class GroupEnumerator

}; // class SharedPropertyGroupManager

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * SxsOption.cs - Implementation of the
 *                      "System.EnterpriseServices.SxsOption" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
public enum SxsOption
{
        Ignore  = 0,
        Inherit = 1,
        New             = 2

}; // enum SxsOption

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * SynchronizationAttribute.cs - Implementation of the
 *                      "System.EnterpriseServices.SynchronizationAttribute" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Class, Inherited=true)]
public sealed class SynchronizationAttribute : Attribute
{
        // Internal state.
        private SynchronizationOption val;

        // Constructors.
        public SynchronizationAttribute()
                        : this(SynchronizationOption.Required) {}
        public SynchronizationAttribute(SynchronizationOption val)
                        {
                                this.val = val;
                        }

        // Get this attribute's value.
        public SynchronizationOption Value
                        {
                                get
                                {
                                        return val;
                                }
                        }

}; // class SynchronizationAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * SynchronizationOption.cs - Implementation of the
 *                      "System.EnterpriseServices.SynchronizationOption" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

public enum SynchronizationOption
{
        Disabled                = 0,
        NotSupported    = 1,
        Supported               = 2,
        Required                = 3,
        RequiresNew             = 4

}; // enum SynchronizationOption

}; // namespace System.EnterpriseServices

--- NEW FILE ---
<?xml version="1.0"?>
<project name="pnetlib System.EnterpriseServices" default="all">
        <target name="all">

                <!-- Build the primary System.EnterpriseServices.dll library -->
                <compile output="System.EnterpriseServices.dll"
                                 target="library"
                                 unsafe="true"
                                 nostdlib="true"
                                 debug="${CONFIG_DEBUG_LINES}"
                                 optimize="true">

                        <sources>
                                <includes name="**/*.cs"/>
                        </sources>

                        <references>
                                <file name="../runtime/mscorlib.dll"/>
                        </references>

                        <arg compiler="cscc" 
value="-fassembly-version=1.0.5000.0"/>
                        <arg compiler="cscc" value="-fassembly-key=ms"/>
                        <arg compiler="cscc" value="-Wno-empty-input"/>
                        <!-- arg compiler="cscc" value="-fminimize-parameters"/ 
-->
                        <arg compiler="cscc" value="-flatin1-charset"/>
                        <arg compiler="csc" value="/nowarn:626"/>
                        <arg compiler="csc" value="/nowarn:649"/>
                        <arg compiler="csc" value="/nowarn:168"/>
                        <arg compiler="csc" value="/nowarn:67"/>
                        <arg compiler="csc" value="/nowarn:169"/>
                        <arg compiler="csc" value="/nowarn:679"/>
                </compile>

        </target>
</project>

--- NEW FILE ---
/*
 * ThreadPoolOption.cs - Implementation of the
 *                      "System.EnterpriseServices.ThreadPoolOption" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
public enum ThreadPoolOption
{
        None    = 0,
        Inherit = 1,
        STA             = 2,
        MTA             = 3

}; // enum ThreadPoolOption

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * TransactionAttribute.cs - Implementation of the
 *                      "System.EnterpriseServices.TransactionAttribute" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[AttributeUsage(AttributeTargets.Class, Inherited=true)]
public sealed class TransactionAttribute : Attribute
{
        // Internal state.
        private TransactionOption val;
        private TransactionIsolationLevel isolation;
        private int timeout;

        // Constructors.
        public TransactionAttribute()
                        : this(TransactionOption.Required) {}
        public TransactionAttribute(TransactionOption val)
                        {
                                this.val = val;
                                this.isolation = 
TransactionIsolationLevel.Serializable;
                                this.timeout = -1;
                        }

        // Get or set this attribute's values.
        public TransactionIsolationLevel Isolation
                        {
                                get
                                {
                                        return isolation;
                                }
                                set
                                {
                                        isolation = value;
                                }
                        }
        public int Timeout
                        {
                                get
                                {
                                        return timeout;
                                }
                                set
                                {
                                        timeout = value;
                                }
                        }
        public TransactionOption Value
                        {
                                get
                                {
                                        return val;
                                }
                        }

}; // class TransactionAttribute

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * TransactionIsolationLevel.cs - Implementation of the
 *                      "System.EnterpriseServices.TransactionIsolationLevel" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

public enum TransactionIsolationLevel
{
        Any                                     = 0,
        ReadUncommitted         = 1,
        ReadCommitted           = 2,
        RepeatableRead          = 3,
        Serializable            = 4

}; // enum TransactionIsolationLevel

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * TransactionOption.cs - Implementation of the
 *                      "System.EnterpriseServices.TransactionOption" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

public enum TransactionOption
{
        Disabled                = 0,
        NotSupported    = 1,
        Supported               = 2,
        Required                = 3,
        RequiresNew             = 4

}; // enum TransactionOption

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * TransactionStatus.cs - Implementation of the
 *                      "System.EnterpriseServices.TransactionStatus" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
public enum TransactionStatus
{
        Commited                = 0,
        LocallyOk               = 1,
        NoTransaction   = 2,
        Aborting                = 3,
        Aborted                 = 4

}; // enum TransactionStatus

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * TransactionVote.cs - Implementation of the
 *                      "System.EnterpriseServices.TransactionVote" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
public enum TransactionVote
{
        Commit  = 0,
        Abort   = 1

}; // enum TransactionVote

}; // namespace System.EnterpriseServices

--- NEW FILE ---
/*
 * XACTTRANSINFO.cs - Implementation of the
 *                      "System.EnterpriseServices.XACTTRANSINFO" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.EnterpriseServices
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(false)]
#endif
[StructLayout(LayoutKind.Sequential)]
public struct XACTTRANSINFO
{
        public BOID uow;
        public int isoLevel;
        public int isoFlags;
        public int grfTCSupported;
        public int grfRMSupported;
        public int grfTCSupportedRetaining;
        public int grfRMSupportedRetaining;

}; // struct XACTTRANSINFO

}; // namespace System.EnterpriseServices





reply via email to

[Prev in Thread] Current Thread [Next in Thread]