Мегаобучалка Главная | О нас | Обратная связь


Long __fastcall TFormATM::TestConnection()



2020-03-17 205 Обсуждений (0)
Long __fastcall TFormATM::TestConnection() 0.00 из 5.00 0 оценок




{ // проверка соединения

try {

CORBA::ORB_ptr orb = CORBA::ORB_init();

Server_ptr S = Server::_bind(ServerNameDlg->ServerNameEdit->Text.c_str());

return S->Balance();

} catch(CORBA::Exception &e) {

return 0;

}

}

//---------------------------------------------------------------------------

void __fastcall TFormATM::FormCreate(TObject *Sender)

{

ATM = new ATMObject();

}

//---------------------------------------------------------------------------

void __fastcall TFormATM::BitBtn1Click(TObject *Sender)

{ // Администрирование

if (ServerNameDlg->ShowModal() == mrOK) {

ATM->serverName(ServerNameDlg->ServerNameEdit->Text);

}

}

//---------------------------------------------------------------------------

void __fastcall TFormATM::BitBtn2Click(TObject *Sender)

{ // Список клиентов

_update * U = new _update(FormATM);

U->UpdateList();

delete U;

}

//---------------------------------------------------------------------------

void __fastcall TFormATM::BitBtn3Click(TObject *Sender)

{ // Выполнение операции

catchit cbuf ( Memo 1);

ostream CCout (& cbuf ); // Visibroker имеет предопределенный Cout

// Создание интерфейса просмотра ATM -объекта

_ update * Input = new _ update ( FormATM );

// Создание объекта транзакции

xaction _ var X = new xaction ;

// "Заселение" объекта транзакции

X -> UserID = Input -> UserID ();

try {

X->PIN = Input->PIN();

} catch (Exception &e) {

X->PIN = 0;

}

X->amount = Input->Amount();

X->action = Input->ActionType();

X->account = Input->AccountType();

X->balance = 0.00;

X->status = incomplete;

try {

// Старт ORB

CORBA::ORB_ptr orb = CORBA::ORB_init();

Input -> UpdateStatus ("* ORB Инициализирован.");

// Присоединение к ATM -серверу

Server_ptr ATMServer = Server::_bind(ATM->serverName().c_str());

Input -> UpdateStatus ("Присоединение к ATM -серверу завершено.");

Input->UpdateStatus("ATM-сервер открыт.");

// Передача транзакции ATM-серверу

ATMServer->HandleTransaction(X);

if (X->status == complete) {

Input->UpdateMemo("Баланс счёта: $" + CurrToStr(X->balance));

Input->UpdateMemo("Транзакция завершена.");

} else if (X->status == incomplete) {

      Input -> UpdateMemo ("Транзакция не обработана.");

      Input->UpdateMemo("Баланс счёта: $" + CurrToStr(X->balance));

     } else if (X->status == invalid) {

             Input->Clear();

             Input->UpdateMemo("* ID клиента и PIN не найдены!");

            }

}

catch(const CORBA::Exception& e) {

CCout << e._name() << endl;

Input->UpdateStatus("* ATM-сервер отключен!");

}

}

//---------------------------------------------------------------------------

Servername.h

//----------------------------------------------------------------------------

#ifndef servnameH

#define servnameH

//----------------------------------------------------------------------------

#include <vcl\System.hpp>

#include <vcl\Windows.hpp>

#include <vcl\SysUtils.hpp>

#include <vcl\Classes.hpp>

#include <vcl\Graphics.hpp>

#include <vcl\StdCtrls.hpp>

#include <vcl\Forms.hpp>

#include <vcl\Controls.hpp>

#include <vcl\Buttons.hpp>

#include <vcl\ExtCtrls.hpp>

//----------------------------------------------------------------------------

class TServerNameDlg : public TForm

{

__published:       

    TButton *OKBtn;

    TButton *CancelBtn;

    TBevel *Bevel1;

   TLabel *Label1;

