/*
 * JBoss, Home of Professional Open Source
 * Copyright 2007, Red Hat Middleware LLC, and individual contributors
 * as indicated by the @author tags.
 * See the copyright.txt in the distribution for a
 * full listing of individual contributors.
 * This copyrighted material is made available to anyone wishing to use,
 * modify, copy, or redistribute it subject to the terms and conditions
 * of the GNU Lesser General Public License, v. 2.1.
 * This program is distributed in the hope that it will be useful, but WITHOUT A
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License,
 * v.2.1 along with this distribution; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 * MA  02110-1301, USA.
 *
 * (C) 2005-2006,
 * @author JBoss Inc.
 */
//
// Copyright (C) 2000,
//
// Arjuna Solutions, Ltd.,
// Newcastle upon Tyne,
// Tyne and Wear,
// UK.
//
// $Id: CrashRecovery11.idl,v 1.3 2004/03/19 15:43:51 jcoleman Exp $
//




#include <CosTransactions.idl>


#pragma prefix "qa.jbossts.jboss.org"




module CrashRecovery11
{
    enum CrashBehavior
    {
        CrashBehaviorCrashInPrepare,
        CrashBehaviorCrashInCommit,
        CrashBehaviorCrashInRollback,
        CrashBehaviorCrashInCommitOnePhase,
        CrashBehaviorCrashInForget,
        CrashBehaviorNoCrash
    };

    struct ResourceBehavior
    {
        CrashBehavior crash_behavior;
    };

    exception InvocationException {};

    interface BeforeCrashService : CosTransactions::TransactionalObject
    {
        void set(in  long value)
            raises (InvocationException);

        void get(out long value)
            raises (InvocationException);

        void setStartCrashAbstractRecordAction(in CrashBehavior action)
            raises (InvocationException);

        void setEndCrashAbstractRecordAction(in CrashBehavior action)
            raises (InvocationException);

        boolean is_correct();

    };

    interface AfterCrashService
    {
        void get(out long value)
            raises (InvocationException);
    };

};



