Package demo.dds.dcps.foosample

Source Code of demo.dds.dcps.foosample.FooConsumer

/*
*  DDS (Data Distribution Service) for JacORB
*
* Copyright (C) 2005-2012 Gerald Brose / The JacORB Team.
* allaoui <fouad.allaoui@gmail.com>, Didier Donsez (didier.donsez@ieee.org)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library 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.
*
* Coontact: Ahmed yehdih <ahmed.yehdih@gmail.com>, fouad allaoui
* <fouad.allaoui@gmail.com>, Didier Donsez (didier.donsez@ieee.org)
* Contributor(s)
*
**/
package demo.dds.dcps.foosample;

import org.omg.CORBA.ORB;
import org.omg.CosNaming.NamingContextExt;
import org.omg.CosNaming.NamingContextExtHelper;
import org.omg.dds.DataReader;
import org.omg.dds.DataReaderListener;
import org.omg.dds.DataReaderListenerHelper;
import org.omg.dds.DataReaderQos;
import org.omg.dds.DeadlineQosPolicy;
import org.omg.dds.DestinationOrderQosPolicy;
import org.omg.dds.DestinationOrderQosPolicyKind;
import org.omg.dds.DomainParticipant;
import org.omg.dds.DomainParticipantFactory;
import org.omg.dds.DomainParticipantFactoryHelper;
import org.omg.dds.DomainParticipantQos;
import org.omg.dds.DurabilityQosPolicy;
import org.omg.dds.DurabilityQosPolicyKind;
import org.omg.dds.Duration_t;
import org.omg.dds.EntityFactoryQosPolicy;
import org.omg.dds.GroupDataQosPolicy;
import org.omg.dds.HistoryQosPolicy;
import org.omg.dds.HistoryQosPolicyKind;
import org.omg.dds.LatencyBudgetQosPolicy;
import org.omg.dds.LifespanQosPolicy;
import org.omg.dds.LivelinessQosPolicy;
import org.omg.dds.LivelinessQosPolicyKind;
import org.omg.dds.OwnershipQosPolicy;
import org.omg.dds.OwnershipQosPolicyKind;
import org.omg.dds.LivelinessQosPolicyKind;
import org.omg.dds.PartitionQosPolicy;
import org.omg.dds.ReaderDataLifecycleQosPolicy;
import org.omg.dds.ResourceLimitsQosPolicy;
import org.omg.dds.ReliabilityQosPolicy;
import org.omg.dds.ReliabilityQosPolicyKind;
import org.omg.dds.Subscriber;
import org.omg.dds.SubscriberQos;
import org.omg.dds.TimeBasedFilterQosPolicy;
import org.omg.dds.TopicDataQosPolicy;
import org.omg.dds.TopicQos;
import org.omg.dds.TransportPriorityQosPolicy;
import org.omg.dds.UserDataQosPolicy;
import org.omg.PortableServer.POA;
import org.omg.PortableServer.POAHelper;

/**
* Simple example : Receive a Foo data (Integer)
*/
public class FooConsumer implements Runnable {
   
    private String[] args ;
   
    /**
     * @param args
     */
    public static void main(String[] args) {
       
       FooConsumer fooConsumer = new FooConsumer() ;
       fooConsumer.setArgs(args);
       new Thread(fooConsumer).start();
    }
 
