亚洲欧美第一页_禁久久精品乱码_粉嫩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成人天堂桃色av| 99麻豆久久久国产精品免费| 国产一区二区精品在线观看| av网站免费线看精品| 欧美一区午夜精品| 亚洲美女淫视频| 国内精品第一页| 欧美三级电影网站| 国产精品无圣光一区二区| 日韩在线一区二区三区| 国产91精品精华液一区二区三区 | 日韩电影在线观看电影| 成人中文字幕在线| 欧美mv日韩mv| 香港成人在线视频| 99久精品国产| 国产亚洲一区二区三区| 日韩精品一二区| 在线欧美日韩国产| 国产精品久久久久永久免费观看| 日韩精品三区四区| 欧美在线观看视频在线| 亚洲欧洲av一区二区三区久久| 免费看黄色91| 欧美精品久久天天躁| 亚洲麻豆国产自偷在线| 国产.精品.日韩.另类.中文.在线.播放| 69堂国产成人免费视频| 亚洲国产精品一区二区久久| 99精品桃花视频在线观看| 久久久精品国产99久久精品芒果| 蜜桃免费网站一区二区三区| 欧美日韩国产另类一区| 亚洲三级在线播放| a亚洲天堂av| 国产精品久久久久久久蜜臀| 国产大片一区二区| 精品1区2区在线观看| 六月丁香婷婷色狠狠久久| 日韩三级.com| 男女性色大片免费观看一区二区 | 国产精品一二三四| 欧美xxxx老人做受| 国产一区不卡视频| 国产午夜精品久久久久久久| 国产黑丝在线一区二区三区| 国产欧美一区二区精品性| 国产成人av电影在线观看| 国产日韩成人精品| www.性欧美| 亚洲精品欧美激情| 欧美日韩高清在线| 久久精品999| 国产拍欧美日韩视频二区| 成人国产精品视频| 一区二区三区日韩欧美| 欧美日韩三级视频| 午夜不卡av免费| 精品区一区二区| 国产91精品露脸国语对白| 亚洲欧美日韩国产综合| 欧美日韩美少妇| 久久99国产精品免费| 国产精品理伦片| 欧美日韩精品免费观看视频| 麻豆精品视频在线| 国产精品你懂的在线欣赏| 欧美在线小视频| 国内精品视频一区二区三区八戒| 中文子幕无线码一区tr| 欧美在线观看视频一区二区 | 国产福利91精品| 亚洲色图欧洲色图婷婷| 欧美一级在线观看| 本田岬高潮一区二区三区| 亚洲成a人片在线观看中文| 久久亚洲精品小早川怜子| 99久久久久免费精品国产| 日韩精品1区2区3区| 欧美国产禁国产网站cc| 欧美日韩www| av在线不卡网| 久久99精品国产麻豆婷婷洗澡| 亚洲欧洲日韩av| 2023国产精品自拍| 欧美日韩国产另类不卡| caoporm超碰国产精品| 毛片av中文字幕一区二区| 亚洲欧美区自拍先锋| 久久久另类综合| 欧美一区二区三区视频在线观看 | 国产精品高潮呻吟久久| 91精品婷婷国产综合久久性色| 成人福利视频在线| 乱中年女人伦av一区二区| 亚洲一区二区欧美| 国产精品久久久久婷婷| 久久综合狠狠综合| 91精品欧美综合在线观看最新| 99久久er热在这里只有精品15| 日本中文字幕一区二区视频 | 日本不卡一二三区黄网| 亚洲四区在线观看| 国产肉丝袜一区二区| 欧美一卡二卡三卡四卡| 欧美午夜免费电影| av午夜一区麻豆| 国产精品亚洲成人| 久久精品国产久精国产| 777午夜精品免费视频| 成人激情校园春色| 国产suv精品一区二区883| 无吗不卡中文字幕| 国产精品久久久久久久久免费相片 | 欧美日韩久久不卡| 成人晚上爱看视频| 久热成人在线视频| 亚洲国产精品人人做人人爽| 久久久噜噜噜久久中文字幕色伊伊 | 中文字幕久久午夜不卡| 91精品欧美福利在线观看| 精品中文字幕一区二区| 日本不卡视频在线观看| 亚洲综合免费观看高清完整版| 久久久亚洲高清| 精品久久久三级丝袜| 欧美日韩国产一级二级| 国产一区二区不卡| 成人做爰69片免费看网站| 国产一区二区三区四区在线观看| 日韩高清在线电影| 五月婷婷久久综合| 亚洲一区日韩精品中文字幕| 亚洲欧美日韩国产中文在线| 国产精品久久久久久久岛一牛影视| 欧美精品一区二区久久婷婷| 欧美一级日韩不卡播放免费| 777欧美精品| 777午夜精品免费视频| 欧美成人福利视频| 欧美一级黄色录像| 日韩视频一区二区三区| 精品国产一二三区| 日韩精品一区二区三区老鸭窝| 99久久综合国产精品| 成人白浆超碰人人人人| 不卡视频免费播放| 成人丝袜高跟foot| 色综合激情五月| 色综合久久久久综合| 一本到三区不卡视频| 日本韩国欧美一区二区三区| 国产a视频精品免费观看| 欧美写真视频网站| 欧美一级艳片视频免费观看| 日韩欧美一级二级三级| 精品国产乱码久久久久久免费| 欧美sm美女调教| 久久免费视频色| 国产精品久久久久久久久动漫| 亚洲精品国产a久久久久久| 亚洲图片有声小说| 男女激情视频一区| 国产成人av福利| 一本色道综合亚洲| 欧美久久久久久久久久| 精品国产伦一区二区三区免费| 精品成人a区在线观看| 亚洲欧美中日韩| 日韩精品乱码免费| 国产精品18久久久久久vr | 一区二区三区在线视频播放| 亚洲一区二区三区不卡国产欧美| 亚洲中国最大av网站| 粉嫩av一区二区三区在线播放| 91成人免费电影| 91免费看片在线观看| 日韩午夜激情视频| 3atv在线一区二区三区| 亚洲三级久久久| 蜜桃视频在线一区| 91免费视频网址| 欧美精品一级二级三级| 久久亚洲影视婷婷| 亚洲成人激情自拍| 国产高清精品网站| 在线成人小视频| 国产欧美一区二区三区在线看蜜臀| 亚洲午夜激情av| 色综合久久天天| 精品久久国产老人久久综合| 亚洲特级片在线| 99精品视频一区| 26uuu精品一区二区三区四区在线| 亚洲精品欧美综合四区| 国产一区二区女| 69精品人人人人| 一区二区三区日韩精品视频| 奇米色一区二区| 欧美午夜精品免费|