Recovered from cvs revision 2007-07-20 09:23:00
This commit is contained in:
parent
3a52d14974
commit
f263c4f96f
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: Awk.cpp,v 1.7 2007/07/18 11:12:34 bacon Exp $
|
||||
* $Id: Awk.cpp,v 1.8 2007/07/19 14:35:10 bacon Exp $
|
||||
*/
|
||||
|
||||
#include "stdafx.h"
|
||||
@ -124,8 +124,9 @@ namespace ASE
|
||||
|
||||
int openPipe (Pipe& io)
|
||||
{
|
||||
ASE::Net::Awk::Pipe^ nio = gcnew ASE::Net::Awk::Pipe ();
|
||||
nio->Mode = (ASE::Net::Awk::Pipe::MODE)io.getMode();
|
||||
ASE::Net::Awk::Pipe^ nio = gcnew ASE::Net::Awk::Pipe (
|
||||
gcnew System::String (io.getName ()),
|
||||
(ASE::Net::Awk::Pipe::MODE)io.getMode());
|
||||
|
||||
GCHandle gh = GCHandle::Alloc (nio);
|
||||
io.setHandle (GCHandle::ToIntPtr(gh).ToPointer());
|
||||
@ -171,8 +172,9 @@ namespace ASE
|
||||
|
||||
int openFile (File& io)
|
||||
{
|
||||
ASE::Net::Awk::File^ nio = gcnew ASE::Net::Awk::File ();
|
||||
nio->Mode = (ASE::Net::Awk::File::MODE)io.getMode();
|
||||
ASE::Net::Awk::File^ nio = gcnew ASE::Net::Awk::File (
|
||||
gcnew System::String (io.getName ()),
|
||||
(ASE::Net::Awk::File::MODE)io.getMode());
|
||||
|
||||
GCHandle gh = GCHandle::Alloc (nio);
|
||||
io.setHandle (GCHandle::ToIntPtr(gh).ToPointer());
|
||||
@ -218,8 +220,9 @@ namespace ASE
|
||||
|
||||
int openConsole (Console& io)
|
||||
{
|
||||
ASE::Net::Awk::Console^ nio = gcnew ASE::Net::Awk::Console ();
|
||||
nio->Mode = (ASE::Net::Awk::Console::MODE)io.getMode();
|
||||
ASE::Net::Awk::Console^ nio = gcnew ASE::Net::Awk::Console (
|
||||
gcnew System::String (io.getName ()),
|
||||
(ASE::Net::Awk::Console::MODE)io.getMode());
|
||||
|
||||
GCHandle gh = GCHandle::Alloc (nio);
|
||||
io.setHandle (GCHandle::ToIntPtr(gh).ToPointer());
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: Awk.hpp,v 1.5 2007/07/18 11:12:34 bacon Exp $
|
||||
* $Id: Awk.hpp,v 1.6 2007/07/19 14:35:10 bacon Exp $
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
@ -39,8 +39,9 @@ namespace ASE
|
||||
ref class Extio
|
||||
{
|
||||
public:
|
||||
Extio (): handle (nullptr)
|
||||
Extio (System::String^ name): handle (nullptr)
|
||||
{
|
||||
this->name = name;
|
||||
}
|
||||
|
||||
property Object^ Handle
|
||||
@ -49,8 +50,14 @@ namespace ASE
|
||||
void set (Object^ handle) { this->handle = handle; }
|
||||
}
|
||||
|
||||
property System::String^ Name
|
||||
{
|
||||
System::String^ get () { return this->name; }
|
||||
};
|
||||
|
||||
private:
|
||||
Object^ handle;
|
||||
System::String^ name;
|
||||
};
|
||||
|
||||
ref class Pipe: public Extio
|
||||
@ -65,9 +72,13 @@ namespace ASE
|
||||
property MODE^ Mode
|
||||
{
|
||||
MODE^ get () { return this->mode; }
|
||||
void set (MODE^ mode) { this->mode = mode; }
|
||||
};
|
||||
|
||||
Pipe (System::String^ name, MODE^ mode): Extio (name)
|
||||
{
|
||||
this->mode = mode;
|
||||
}
|
||||
|
||||
private:
|
||||
MODE^ mode;
|
||||
};
|
||||
@ -85,9 +96,13 @@ namespace ASE
|
||||
property MODE^ Mode
|
||||
{
|
||||
MODE^ get () { return this->mode; }
|
||||
void set (MODE^ mode) { this->mode = mode; }
|
||||
};
|
||||
|
||||
File (System::String^ name, MODE^ mode): Extio (name)
|
||||
{
|
||||
this->mode = mode;
|
||||
}
|
||||
|
||||
private:
|
||||
MODE^ mode;
|
||||
};
|
||||
@ -104,9 +119,13 @@ namespace ASE
|
||||
property MODE^ Mode
|
||||
{
|
||||
MODE^ get () { return this->mode; }
|
||||
void set (MODE^ mode) { this->mode = mode; }
|
||||
};
|
||||
|
||||
Console (System::String^ name, MODE^ mode): Extio (name)
|
||||
{
|
||||
this->mode = mode;
|
||||
}
|
||||
|
||||
private:
|
||||
MODE^ mode;
|
||||
};
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: StdAwk.cpp,v 1.1 2007/07/15 16:31:59 bacon Exp $
|
||||
* $Id: StdAwk.cpp,v 1.2 2007/07/19 14:35:10 bacon Exp $
|
||||
*/
|
||||
|
||||
#include "stdafx.h"
|
||||
@ -11,5 +11,106 @@ namespace ASE
|
||||
namespace Net
|
||||
{
|
||||
|
||||
StdAwk::StdAwk ()
|
||||
{
|
||||
OpenFileHandler += gcnew OpenFile (this, &StdAwk::openFile);
|
||||
CloseFileHandler += gcnew CloseFile (this, &StdAwk::closeFile);
|
||||
ReadFileHandler += gcnew ReadFile (this, &StdAwk::readFile);
|
||||
WriteFileHandler += gcnew WriteFile (this, &StdAwk::writeFile);
|
||||
FlushFileHandler += gcnew FlushFile (this, &StdAwk::flushFile);
|
||||
}
|
||||
|
||||
StdAwk::~StdAwk ()
|
||||
{
|
||||
}
|
||||
|
||||
int StdAwk::openFile (File^ file)
|
||||
{
|
||||
System::IO::FileMode mode;
|
||||
System::IO::FileAccess access;
|
||||
System::IO::FileStream^ fs;
|
||||
|
||||
try
|
||||
{
|
||||
if (file->Mode->Equals(File::MODE::READ))
|
||||
{
|
||||
mode = System::IO::FileMode::Open;
|
||||
access = System::IO::FileAccess::Read;
|
||||
|
||||
fs = gcnew System::IO::FileStream (file->Name, mode, access);
|
||||
System::IO::StreamReader^ rd = gcnew System::IO::StreamReader (fs);
|
||||
file->Handle = rd;
|
||||
}
|
||||
else if (file->Mode->Equals(File::MODE::WRITE))
|
||||
{
|
||||
mode = System::IO::FileMode::Create;
|
||||
access = System::IO::FileAccess::Write;
|
||||
|
||||
fs = gcnew System::IO::FileStream (file->Name, mode, access);
|
||||
System::IO::StreamWriter^ wr = gcnew System::IO::StreamWriter (fs);
|
||||
file->Handle = wr;
|
||||
}
|
||||
else /* File::MODE::APPEND */
|
||||
{
|
||||
mode = System::IO::FileMode::Append;
|
||||
access = System::IO::FileAccess::Write;
|
||||
|
||||
fs = gcnew System::IO::FileStream (file->Name, mode, access);
|
||||
System::IO::StreamWriter^ wr = gcnew System::IO::StreamWriter (fs);
|
||||
file->Handle = wr;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
catch (System::Exception^)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
int StdAwk::closeFile (File^ file)
|
||||
{
|
||||
if (file->Mode == File::MODE::READ)
|
||||
{
|
||||
System::IO::StreamReader^ sr = (System::IO::StreamReader^)file->Handle;
|
||||
sr->Close ();
|
||||
}
|
||||
else
|
||||
{
|
||||
System::IO::StreamWriter^ sw = (System::IO::StreamWriter^)file->Handle;
|
||||
sw->Close ();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int StdAwk::readFile (File^ file, cli::array<char_t>^ buf, int len)
|
||||
{
|
||||
System::IO::StreamReader^ sr = (System::IO::StreamReader^)file->Handle;
|
||||
try { return sr->Read (buf, 0, len); }
|
||||
catch (System::Exception^) { return -1; }
|
||||
}
|
||||
|
||||
int StdAwk::writeFile (File^ file, cli::array<char_t>^ buf, int len)
|
||||
{
|
||||
System::IO::StreamWriter^ sw = (System::IO::StreamWriter^)file->Handle;
|
||||
try
|
||||
{
|
||||
sw->Write (buf, 0, len);
|
||||
return len;
|
||||
}
|
||||
catch (System::Exception^) { return -1; }
|
||||
}
|
||||
|
||||
int StdAwk::flushFile (File^ file)
|
||||
{
|
||||
System::IO::StreamWriter^ sw = (System::IO::StreamWriter^)file->Handle;
|
||||
try
|
||||
{
|
||||
sw->Flush ();
|
||||
return 0;
|
||||
}
|
||||
catch (System::Exception^) { return -1; }
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: StdAwk.hpp,v 1.2 2007/07/16 11:12:12 bacon Exp $
|
||||
* $Id: StdAwk.hpp,v 1.3 2007/07/19 14:35:10 bacon Exp $
|
||||
*/
|
||||
|
||||
#include <ase/net/Awk.hpp>
|
||||
@ -12,6 +12,16 @@ namespace ASE
|
||||
public ref class StdAwk: Awk
|
||||
{
|
||||
public:
|
||||
StdAwk ();
|
||||
~StdAwk ();
|
||||
|
||||
protected:
|
||||
int openFile (File^ file);
|
||||
int closeFile (File^ file);
|
||||
int readFile (File^ file, cli::array<char_t>^ buf, int len);
|
||||
int writeFile (File^ file, cli::array<char_t>^ buf, int len);
|
||||
int flushFile (File^ file);
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -19,8 +19,8 @@ namespace asetestnet
|
||||
{
|
||||
ASE.Net.Awk awk = new ASE.Net.StdAwk();
|
||||
|
||||
awk.OpenFileHandler += new ASE.Net.Awk.OpenFile (OpenFile);
|
||||
awk.CloseFileHandler += CloseFile;
|
||||
/*awk.OpenFileHandler += new ASE.Net.Awk.OpenFile (OpenFile);
|
||||
awk.CloseFileHandler += CloseFile;*/
|
||||
|
||||
//awk.Open();
|
||||
awk.SourceInputStream = new System.IO.FileStream("t.awk", System.IO.FileMode.Open, System.IO.FileAccess.Read);
|
||||
@ -30,6 +30,7 @@ namespace asetestnet
|
||||
awk.Run();
|
||||
}
|
||||
|
||||
/*
|
||||
private int OpenFile(ASE.Net.Awk.File file)
|
||||
{
|
||||
MessageBox.Show("OpenFile");
|
||||
@ -41,7 +42,7 @@ namespace asetestnet
|
||||
{
|
||||
MessageBox.Show("CloseFile" + (string)file.Handle);
|
||||
return 0;
|
||||
}
|
||||
}*/
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user