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


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


          網站導航:
           
          主站蜘蛛池模板: 辛集市| 双桥区| 宁城县| 芜湖市| 大埔县| 琼中| 庆元县| 尉氏县| 宣城市| 福清市| 大埔区| 咸阳市| 那曲县| 崇仁县| 娄烦县| 湘乡市| 泊头市| 南川市| 共和县| 永泰县| 邵东县| 门头沟区| 江安县| 高陵县| 金山区| 东乡族自治县| 成都市| 科技| 克拉玛依市| 安徽省| 兴业县| 红原县| 盐池县| 嘉善县| 崇明县| 保亭| 溆浦县| 全州县| 鹤壁市| 阿巴嘎旗| 贺兰县|