Recovered from cvs revision 2007-10-10 13:22:00

This commit is contained in:
2007-10-10 22:33:00 +00:00
parent c79702df8e
commit 3cfcc8b0c9
13 changed files with 2261 additions and 2114 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/*
* $Id: StdAwk.cpp,v 1.16 2007/10/08 09:43:15 bacon Exp $
* $Id: StdAwk.cpp,v 1.17 2007/10/10 03:37:49 bacon Exp $
*
* {License}
*/
@ -16,98 +16,95 @@
#pragma warning(disable:4996)
namespace ASE
ASE_BEGIN_NAMESPACE2(ASE,Net)
StdAwk::StdAwk ()
{
namespace Net
{
random_seed = (gcnew System::Random)->Next (System::Int32::MinValue, System::Int32::MaxValue);
random = gcnew System::Random (random_seed);
StdAwk::StdAwk ()
{
random_seed = (gcnew System::Random)->Next (System::Int32::MinValue, System::Int32::MaxValue);
random = gcnew System::Random (random_seed);
// TODO: exception/error handling....
AddFunction ("sin", 1, 1, gcnew FunctionHandler (this, &StdAwk::Sin));
AddFunction ("cos", 1, 1, gcnew FunctionHandler (this, &StdAwk::Cos));
AddFunction ("tan", 1, 1, gcnew FunctionHandler (this, &StdAwk::Tan));
AddFunction ("atan", 1, 1, gcnew FunctionHandler (this, &StdAwk::Atan));
AddFunction ("atan2", 2, 2, gcnew FunctionHandler (this, &StdAwk::Atan2));
AddFunction ("log", 1, 1, gcnew FunctionHandler (this, &StdAwk::Log));
AddFunction ("exp", 1, 1, gcnew FunctionHandler (this, &StdAwk::Exp));
AddFunction ("sqrt", 1, 1, gcnew FunctionHandler (this, &StdAwk::Sqrt));
AddFunction ("int", 1, 1, gcnew FunctionHandler (this, &StdAwk::Int));
AddFunction ("rand", 0, 0, gcnew FunctionHandler (this, &StdAwk::Rand));
AddFunction ("srand", 1, 1, gcnew FunctionHandler (this, &StdAwk::Srand));
AddFunction ("systime", 0, 0, gcnew FunctionHandler (this, &StdAwk::Systime));
AddFunction ("strftime", 0, 2, gcnew FunctionHandler (this, &StdAwk::Strftime));
AddFunction ("strfgmtime", 0, 2, gcnew FunctionHandler (this, &StdAwk::Strfgmtime));
}
// TODO: exception/error handling....
AddFunction ("sin", 1, 1, gcnew FunctionHandler (this, &StdAwk::Sin));
AddFunction ("cos", 1, 1, gcnew FunctionHandler (this, &StdAwk::Cos));
AddFunction ("tan", 1, 1, gcnew FunctionHandler (this, &StdAwk::Tan));
AddFunction ("atan", 1, 1, gcnew FunctionHandler (this, &StdAwk::Atan));
AddFunction ("atan2", 2, 2, gcnew FunctionHandler (this, &StdAwk::Atan2));
AddFunction ("log", 1, 1, gcnew FunctionHandler (this, &StdAwk::Log));
AddFunction ("exp", 1, 1, gcnew FunctionHandler (this, &StdAwk::Exp));
AddFunction ("sqrt", 1, 1, gcnew FunctionHandler (this, &StdAwk::Sqrt));
AddFunction ("int", 1, 1, gcnew FunctionHandler (this, &StdAwk::Int));
AddFunction ("rand", 0, 0, gcnew FunctionHandler (this, &StdAwk::Rand));
AddFunction ("srand", 1, 1, gcnew FunctionHandler (this, &StdAwk::Srand));
AddFunction ("systime", 0, 0, gcnew FunctionHandler (this, &StdAwk::Systime));
AddFunction ("strftime", 0, 2, gcnew FunctionHandler (this, &StdAwk::Strftime));
AddFunction ("strfgmtime", 0, 2, gcnew FunctionHandler (this, &StdAwk::Strfgmtime));
}
StdAwk::~StdAwk ()
{
}
StdAwk::~StdAwk ()
{
}
bool StdAwk::Sin (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((real_t)System::Math::Sin (args[0]->RealValue));
}
bool StdAwk::Sin (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((real_t)System::Math::Sin (args[0]->RealValue));
}
bool StdAwk::Cos (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((real_t)System::Math::Cos (args[0]->RealValue));
}
bool StdAwk::Cos (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((real_t)System::Math::Cos (args[0]->RealValue));
}
bool StdAwk::Tan (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((real_t)System::Math::Tan (args[0]->RealValue));
}
bool StdAwk::Tan (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((real_t)System::Math::Tan (args[0]->RealValue));
}
bool StdAwk::Atan (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((real_t)System::Math::Atan (args[0]->RealValue));
}
bool StdAwk::Atan (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((real_t)System::Math::Atan (args[0]->RealValue));
}
bool StdAwk::Atan2 (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((real_t)System::Math::Atan2 (args[0]->RealValue, args[1]->RealValue));
}
bool StdAwk::Atan2 (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((real_t)System::Math::Atan2 (args[0]->RealValue, args[1]->RealValue));
}
bool StdAwk::Log (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((real_t)System::Math::Log (args[0]->RealValue));
}
bool StdAwk::Log (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((real_t)System::Math::Log (args[0]->RealValue));
}
bool StdAwk::Exp (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((real_t)System::Math::Exp (args[0]->RealValue));
}
bool StdAwk::Exp (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((real_t)System::Math::Exp (args[0]->RealValue));
}
bool StdAwk::Sqrt (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((real_t)System::Math::Sqrt (args[0]->RealValue));
}
bool StdAwk::Sqrt (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((real_t)System::Math::Sqrt (args[0]->RealValue));
}
bool StdAwk::Int (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set (args[0]->LongValue);
}
bool StdAwk::Int (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set (args[0]->LongValue);
}
bool StdAwk::Rand (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((long_t)random->Next ());
}
bool StdAwk::Rand (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((long_t)random->Next ());
}
bool StdAwk::Srand (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
int seed = (int)args[0]->LongValue;
System::Random^ tmp = gcnew System::Random (seed);
bool StdAwk::Srand (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
int seed = (int)args[0]->LongValue;
System::Random^ tmp = gcnew System::Random (seed);
if (!ret->Set((long_t)tmp->Next())) return false;
if (!ret->Set((long_t)tmp->Next())) return false;
this->random_seed = seed;
this->random = tmp;
return true;
}
this->random_seed = seed;
this->random = tmp;
return true;
}
#if defined(_WIN32) && defined(_MSC_VER) && (_MSC_VER>=1400)
#define time_t __time64_t
@ -116,251 +113,251 @@ namespace ASE
#define gmtime _gmtime64
#endif
bool StdAwk::Systime (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((long_t)::time(NULL));
}
bool StdAwk::Systime (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
return ret->Set ((long_t)::time(NULL));
}
bool StdAwk::Strftime (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
wchar_t buf[128];
struct tm* tm;
size_t len;
bool StdAwk::Strftime (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
wchar_t buf[128];
struct tm* tm;
size_t len;
if (args->Length < 1)
{
const wchar_t* fmt = L"%c";
time_t t = (args->Length < 2)? ::time(NULL): (time_t)args[1]->LongValue;
if (args->Length < 1)
{
const wchar_t* fmt = L"%c";
time_t t = (args->Length < 2)? ::time(NULL): (time_t)args[1]->LongValue;
tm = ::localtime (&t);
len = ::wcsftime (buf, ASE_COUNTOF(buf), fmt, tm);
}
else
{
cli::pin_ptr<const ASE::Awk::char_t> fmt = PtrToStringChars(args[0]->StringValue);
tm = ::localtime (&t);
len = ::wcsftime (buf, ASE_COUNTOF(buf), fmt, tm);
}
else
{
cli::pin_ptr<const ASE::Awk::char_t> fmt = PtrToStringChars(args[0]->StringValue);
time_t t = (args->Length < 2)? ::time(NULL): (time_t)args[1]->LongValue;
time_t t = (args->Length < 2)? ::time(NULL): (time_t)args[1]->LongValue;
tm = ::localtime (&t);
len = ::wcsftime (buf, ASE_COUNTOF(buf), fmt, tm);
}
tm = ::localtime (&t);
len = ::wcsftime (buf, ASE_COUNTOF(buf), fmt, tm);
}
return ret->Set (gcnew System::String (buf, 0, len));
}
return ret->Set (gcnew System::String (buf, 0, len));
}
bool StdAwk::Strfgmtime (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
wchar_t buf[128];
struct tm* tm;
size_t len;
bool StdAwk::Strfgmtime (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret)
{
wchar_t buf[128];
struct tm* tm;
size_t len;
if (args->Length < 1)
{
const wchar_t* fmt = L"%c";
time_t t = (args->Length < 2)? ::time(NULL): (time_t)args[1]->LongValue;
if (args->Length < 1)
{
const wchar_t* fmt = L"%c";
time_t t = (args->Length < 2)? ::time(NULL): (time_t)args[1]->LongValue;
tm = ::gmtime (&t);
len = ::wcsftime (buf, ASE_COUNTOF(buf), fmt, tm);
}
else
{
cli::pin_ptr<const ASE::Awk::char_t> fmt = PtrToStringChars(args[0]->StringValue);
tm = ::gmtime (&t);
len = ::wcsftime (buf, ASE_COUNTOF(buf), fmt, tm);
}
else
{
cli::pin_ptr<const ASE::Awk::char_t> fmt = PtrToStringChars(args[0]->StringValue);
time_t t = (args->Length < 2)? ::time(NULL): (time_t)args[1]->LongValue;
time_t t = (args->Length < 2)? ::time(NULL): (time_t)args[1]->LongValue;
tm = ::gmtime (&t);
len = ::wcsftime (buf, ASE_COUNTOF(buf), fmt, tm);
}
tm = ::gmtime (&t);
len = ::wcsftime (buf, ASE_COUNTOF(buf), fmt, tm);
}
return ret->Set (gcnew System::String (buf, 0, len));
}
return ret->Set (gcnew System::String (buf, 0, len));
}
int StdAwk::OpenFile (File^ file)
int StdAwk::OpenFile (File^ file)
{
System::IO::FileMode mode;
System::IO::FileAccess access;
System::IO::FileStream^ fs;
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;
}
int StdAwk::CloseFile (File^ file)
{
if (file->Mode->Equals(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;
return sr->Read (buf, 0, len);
}
int StdAwk::WriteFile (File^ file, cli::array<char_t>^ buf, int len)
{
System::IO::StreamWriter^ sw = (System::IO::StreamWriter^)file->Handle;
sw->Write (buf, 0, len);
return len;
}
int StdAwk::FlushFile (File^ file)
{
System::IO::StreamWriter^ sw = (System::IO::StreamWriter^)file->Handle;
sw->Flush ();
return 0;
}
int StdAwk::OpenPipe (Pipe^ pipe)
{
FILE* fp = NULL;
cli::pin_ptr<const wchar_t> name =
PtrToStringChars(pipe->Name);
if (pipe->Mode->Equals(Pipe::MODE::READ))
{
fp = _wpopen (name, L"r");
}
else // Pipe::MODE::WRITE
{
fp = _wpopen (name, L"w");
}
if (fp == NULL) return -1;
pipe->Handle = System::IntPtr ((void*)fp);
return 1;
}
int StdAwk::ClosePipe (Pipe^ pipe)
{
System::IntPtr ip = (System::IntPtr)pipe->Handle;
FILE* fp = (FILE*)ip.ToPointer();
return (::_pclose (fp) == EOF)? -1: 0;
}
int StdAwk::ReadPipe (Pipe^ pipe, cli::array<char_t>^ buf, int len)
{
System::IntPtr ip = (System::IntPtr)pipe->Handle;
FILE* fp = (FILE*)ip.ToPointer();
int n = 0;
while (n < len)
{
wint_t c = fgetwc (fp);
if (c == WEOF) break;
buf[n++] = c;
if (c == L'\n') break;
}
return n;
}
int StdAwk::WritePipe (Pipe^ pipe, cli::array<char_t>^ buf, int len)
{
System::IntPtr ip = (System::IntPtr)pipe->Handle;
FILE* fp = (FILE*)ip.ToPointer();
int left;
cli::pin_ptr<char_t> bp = &buf[0];
/* somehow, fwprintf returns 0 when non-ascii
* characters are included in the buffer.
while (left > 0)
{
if (*bp == ASE_T('\0'))
{
System::IO::FileMode mode;
System::IO::FileAccess access;
System::IO::FileStream^ fs;
if (file->Mode->Equals(File::MODE::READ))
if (fputwc (*ptr, fp) == WEOF)
{
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;
return -1;
}
else if (file->Mode->Equals(File::MODE::WRITE))
{
mode = System::IO::FileMode::Create;
access = System::IO::FileAccess::Write;
left -= 1; bp += 1;
}
else
{
int n = fwprintf (fp, L"%.*s", left, bp);
if (n < 0 || n > left) return -1;
left -= n; bp += n;
}
}*/
fs = gcnew System::IO::FileStream (file->Name, mode, access);
System::IO::StreamWriter^ wr = gcnew System::IO::StreamWriter (fs);
file->Handle = wr;
/* so the scheme has been changed to the following */
char* mbp = unicode_to_multibyte (bp, len, &left);
if (mbp == NULL) return -1;
char* ptr = mbp;
while (left > 0)
{
if (*ptr == '\0')
{
if (fputwc (*ptr, fp) == WEOF)
{
::free (mbp);
return -1;
}
else /* File::MODE::APPEND */
left -= 1; ptr += 1;
}
else
{
int n = fprintf (fp, "%.*s", left, ptr);
if (n < 0 || n > left)
{
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;
::free (mbp);
return -1;
}
return 1;
}
int StdAwk::CloseFile (File^ file)
{
if (file->Mode->Equals(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;
return sr->Read (buf, 0, len);
}
int StdAwk::WriteFile (File^ file, cli::array<char_t>^ buf, int len)
{
System::IO::StreamWriter^ sw = (System::IO::StreamWriter^)file->Handle;
sw->Write (buf, 0, len);
return len;
}
int StdAwk::FlushFile (File^ file)
{
System::IO::StreamWriter^ sw = (System::IO::StreamWriter^)file->Handle;
sw->Flush ();
return 0;
}
int StdAwk::OpenPipe (Pipe^ pipe)
{
FILE* fp = NULL;
cli::pin_ptr<const wchar_t> name =
PtrToStringChars(pipe->Name);
if (pipe->Mode->Equals(Pipe::MODE::READ))
{
fp = _wpopen (name, L"r");
}
else // Pipe::MODE::WRITE
{
fp = _wpopen (name, L"w");
}
if (fp == NULL) return -1;
pipe->Handle = System::IntPtr ((void*)fp);
return 1;
}
int StdAwk::ClosePipe (Pipe^ pipe)
{
System::IntPtr ip = (System::IntPtr)pipe->Handle;
FILE* fp = (FILE*)ip.ToPointer();
return (::_pclose (fp) == EOF)? -1: 0;
}
int StdAwk::ReadPipe (Pipe^ pipe, cli::array<char_t>^ buf, int len)
{
System::IntPtr ip = (System::IntPtr)pipe->Handle;
FILE* fp = (FILE*)ip.ToPointer();
int n = 0;
while (n < len)
{
wint_t c = fgetwc (fp);
if (c == WEOF) break;
buf[n++] = c;
if (c == L'\n') break;
}
return n;
}
int StdAwk::WritePipe (Pipe^ pipe, cli::array<char_t>^ buf, int len)
{
System::IntPtr ip = (System::IntPtr)pipe->Handle;
FILE* fp = (FILE*)ip.ToPointer();
int left;
cli::pin_ptr<char_t> bp = &buf[0];
/* somehow, fwprintf returns 0 when non-ascii
* characters are included in the buffer.
while (left > 0)
{
if (*bp == ASE_T('\0'))
{
if (fputwc (*ptr, fp) == WEOF)
{
return -1;
}
left -= 1; bp += 1;
}
else
{
int n = fwprintf (fp, L"%.*s", left, bp);
if (n < 0 || n > left) return -1;
left -= n; bp += n;
}
}*/
/* so the scheme has been changed to the following */
char* mbp = unicode_to_multibyte (bp, len, &left);
if (mbp == NULL) return -1;
char* ptr = mbp;
while (left > 0)
{
if (*ptr == '\0')
{
if (fputwc (*ptr, fp) == WEOF)
{
::free (mbp);
return -1;
}
left -= 1; ptr += 1;
}
else
{
int n = fprintf (fp, "%.*s", left, ptr);
if (n < 0 || n > left)
{
::free (mbp);
return -1;
}
left -= n; ptr += n;
}
}
::free (mbp);
return len;
}
int StdAwk::FlushPipe (Pipe^ pipe)
{
System::IntPtr ip = (System::IntPtr)pipe->Handle;
FILE* fp = (FILE*)ip.ToPointer();
return (::fflush (fp) == EOF)? -1: 0;
left -= n; ptr += n;
}
}
::free (mbp);
return len;
}
int StdAwk::FlushPipe (Pipe^ pipe)
{
System::IntPtr ip = (System::IntPtr)pipe->Handle;
FILE* fp = (FILE*)ip.ToPointer();
return (::fflush (fp) == EOF)? -1: 0;
}
ASE_END_NAMESPACE2(Net,ASE)

View File

@ -1,57 +1,54 @@
/*
* $Id: StdAwk.hpp,v 1.8 2007/10/08 09:43:15 bacon Exp $
* $Id: StdAwk.hpp,v 1.9 2007/10/10 03:37:49 bacon Exp $
*/
#include <ase/net/Awk.hpp>
namespace ASE
ASE_BEGIN_NAMESPACE2(ASE,Net)
public ref class StdAwk abstract: public Awk
{
namespace Net
{
public ref class StdAwk abstract: public Awk
{
public:
StdAwk ();
~StdAwk ();
public:
StdAwk ();
~StdAwk ();
protected:
int random_seed;
System::Random^ random;
protected:
int random_seed;
System::Random^ random;
bool Sin (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Cos (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Tan (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Atan (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Atan2 (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Log (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Exp (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Sqrt (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Int (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Rand (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Srand (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Systime (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Strftime (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Strfgmtime (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Sin (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Cos (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Tan (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Atan (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Atan2 (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Log (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Exp (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Sqrt (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Int (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Rand (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Srand (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Systime (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Strftime (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
bool Strfgmtime (Context^ ctx, System::String^ name, array<Argument^>^ args, Return^ ret);
public protected:
// File
virtual int OpenFile (File^ file) override;
virtual int CloseFile (File^ file) override;
virtual int ReadFile (
File^ file, cli::array<char_t>^ buf, int len) override;
virtual int WriteFile (
File^ file, cli::array<char_t>^ buf, int len) override;
virtual int FlushFile (File^ file) override;
public protected:
// File
virtual int OpenFile (File^ file) override;
virtual int CloseFile (File^ file) override;
virtual int ReadFile (
File^ file, cli::array<char_t>^ buf, int len) override;
virtual int WriteFile (
File^ file, cli::array<char_t>^ buf, int len) override;
virtual int FlushFile (File^ file) override;
// Pipe
virtual int OpenPipe (Pipe^ pipe) override;
virtual int ClosePipe (Pipe^ pipe) override;
virtual int ReadPipe (
Pipe^ pipe, cli::array<char_t>^ buf, int len) override;
virtual int WritePipe (
Pipe^ pipe, cli::array<char_t>^ buf, int len) override;
virtual int FlushPipe (Pipe^ pipe) override;
};
}
}
// Pipe
virtual int OpenPipe (Pipe^ pipe) override;
virtual int ClosePipe (Pipe^ pipe) override;
virtual int ReadPipe (
Pipe^ pipe, cli::array<char_t>^ buf, int len) override;
virtual int WritePipe (
Pipe^ pipe, cli::array<char_t>^ buf, int len) override;
virtual int FlushPipe (Pipe^ pipe) override;
};
ASE_END_NAMESPACE2(Net,ASE)