    /**
     *
     */
    public void run() {
        try {
            // create and initialize the ORB           
          
            ORB orb = ORB.init(args,null);
            POA poa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
            poa.the_POAManager().activate();
            DomainParticipantFactory domainparticipantFactory ;
            DomainParticipant domainparticipant ;
            Subscriber suscriber ;
            FooDataReader foodatareader ;
            DataReader datareader ;
            org.omg.dds.Topic  topic ;
            SubscriberQos suscriberqos ;
            DataReaderQos datareaderqos ;     
            org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
            // Use NamingContextExt which is part of the Interoperable
            // Naming Service (INS) specification.
            NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
           
            // resolve the Object Reference in Naming
            String rname = "DomainParticipantFactory";
            byte tab[ ] = new byte [1];
            tab[0] = 1 ;
            UserDataQosPolicy UDQP  = new UserDataQosPolicy(tab);
            DomainParticipantQos DPQOS =
                new DomainParticipantQos(UDQP,new EntityFactoryQosPolicy()) ;
            domainparticipantFactory = DomainParticipantFactoryHelper.narrow(ncRef.resolve_str(rname));

            TopicQos tq =  new TopicQos(
                new TopicDataQosPolicy(tab),
                new DurabilityQosPolicy(
                    DurabilityQosPolicyKind.from_int(0),
                    new Duration_t(0,0)),
                new DeadlineQosPolicy(new Duration_t(0,0)),
                new LatencyBudgetQosPolicy(new Duration_t(0,0)),
                new LivelinessQosPolicy(
                    LivelinessQosPolicyKind.from_int(0),
                    new Duration_t(0,0)),
                new ReliabilityQosPolicy(
                    ReliabilityQosPolicyKind.from_int(0),
                    new Duration_t(0,0)),
                new DestinationOrderQosPolicy(
                    DestinationOrderQosPolicyKind.from_int(0)),
                new HistoryQosPolicy(
                    HistoryQosPolicyKind.from_int(0),0),
                new ResourceLimitsQosPolicy(0,0,0),
                new TransportPriorityQosPolicy(0),
                new LifespanQosPolicy (new Duration_t(0,0)),
                new OwnershipQosPolicy(
                    OwnershipQosPolicyKind.from_int(0)));

            domainparticipant =
                domainparticipantFactory.create_participant(0,DPQOS,null);
            topic =
                domainparticipant.create_topic("foo",
                                               "demo.dds.dcps.foosample.Foo",
                                               tq ,null);           
            String  st  [] = new String [1];
            st[0] = "" ;
            suscriberqos = new SubscriberQos(
                new org.omg.dds.PresentationQosPolicy(
                    org.omg.dds.PresentationQosPolicyAccessScopeKind.from_int(0),
                    false  ,false ),
                new PartitionQosPolicy(st),
                new GroupDataQosPolicy(tab),
                new org.omg.dds.EntityFactoryQosPolicy(false));
      
            suscriber = domainparticipant.create_subscriber(suscriberqos,null);
            datareaderqos = new DataReaderQos(
                new DurabilityQosPolicy(
                    DurabilityQosPolicyKind.from_int(0),
                    new Duration_t(0,0)),
                new DeadlineQosPolicy(new Duration_t(0,0)),
                new LatencyBudgetQosPolicy(new Duration_t(0,0)),
                new LivelinessQosPolicy (
                    LivelinessQosPolicyKind.from_int(0),
                    new Duration_t(0,0)),
                new ReliabilityQosPolicy(
                    ReliabilityQosPolicyKind.from_int(0),
                    new Duration_t(0,0)),
                new DestinationOrderQosPolicy(
                    DestinationOrderQosPolicyKind.from_int(0)),
                new HistoryQosPolicy(
                    HistoryQosPolicyKind.from_int(0),0),
                new ResourceLimitsQosPolicy(0,0,0),
                new UserDataQosPolicy(tab) ,
                new TimeBasedFilterQosPolicy(new Duration_t(0,0)),
                new ReaderDataLifecycleQosPolicy(new Duration_t(0,0)));

            datareader = suscriber. create_datareader(topic,datareaderqos,null);
            foodatareader = FooDataReaderHelper.narrow(datareader);
            DataReaderListener listener =
                DataReaderListenerHelper.narrow(poa.servant_to_reference(new FooDataReaderListenerImpl())) ;

            if (foodatareader == null) {
                System.out.println ("Unable to get FooDataReader reference");
                return;
            }

            foodatareader.set_listener(listener,0)
            orb.run();             
        }
        catch(Exception e){
            System.out.println(" ERROR : " + e);
            e.printStackTrace();
        }
   
    }
   
   
    public void end(){
        Thread.currentThread().destroy();
    }
   
    /**
     * @param args The args to set.
     */
    public void setArgs(String[] args) {
        this.args = args;
    }
}
TOP

Related Classes of demo.dds.dcps.foosample.FooConsumer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.