   TLabel *ServerNameLabel;

   TEdit *ServerNameEdit;

   TLabel *Label2;

   TButton *ConnectButton;

   TLabel *Label3;

   TLabel *CountLabel;

   TLabel *ResultLabel;

   void __fastcall FormShow(TObject/* */ *Sender);

   void __fastcall ConnectButtonClick(TObject/* */ *Sender);

   void __fastcall OKBtnClick(TObject/* */ *Sender);

private:

public:

    virtual __fastcall TServerNameDlg(TComponent* AOwner);

};

//----------------------------------------------------------------------------

extern PACKAGE TServerNameDlg *ServerNameDlg;

//----------------------------------------------------------------------------

#endif

Servername.cpp

#include <vcl.h>

#pragma hdrstop

 

#include "servname.h"

#include "atmunit.h"

//---------------------------------------------------------------------

#pragma resource "*.dfm"

 

TServerNameDlg *ServerNameDlg;

//---------------------------------------------------------------------

__fastcall TServerNameDlg::TServerNameDlg(TComponent* AOwner)

    : TForm(AOwner)

{

}

//---------------------------------------------------------------------

void __fastcall TServerNameDlg::FormShow(TObject/* */ *Sender)

{

ServerNameLabel->Caption = FormATM->ATM->serverName();

ServerNameEdit->Text = ServerNameLabel->Caption;

ResultLabel->Caption = "";

}

//---------------------------------------------------------------------------

void __fastcall TServerNameDlg::ConnectButtonClick(TObject/* */ *Sender)

{

CountLabel->Caption = String(FormATM->TestConnection());

if (CountLabel->Caption == "0")

ResultLabel->Caption = "* Соединения нет!";

else

ResultLabel->Caption = "Соединение установлено.";

}

//---------------------------------------------------------------------------

void __fastcall TServerNameDlg::OKBtnClick(TObject/* */ *Sender)

{

if (CountLabel->Caption != String("0")) {

FormATM->ATM->serverName(ServerNameEdit->Text);

}

}

//---------------------------------------------------------------------------

 

Рисунок 5.18. Проект и интерфейс ATM-сервера

 

#ifndef atmserverunitH

#define atmserverunitH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include "xaction_s.hh"

#include "banking_s.hh"

#include <Buttons.hpp>

//---------------------------------------------------------------------------

class TForm2 : public TForm

{

__published:  // IDE-managed Components

TLabel *Transactions;

TEdit *Count;

   TEdit *ServerNameEdit;

   TLabel *Label1;

   TBitBtn *BitBtn1;

   TGroupBox *GroupBox2;

   TGroupBox *GroupBox1;

   TBitBtn *BitBtn2;

   TMemo *Memo1;

   TComboBox *BankBox;

void __fastcall FormClose(TObject *Sender, TCloseAction &Action);

   void __fastcall BitBtn1Click(TObject *Sender);

   void __fastcall BitBtn2Click(TObject *Sender);

private: // User declarations

public:            // User declarations

__fastcall TForm2(TComponent* Owner);

void StartServer();

void DownServer();

CORBA::ORB_var orb;

CORBA::BOA_var boa;

CORBA::Object_ptr obj;

String CurrentServerName;

};

//---------------------------------------------------------------------------

extern PACKAGE TForm2 *Form2;

//---------------------------------------------------------------------------

#endif

ATMServerUnit.cpp

#include <vcl.h>

#pragma hdrstop

#include "atmserverunit.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm2 *Form2;

//---------------------------------------------------------------------------

__fastcall TForm2::TForm2(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

char * const * argV;

int argC;

//---------------------------------------------------------------------------

// /////////////////////////////////////

// Implement CORBA object from skeleton class

// /////////////////////////////////////



2020-03-17 205 Обсуждений (0)
Long __fastcall TFormATM::TestConnection() 0.00 из 5.00 0 оценок









Обсуждение в статье: Long __fastcall TFormATM::TestConnection()

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (205)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)