ChenGen

          一切歸零,重新開始
          隨筆 - 13, 文章 - 10, 評論 - 21, 引用 - 0
          數據加載中……

          使用Sandstorm

          /**
          ?*?
          ?
          */

          package ?p2hp.datapool.main;

          import ?p2hp.datapool.handler.ReceiveStageHandler;
          import ?p2hp.datapool.message.HelloWorldMsg;
          import ?winseda.sandStorm.api.EventHandlerIF;
          import ?winseda.sandStorm.api.ManagerIF;
          import ?winseda.sandStorm.api.SinkIF;
          import ?winseda.sandStorm.api.StageIF;
          import ?winseda.sandStorm.main.Sandstorm;

          /**
          ?*?
          @author ?chengen
          ?
          */

          public ? class ?SandStormTest? {

          ????
          /**
          ?????*?
          @param ?args
          ?????
          */

          ????
          public ? static ? void ?main(String[]?args)? {

          ????????
          try ? {
          ????????????
          // ?create?an?instance?of?SandStorm
          ????????????Sandstorm?ss? = ? new ?Sandstorm();
          ????????????
          // ?get?the?managerIF?through?which?we?create?stages
          ????????????ManagerIF?mgr? = ?ss.getManager();
          ????????????
          // ?create?an?instance?of?a?EventHandlerIF?which?can?then?receive?and
          ????????????
          // ?process?messages
          ????????????EventHandlerIF?handler1? = ? new ?ReceiveStageHandler();
          ????????????
          // ?create?a?stage?use?ManagerIF
          ????????????mgr.createStage( " receivestage " ,?handler1,? null );
          ????????????
          // ?get?the?StageIF?of?the?stage?we?created?just?now?whose?name?is
          ????????????
          // ?'receiverstage'
          ????????????StageIF?receiveStage? = ?mgr.getStage( " receivestage " );
          ????????????
          // ?get?the?SinkIF?of?the?stage?we?created?just?now?and?then?we?use
          ????????????
          // ?this?SinkIF?to?send?messages?to?the?stage
          ????????????SinkIF?nextStageSink? = ?receiveStage.getSink();
          ????????????
          // ?send?1000?messages?to?the?stage?'receivestage'
          ???????????? for ?( int ?i? = ? 0 ;?i? < ? 1000 ;?i ++ )? {
          ????????????????
          // ?create?an?instance?of?the?message
          ????????????????HelloWorldMsg?msg? = ? new ?HelloWorldMsg( " message " ? + ?i);
          ????????????????System.out.println(
          " #send?message# " ? + ?msg);
          ????????????????Thread.sleep(
          500 );
          ????????????????
          // ?send?the?message?through?the?SinkIF
          ????????????????nextStageSink.enqueue(msg);
          ????????????}


          ????????}
          ? catch ?(Exception?e)? {
          ????????????
          // ?TODO:?handle?exception
          ????????????e.printStackTrace();
          ????????}

          ????}

          }


          /**
          ?*?
          ?
          */

          package ?p2hp.datapool.handler;

          import ?p2hp.datapool.message.HelloWorldMsg;
          import ?winseda.sandStorm.api.ConfigDataIF;
          import ?winseda.sandStorm.api.EventHandlerException;
          import ?winseda.sandStorm.api.EventHandlerIF;
          import ?winseda.sandStorm.api.QueueElementIF;
          import ?winseda.sandStorm.api.SinkIF;
          import ?winseda.sandStorm.api.StagesInitializedSignal;

          /**
          ?*?
          @author ?chengen
          ?
          */

          public ? class ?ReceiveStageHandler? implements ?EventHandlerIF? {

          ????
          private ?ConfigDataIF?config;

          ????
          /*
          ?????*?(non-Javadoc)
          ?????*?
          ?????*?@see?winseda.sandStorm.api.EventHandlerIF#destroy()
          ?????
          */

          ????
          public ? void ?destroy()? throws ?Exception? {
          ????????
          // ?TODO?Auto-generated?method?stub

          ????}


          ????
          /*
          ?????*?(non-Javadoc)
          ?????*?
          ?????*?@see?winseda.sandStorm.api.EventHandlerIF#handleEvent(winseda.sandStorm.api.QueueElementIF)
          ?????
          */

          ????
          public ? void ?handleEvent(QueueElementIF?elem)? throws ?EventHandlerException? {
          ????????
          // ?TODO?Auto-generated?method?stub
          ???????? if ?(elem? instanceof ?HelloWorldMsg)? {
          ????????????System.out.println(
          this .getClass()? + ? " ::get?message:: " ? + ?elem);
          ????????}

          ????}


          ????
          /*
          ?????*?(non-Javadoc)
          ?????*?
          ?????*?@see?winseda.sandStorm.api.EventHandlerIF#handleEvents(winseda.sandStorm.api.QueueElementIF[])
          ?????
          */

          ????
          public ? void ?handleEvents(QueueElementIF[]?elemarr)
          ????????????
          throws ?EventHandlerException? {
          ????????
          // ?TODO?Auto-generated?method?stub
          ???????? for ?( int ?i? = ? 0 ;?i? < ?elemarr.length;?i ++ )? {
          ????????????handleEvent(elemarr[i]);
          ????????}

          ????}


          ????
          /*
          ?????*?(non-Javadoc)
          ?????*?
          ?????*?@see?winseda.sandStorm.api.EventHandlerIF#init(winseda.sandStorm.api.ConfigDataIF)
          ?????
          */

          ????
          public ? void ?init(ConfigDataIF?config)? throws ?Exception? {
          ????????
          // ?TODO?Auto-generated?method?stub
          ???????? this .config? = ?config;
          ????????System.out.println(
          " ######receive?stage?initialized###### " );
          ????}


          }

          posted on 2006-10-12 11:28 ChenGen 閱讀(451) 評論(0)  編輯  收藏 所屬分類: SEDA


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 慈利县| 双辽市| 玉门市| 新乐市| 蓬莱市| 祥云县| 绥阳县| 迁安市| 白朗县| 汤阴县| 绵竹市| 江陵县| 南丰县| 广德县| 刚察县| 怀化市| 依安县| 鹤庆县| 建平县| 喜德县| 西盟| 闻喜县| 五常市| 凌云县| 合作市| 托克托县| 郁南县| 息烽县| 聂荣县| 日土县| 越西县| 伊吾县| 达日县| 福海县| 江达县| 莱阳市| 平遥县| 万盛区| 弋阳县| 探索| 江达县|