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

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

?? tintinsession.cpp

?? Windows上的MUD客戶端程序
?? CPP
字號:
/*----------------------------------------------------------------------------
                        _                              _ _       
        /\             | |                            | (_)      
       /  \   _ __   __| |_ __ ___  _ __ ___   ___  __| |_  __ _ 
      / /\ \ | '_ \ / _` | '__/ _ \| '_ ` _ \ / _ \/ _` | |/ _` |
     / ____ \| | | | (_| | | | (_) | | | | | |  __/ (_| | | (_| |
    /_/    \_\_| |_|\__,_|_|  \___/|_| |_| |_|\___|\__,_|_|\__,_|

    The contents of this file are subject to the Andromedia Public
	License Version 1.0 (the "License"); you may not use this file
	except in compliance with the License. You may obtain a copy of
	the License at http://www.andromedia.com/APL/

    Software distributed under the License is distributed on an
	"AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
	implied. See the License for the specific language governing
	rights and limitations under the License.

    The Original Code is Pueblo client code, released November 4, 1998.

    The Initial Developer of the Original Code is Andromedia Incorporated.
	Portions created by Andromedia are Copyright (C) 1998 Andromedia
	Incorporated.  All Rights Reserved.

	Andromedia Incorporated                         415.365.6700
	818 Mission Street - 2nd Floor                  415.365.6701 fax
	San Francisco, CA 94103

    Contributor(s):
	--------------------------------------------------------------------------
	   Chaco team:  Dan Greening, Glenn Crocker, Jim Doubek,
	                Coyote Lussier, Pritham Shetty.

					Wrote and designed original codebase.

------------------------------------------------------------------------------

	TinTin class miscellaneous methods.  Originally modified from TinTin++,
	(T)he K(I)cki(N) (T)ickin D(I)kumud Clie(N)t, originally coded by
	Peter Unold 1992.

----------------------------------------------------------------------------*/

// $Header: /home/cvs/chaco/modules/client/msw/ChWorld/TinTinSession.cpp,v 2.6 1996/09/12 19:10:21 pritham Exp $

#include "headers.h"
#if !defined(CH_PUEBLO_PLUGIN)
#include "resource.h"
#else
#include "vwrres.h"
#endif

#include <ChCore.h>

#include "TinTin.h"
#include "World.h"


/*----------------------------------------------------------------------------
	ChFrameListVisitor class
----------------------------------------------------------------------------*/

class ChFrameListVisitor: public ChFrameVisitor
{
	public:
		ChFrameListVisitor( const string& strMatch = "" ) :
					m_strMatch( strMatch ) {}
		virtual ~ChFrameListVisitor() {}

		inline const string& GetOutput() const { return m_strOutput; }

		virtual bool Visit( const string& strFrameName, ChCore* pCore );

	protected:
		string			m_strMatch;
		string			m_strOutput;
};


bool ChFrameListVisitor::Visit( const string& strFrameName,
									ChCore* pCore )
{
	ChWorldMainInfo*	pWorldMainInfo;

	if (pWorldMainInfo =
			(ChWorldMainInfo*)pCore->GetMainInfo( CH_MODULE_WORLD ))
	{
		if (m_strMatch.IsEmpty() || ::Match( m_strMatch, strFrameName ))
		{
			string		strTempName( strFrameName );
			string		strLine;
			string		strFormat;
			string		strConnection;

			if (pWorldMainInfo->IsConnected())
			{
				ChWorldInfo*	pWorldInfo = pWorldMainInfo->GetWorldInfo();

				ASSERT( 0 != pWorldInfo );
				strConnection.Format( "%s %d",
										(const char*)pWorldInfo->GetHost(),
										(int)pWorldInfo->GetPort() );
			}
			else
			{
				strConnection = "<not connected>";
			}

			if (strTempName.IsEmpty())
			{
				LOADSTRING( IDS_TINTIN_SESSION_LIST_NAMELESS, strTempName );
			}

			LOADSTRING( IDS_TINTIN_SESSION_LIST_ITEM, strFormat );
			strLine.Format( strFormat, (const char*)strTempName.Left( 20 ),
											(const char*)strConnection );
			m_strOutput += strLine + "\n";
		}
	}

	return true;
}


