亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sobczak.txt

?? 用C++編的小程序
?? TXT
字號:
YAMI: A Simple ORB Library       
by Maciej Sobczak     


// the passive servant interface
namespace YAMI
{
    class PassiveObject
    {
    public:
        virtual void call(IncomingMsg &msg) = 0;
    };
    // ...
}


Listing 2:

// a simple YAMI server
#include "yami++.h"
using namespace YAMI;
#include <iostream>
#include <string>
using namespace std;
// the port of the server's agent
const int serverport = 12340;
// the name of the servant, as seen by clients
const string objectname = "calculator";
// a class implementing the servant
class Calculator : public PassiveObject
{
public:
    void call(IncomingMsg &incoming)
    {
        // get the parameters
        auto_ptr<ParamSet> incparamset(
            incoming.getParameters());
        int a = incparamset->getInt(0);
        int b = incparamset->getInt(1);
        int result = 0;
        // get the message's name
        string messagename(incoming.getMsgName());
        if (messagename == "add")
            result = a + b;
        else if (messagename == "subtract")
            result = a - b;
        else if (messagename == "multiply")
            result = a * b;
        else if (messagename == "divide" && b != 0)
            result = a / b;
        else
        {
            // "throw an exception"
            incoming.reject();
            return;
        }
        ParamSet retparamset(1);
        retparamset.setInt(0, result);
        // send new set of parameters as a reply
        incoming.reply(retparamset);
    }
};
int main()
{
    cout << "starting the server" << endl;
    try
    {
        netInitialize();
        {
        Agent agent(serverport);
        Calculator calc_server;
        // register the servant so that the agent accepts and stores messages
        // addressed to this object
        agent.objectRegister(objectname,
            Agent::ePassiveMultiThreaded, &calc_server);
        cout << "waiting for invocations..."
            << endl;
        sleep(0);
        }
        netCleanup();
    }
    catch (const exception &e)
    {
        cout << e.what() << endl;
    }
}


Listing 3:

// a simple YAMI client
#include "yami++.h"
using namespace YAMI;
#include <iostream>
#include <string>

using namespace std;
const string serverhost = "127.0.0.1";
const int    serverport = 12340;
const int    clientport = 12341;
// arbitrary name, used locally to distinguish between different domains
const string domainname  = "someDomain";
// name of the logical remote object
const string objectname  = "calculator";
int main()
{
    try
    {
        netInitialize();
        {
        Agent agent(clientport);
        // register the remote domain
        agent.domainRegister(domainname, serverhost, serverport, 2);
        string messagename = "multiply";
        ParamSet paramset(2);
        paramset.setInt(0, 5);
        paramset.setInt(1, 6);
        // send the message
        auto_ptr<Message> message(
            agent.send(domainname, objectname, messagename, paramset));
        message->wait();
        Message::eStatus status = message->getStatus();
        if (status == Message::eReplied)
        {
            // read the response
            auto_ptr<ParamSet> response(
                message->getResponse());
            int result = response->getInt(0);
            cout << "the result is: " << result << endl;
        }
        else
        {
            cout << "the message was not replied correctly"
                << endl;
        }
        }
        netCleanup();
    }
    catch (const exception &e)
    {
        cout << e.what() << endl;
    }
}

Listing 4:

# a simple YAMI client in Python. this code can be used also in the
# interactive Python console

from YAMI import *

a = Agent(12341)
a.domainRegister('someDomain', '127.0.0.1', 12340, 2)

msg = a.send('someDomain', 'calculator', 'multiply', [5, 6])
msg.wait()

if msg.getStatus() == eReplied:
        results = msg.getResponse()
        print 'the result is:', results[0]
else:
        print 'the message was not replied correctly'


Listing 5:

# a simple YAMI client in Tcl. this code can be used also in the
# interactive Tcl console

package require YAMI
set agent [YAMI::Agent 12341]
$agent domainRegister someDomain 127.0.0.1 12340 2
set message [$agent send someDomain calculator \
    multiply {{5 i} {6 i}}]
$message wait
if {[$message getStatus] == "eReplied"} {
    set results [$message getResponse]
    puts "the result is: [lindex $results 0]"
} else {
    puts "the message was not replied correctly"
}
$message -delete
$agent -delete


Listing 6:

calculator
{
    add < (int a, int b) > (int c).
    subtract < (int a, int b) > (int c).
    multiply < (int a, int b) > (int c).
    divide < (int a, int b) > (int c).
}.