/*----------------------------------------------------------------------------
	ChFrameListVisitor class
----------------------------------------------------------------------------*/

class ChDoAllVisitor: public ChFrameVisitor
{
	public:
		ChDoAllVisitor( const string& strCommand ) :
					m_strCommand( strCommand ),
					m_iCount( 0 ) {}

		inline const string& GetCommand() const { return m_strCommand; }
		inline int GetCount() const { return m_iCount; }

		virtual bool Visit( const string& strFrameName, ChCore* pCore );

	protected:
		string			m_strCommand;
		int				m_iCount;
};


bool ChDoAllVisitor::Visit( const string& strFrameName,
								ChCore* pCore )
{
	ChWorldMainInfo*	pWorldMainInfo;

	if (pWorldMainInfo =
			(ChWorldMainInfo*)pCore->GetMainInfo( CH_MODULE_WORLD ))
	{
		if (pWorldMainInfo->IsConnected())
		{
			pWorldMainInfo->GetTinTin()->ParseInput( GetCommand() );
			m_iCount++;
		}
	}

	return true;
}


/*----------------------------------------------------------------------------
	TinTin class
----------------------------------------------------------------------------*/

void TinTin::DoAll( const string& strArgs )
{
	ChDoAllVisitor	doAllVisitor( strArgs );

	GetMainInfo()->GetCore()->EnumerateFrames( doAllVisitor );

	if (0 == doAllVisitor.GetCount())
	{
		string		strMessage;

		LOADSTRING( IDS_TINTIN_ALL_NO_SESSIONS, strMessage );
		ErrMessage( strMessage );
	}
}


void TinTin::DoName( const string& strArgs )
{
	const char*		pstrArgs = strArgs;
	string			strName;
	string			strFormat;
	string			strMessage;
	bool			boolSuccess = false;

	GetArgInBraces( pstrArgs, strName, true );

	if (strName.IsEmpty())
	{
		LOADSTRING( IDS_TINTIN_NAME_PARAM_ERR, strMessage );
		ErrMessage( strMessage );
	}
	else if (GetMainInfo()->GetCore()->GetFrameName() == strName)
	{
		boolSuccess = true;
	}
	else if (GetMainInfo()->GetCore()->GetMainInfo( CH_MODULE_WORLD, strName ))
	{
		LOADSTRING( IDS_TINTIN_SESSION_NAME_IN_USE, strFormat );
		strMessage.Format( strFormat, (const char*)strName );
		ErrMessage( strMessage );
	}
	else
	{
		GetMainInfo()->GetCore()->SetFrameName( strName );
		boolSuccess = true;
	}

	if (boolSuccess)
	{
		LOADSTRING( IDS_TINTIN_NAME_OK, strFormat );
		strMessage.Format( strFormat, (const char*)strName );
		Message( strMessage );
	}
}


void TinTin::DoSession( const string& strArgs )
{
	const char*		pstrArgs = strArgs;
	string			strLeft;
	string			strRight;
	string			strMessage;

	pstrArgs = GetArgInBraces( pstrArgs, strLeft, false );
	pstrArgs = GetArgInBraces( pstrArgs, strRight, true );

	if (strRight.IsEmpty())
	{
		ChFrameListVisitor	listVisitor( strLeft );

		GetMainInfo()->GetCore()->EnumerateFrames( listVisitor );

		if (listVisitor.GetOutput().IsEmpty())
		{
			LOADSTRING( IDS_TINTIN_SESSION_LIST_EMPTY, strMessage );
			Message( strMessage );
		}
		else
		{
			LOADSTRING( IDS_TINTIN_SESSION_LIST_HDR, strMessage );
			Message( strMessage );
			Message( listVisitor.GetOutput(), true );
		}
	}
	else
	{
		if (GetMainInfo()->GetCore()->GetMainInfo( CH_MODULE_WORLD, strLeft ))
		{
			string		strFormat;

			LOADSTRING( IDS_TINTIN_SESSION_NAME_IN_USE, strFormat );
			strMessage.Format( strFormat, (const char*)strLeft );
			Message( strMessage );
		}
		else
		{
			CreateSession( strLeft, strRight );
		}
	}
}