Listing 7:
// a YAMI server built with YDL

#include "yami++.h"
#include "calc_server.h"
using namespace YAMI;
#include <iostream>
#include <string>
using namespace std;
// the port of the server's agent
const int serverport = 12340;
// the name of the servant, as seen by clients
const string objectname = "calculator";
class Calculator : public calculator_Skel
{
private:
    void add(int a, int b, int &c) { c = a + b; }
    void subtract(int a, int b, int &c) { c = a - b; }
    void multiply(int a, int b, int &c) { c = a * b; }
    void divide(int a, int b, int &c)
    {
        if (b == 0)
        {
            // dividing by 0 not allowed
            throw 0;
        }
        c = a / b;
    }
};
int main()
{
    cout << "starting the server" << endl;

    try
    {
        netInitialize();
        {
        Agent agent(serverport);
        Calculator calc_server;
        agent.objectRegister(objectname,
            Agent::ePassiveMultiThreaded, &calc_server);
        cout << "waiting for invocations..."
            << endl;
        sleep(0);
        }
        netCleanup();
    }
    catch (const exception &e)
    {
        cout << e.what() << endl;
    }
}


Listing 8:
// a YAMI client built with YDL
#include "yami++.h"
#include "calc_client.h"

using namespace YAMI;
#include <iostream>
#include <string>
using namespace std;
const string serverhost = "127.0.0.1";
const int    serverport = 12340;
const int    clientport = 12341;
const string domainname  = "someDomain";
const string objectname  = "calculator";
int main()
{
    try
    {
        netInitialize();
        {
        Agent agent(clientport);
        agent.domainRegister(domainname,
            serverhost, serverport, 2);
        // create a local representative of the server        
        calculator calc(agent, domainname, objectname);
        int result;
        // send the message
        calc.multiply(5, 6, result);
        cout << "the result is: " << result << endl;
        }
        netCleanup();
    }
    catch (const exception &e)
    {
        cout << e.what() << endl;
    }
}