void TinTin::CreateSession( const string& strLabel,
							const string& strConnInfo )
{
	const char*	pstrConn;
	string		strTemp;

	pstrConn = SpaceOut( strConnInfo );
	strTemp = pstrConn;
	if (!strTemp.IsEmpty())
	{
		string	strHost;

		pstrConn = strTemp;
		while (*pstrConn && !isspace( *pstrConn ))
		{
			pstrConn++;
		}

		strHost = strTemp.Left( pstrConn - (const char*)strTemp );
		strTemp = strTemp.Mid( strHost.GetLength() );

		if (strTemp.GetLength())
		{
			pstrConn = SpaceOut( strTemp );

			if (isdigit( *pstrConn ))
			{
				int		iPort;
				string	strCommandLine;

				iPort = atoi( pstrConn );

				strCommandLine.Format( "%s %d", (const char*)strHost, iPort );

				GetMainInfo()->GetCore()->NewFrameWnd( strCommandLine,
														strLabel );
			}
			else
			{
				string		strMessage;

				LOADSTRING( IDS_TINTIN_SESSION_PORT_ERR, strMessage );
				Message( strMessage );
			}
		}
		else
		{
			string		strMessage;

			LOADSTRING( IDS_TINTIN_SESSION_PARAM_ERR, strMessage );
			Message( strMessage );
		}
	}
	else
	{
		string		strMessage;

		LOADSTRING( IDS_TINTIN_SESSION_PARAM_ERR, strMessage );
		Message( strMessage );
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线一区二区综合免费视频| 日韩av一区二区在线影视| 91精品国产美女浴室洗澡无遮挡| 99免费精品视频| 夫妻av一区二区| 不卡av在线免费观看| 成人网在线免费视频| 成人精品高清在线| 波多野结衣精品在线| 99r国产精品| 欧美在线综合视频| 欧美网站大全在线观看| 欧美亚洲综合一区| 91精品国产一区二区三区蜜臀| 制服丝袜中文字幕亚洲| 精品成人私密视频| 国产女主播一区| 亚洲欧洲中文日韩久久av乱码| 亚洲在线视频免费观看| 视频一区视频二区中文字幕| 日韩黄色免费电影| 国产精品一二一区| 色狠狠一区二区| 欧美伦理视频网站| 久久久国产精华| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲国产毛片aaaaa无费看| 日本美女一区二区三区视频| 国产精品影视网| 色婷婷久久久亚洲一区二区三区 | 国产不卡一区视频| 国产成a人亚洲| 欧美日韩视频在线第一区 | 亚洲人成伊人成综合网小说| 亚洲一区二区三区在线看 | 久久精品日产第一区二区三区高清版 | 日韩一级黄色片| 国产日韩av一区二区| 亚洲一区二区三区中文字幕| 国产一区二区三区蝌蚪| 在线亚洲免费视频| 国产日韩影视精品| 亚洲电影欧美电影有声小说| 国产毛片精品一区| 在线视频国产一区| 久久久久久久久久美女| 日韩精品一级二级| 91猫先生在线| 中文字幕va一区二区三区| 蜜桃精品视频在线| 91福利小视频| 久久看人人爽人人| 免费看日韩a级影片| 色欧美乱欧美15图片| 久久久久国产成人精品亚洲午夜| 亚洲精品久久7777| 东方欧美亚洲色图在线| 欧美大片拔萝卜| 免费成人av在线播放| 欧美日韩小视频| 亚洲欧洲综合另类在线| 成人黄色电影在线| 精品国产乱码久久久久久免费| 一区二区三区四区视频精品免费| 国产成人欧美日韩在线电影| 日韩精品中文字幕在线一区| 午夜精品久久久久久不卡8050| 91视频xxxx| 亚洲天堂av一区| av网站免费线看精品| 2023国产精品| 国产精品中文字幕一区二区三区| 精品日韩欧美在线| 精品在线免费视频| 欧美精品九九99久久| 一区二区三区成人| 在线免费一区三区| 一区二区三区在线视频免费| 99免费精品视频| 亚洲人成小说网站色在线| www.日韩av| 一区二区三区日韩欧美| 欧美自拍偷拍午夜视频| 五月激情丁香一区二区三区| 欧美欧美午夜aⅴ在线观看| 亚洲国产一区二区a毛片| 欧美日韩亚洲丝袜制服| 日韩avvvv在线播放| 欧美一区二区三区在线看| 秋霞电影一区二区| 久久蜜桃av一区精品变态类天堂 | 国模大尺度一区二区三区| 26uuu亚洲综合色欧美| 国产成人精品免费视频网站| 国产精品视频你懂的| 在线观看免费亚洲| 午夜影院在线观看欧美| 欧美v日韩v国产v| 国产成人av自拍| 亚洲午夜一二三区视频| 日韩精品一区二区三区四区视频 | 最近中文字幕一区二区三区| 色狠狠色噜噜噜综合网| 奇米综合一区二区三区精品视频| 精品日产卡一卡二卡麻豆| a亚洲天堂av| 日日摸夜夜添夜夜添精品视频| 欧美精品一区二| 色偷偷成人一区二区三区91| 日韩成人免费在线| 国产精品少妇自拍| 欧美群妇大交群的观看方式| 国产一区91精品张津瑜| 亚洲欧美精品午睡沙发| 欧美变态tickling挠脚心| 91浏览器打开| 国产在线视频一区二区| 亚洲综合色噜噜狠狠| 久久五月婷婷丁香社区| 欧美色图免费看| 成人美女视频在线观看| 日韩精品久久久久久| 国产精品久久久久久久岛一牛影视| 制服丝袜av成人在线看| av亚洲精华国产精华| 狠狠色丁香婷综合久久| 亚洲午夜精品在线| 国产精品久久久久久亚洲伦| 欧美成人bangbros| 欧美高清激情brazzers| 99riav久久精品riav| 国产福利91精品| 久久国产精品99久久人人澡| 亚洲一区在线观看视频| 欧美国产日韩一二三区| 欧美精品一区二区久久婷婷| 精品污污网站免费看| 91麻豆国产福利在线观看| 国产成人在线免费观看| 蜜桃视频一区二区三区在线观看| 亚洲国产精品一区二区www在线 | 一区二区三区四区在线播放| 亚洲国产精品高清| 久久久午夜精品理论片中文字幕| 欧美一区二区视频网站| 6080午夜不卡| 欧美日韩免费一区二区三区| 91浏览器在线视频| 91蜜桃在线免费视频| 99麻豆久久久国产精品免费优播| 国产成人aaa| 成人sese在线| 69久久99精品久久久久婷婷| 制服丝袜激情欧洲亚洲| 日韩一区二区三| 精品88久久久久88久久久| 精品成a人在线观看| 久久综合色综合88| 国产精品午夜电影| 亚洲三级在线播放| 亚洲影视资源网| 五月激情六月综合| 美女视频黄 久久| 国产一区二区三区观看| 国产福利一区二区三区视频| 成人激情午夜影院| 91免费视频网| 91精品国产一区二区| 精品国产乱码久久久久久免费| 久久久天堂av| 亚洲欧洲日韩av| 亚洲成在人线免费| 毛片av一区二区三区| 国产传媒一区在线| 97久久精品人人爽人人爽蜜臀| 在线看日韩精品电影| 欧美一区二区在线免费播放| 精品电影一区二区三区 | 5858s免费视频成人| 欧美一区永久视频免费观看| 精品剧情在线观看| 亚洲欧洲精品一区二区三区| 亚洲伊人伊色伊影伊综合网| 蜜桃视频一区二区三区在线观看| 国产成人精品一区二区三区四区| 91激情五月电影| 欧美另类高清zo欧美| 久久人人爽人人爽| 亚洲欧美日韩在线播放| 日本欧美一区二区在线观看| 国产精品18久久久久久久久 | 欧美一级精品在线| 国产精品嫩草99a| 日韩电影在线免费| 91精品久久久久久久91蜜桃| 日本一区二区不卡视频| 日韩电影免费在线看| www.日韩大片| 久久婷婷一区二区三区| 亚洲福利一区二区三区|