5


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美另类videos死尸| 国产精品一区久久久久| 日本韩国一区二区三区| 亚洲精品国产品国语在线app| 成人午夜看片网址| 日韩美女啊v在线免费观看| 欧美伊人久久久久久午夜久久久久| 亚洲女女做受ⅹxx高潮| 欧美色国产精品| 久久精品国产亚洲高清剧情介绍 | 丰满岳乱妇一区二区三区| 久久久不卡网国产精品二区| 成人免费视频app| 一区二区在线观看av| 欧美男人的天堂一二区| 久久精品国产99国产精品| 中文字幕欧美日韩一区| 欧美曰成人黄网| 久久av中文字幕片| 国产精品丝袜在线| 欧美日韩中文字幕一区| 狠狠色丁香婷婷综合久久片| 国产精品国产三级国产普通话三级 | 日韩精品乱码免费| 久久中文字幕电影| 91久久精品国产91性色tv | 日韩午夜在线观看视频| 国产成人av电影| 性欧美大战久久久久久久久| 久久久久国产一区二区三区四区| 日本高清不卡在线观看| 极品少妇xxxx精品少妇| 亚洲香肠在线观看| 国产嫩草影院久久久久| 51精品视频一区二区三区| 国产suv一区二区三区88区| 亚瑟在线精品视频| 亚洲国产精品精华液2区45| 欧美日韩二区三区| 91视频免费看| 国产毛片一区二区| 日韩中文字幕一区二区三区| 国产精品久久久久久亚洲毛片| 91精品国产高清一区二区三区蜜臀| 国产黄色精品网站| 精品一区二区三区在线观看 | 亚洲丝袜制服诱惑| 国产午夜精品一区二区| 欧美一区二区三区在线观看| 色呦呦一区二区三区| 国产91清纯白嫩初高中在线观看 | 在线亚洲免费视频| 成人午夜视频福利| 国产精品91一区二区| 美国精品在线观看| 日韩高清一级片| 亚洲一区二区在线播放相泽| 国产精品人成在线观看免费 | 另类专区欧美蜜桃臀第一页| 亚洲国产成人高清精品| 亚洲色图20p| 国产精品国产自产拍高清av王其| 国产亚洲女人久久久久毛片| 日韩一区二区三| 91精品国产一区二区三区香蕉| 日本精品一级二级| 色女孩综合影院| 色婷婷av一区二区三区gif| 成人精品电影在线观看| 国产999精品久久久久久绿帽| 国产一区二区三区免费观看| 精久久久久久久久久久| 久久不见久久见中文字幕免费| 日韩电影在线观看网站| 日韩精品成人一区二区在线| 亚洲成av人片观看| 亚洲v日本v欧美v久久精品| 亚洲一区二区av电影| 亚洲综合一二区| 亚洲不卡av一区二区三区| 午夜电影一区二区三区| 首页欧美精品中文字幕| 日日夜夜精品视频免费 | 蜜桃视频第一区免费观看| 日本成人在线看| 久久精品国产免费看久久精品| 精品一区二区三区日韩| 国产麻豆精品在线| av福利精品导航| 在线一区二区观看| 欧美日韩视频在线第一区 | 一区二区三区国产| 亚洲va国产天堂va久久en| 日韩国产在线观看| 国产一区三区三区| 99麻豆久久久国产精品免费 | 国产a视频精品免费观看| 99这里只有精品| 精品视频一区 二区 三区| 欧美高清激情brazzers| 久久久五月婷婷| 1024成人网色www| 香蕉加勒比综合久久| 国产在线播精品第三| 91亚洲精品久久久蜜桃| 欧美另类变人与禽xxxxx| 精品国产乱码久久| 亚洲区小说区图片区qvod| 视频一区二区三区在线| 国产精品亚洲人在线观看| 色婷婷综合在线| 91精品国产欧美一区二区18| 国产日韩欧美高清| 亚洲成人自拍网| 国产精品中文有码| 欧美日免费三级在线| 精品91自产拍在线观看一区| 国产精品大尺度| 蜜桃av一区二区在线观看 | 亚洲一区二区三区四区在线| 蜜臀av一区二区在线免费观看| 成人视屏免费看| 日韩亚洲国产中文字幕欧美| 国产精品二三区| 激情综合网av| 欧美人与z0zoxxxx视频| 国产精品免费人成网站| 青娱乐精品在线视频| 99久久精品国产导航| 日韩精品专区在线影院观看| 亚洲理论在线观看| 国产九色精品成人porny | 亚洲色图.com| 国产乱子伦视频一区二区三区| 欧美日韩精品免费| 中文字幕日韩一区二区| 国产麻豆91精品| 91精品久久久久久久久99蜜臂| 国产精品免费视频观看| 国产原创一区二区| 日韩欧美国产电影| 午夜欧美电影在线观看| 91久久线看在观草草青青| 国产精品网站在线| 国内成人免费视频| 欧美一区二区三区思思人| 夜夜嗨av一区二区三区中文字幕 | 精品国产凹凸成av人网站| 亚洲一二三四区| 91丝袜美腿高跟国产极品老师| 久久久久久97三级| 国产乱一区二区| 久久综合狠狠综合久久激情| 美女在线一区二区| 欧美一区二区视频在线观看| 亚洲一区二区三区三| 色婷婷综合久久久久中文一区二区| 国产日韩欧美电影| 粉嫩在线一区二区三区视频| 精品福利一区二区三区| 狠狠久久亚洲欧美| 精品日韩一区二区三区免费视频| 天堂影院一区二区| 91麻豆精品国产91久久久久久久久 | 欧美日韩1区2区| 午夜精品久久久久久久99水蜜桃| 欧美在线一区二区| 亚洲成av人片一区二区梦乃| 色婷婷激情综合| 亚洲国产视频网站| 欧美日韩国产电影| 视频在线观看一区二区三区| 欧美性极品少妇| 天天综合天天综合色| 日韩一卡二卡三卡| 国产一区二区美女诱惑| 久久久国产精品午夜一区ai换脸| 国产精品一区三区| 亚洲欧美综合另类在线卡通| 91视视频在线直接观看在线看网页在线看 | 国产精品美女久久福利网站| 成人午夜电影久久影院| 亚洲欧洲精品成人久久奇米网| 99国内精品久久| 亚洲成人一二三| 精品国偷自产国产一区| 国产激情一区二区三区四区| 国产精品天美传媒沈樵| 91色视频在线| 亚洲成在人线免费| 日韩精品一区二区在线观看| 国产99精品国产| 亚洲国产成人va在线观看天堂| 欧美一级午夜免费电影| 高清不卡在线观看| 亚洲一区二区综合| 精品第一国产综合精品aⅴ| 不卡av在线网| 视频一区视频二区中文字幕| 久久久久久日产精品|