Files
harbour-core/harbour/samples/cccppc/freader.och
1999-11-09 01:37:27 +00:00

343 lines
16 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// FREADER.och oszt ly implement ci¢.
// Gener lva: 1999.06.10, 14:39:56, OBJCCC v2.2.03
// Meta oszt ly defin¡ci¢: Van
#ifndef CA_CREADER_N
#ifdef _STRICT_PARENT_
#ifdef _CA_CM_ONLY_
#include "CREADER.och"
#else // _CA_CM_ONLY_
#define _CA_CM_ONLY_
#include "CREADER.och"
#undef _CA_CM_ONLY_
#endif // _CA_CM_ONLY_
#else
#include "CREADER.och"
#endif // _STRICT_PARENT_
#endif // CA_CREADER_N
#ifndef _CA_CM_ONLY_
#ifndef _FREADER_OCH_
#define _FREADER_OCH_
#xtranslate FREADER.<obj>:name => <obj>\[CA_OBJECT_N+1\]
#xtranslate FREADER.<obj>:errorstream => <obj>\[CA_OBJECT_N+2\]
#xtranslate FREADER.<obj>:tbuffer => <obj>\[CA_OBJECT_N+3\]
#xtranslate FREADER.<obj>:line => <obj>\[CA_READER_N+1\]
#xtranslate FREADER.<obj>:pos => <obj>\[CA_READER_N+2\]
#xtranslate FREADER.<obj>:oinit => (OBJGEN.(<obj>):(4))
#xtranslate FREADER.<obj>:getclass => (OBJGEN.(<obj>):(5))
#xtranslate FREADER.<obj>:isclass => (OBJGEN.(<obj>):(6))
#xtranslate FREADER.<obj>:getattrib => (OBJGEN.(<obj>):(7))
#xtranslate FREADER.<obj>:setattrib => (OBJGEN.(<obj>):(8))
#xtranslate FREADER.<obj>:read => (OBJGEN.(<obj>):(CM_OBJECT_N+1))
#xtranslate FREADER.<obj>:unread => (OBJGEN.(<obj>):(CM_OBJECT_N+2))
#xtranslate FREADER.<obj>:readtbuffer => (OBJGEN.(<obj>):(CM_OBJECT_N+3))
#xtranslate FREADER.<obj>:arraytbuffer => (OBJGEN.(<obj>):(CM_OBJECT_N+4))
#xtranslate FREADER.<obj>:readitem => (OBJGEN.(<obj>):(CM_OBJECT_N+5))
#xtranslate FREADER.<obj>:iserror => (OBJGEN.(<obj>):(CM_OBJECT_N+6))
#xtranslate FREADER.<obj>:adderror => (OBJGEN.(<obj>):(CM_OBJECT_N+7))
#xtranslate FREADER.<obj>:destruct => (OBJGEN.(<obj>):(CM_OBJECT_N+8))
#xtranslate FREADER.<obj>:getfile => (OBJGEN.(<obj>):(CM_READER_N+1))
#xtranslate FREADER.<obj>:getline => (OBJGEN.(<obj>):(CM_READER_N+2))
#xtranslate FREADER.<obj>:getpos => (OBJGEN.(<obj>):(CM_READER_N+3))
#xtranslate FREADER.<obj>:path => <obj>\[CA_CREADER_N+1\]
#xtranslate FREADER.<obj>:fid => <obj>\[CA_CREADER_N+2\]
#xtranslate FREADER.<obj>:buffer => <obj>\[CA_CREADER_N+3\]
#xtranslate FREADER.<obj>:ibuffer => <obj>\[CA_CREADER_N+4\]
// Specifik lva: pathname()
// Specifik lva: open(path,fileName)
// Specifik lva: close()
// Specifik lva: dopen(pathArray,fileName)
// Specifik lva: isopen()
// ™r”k”lve: readitem()
// ™r”k”lve: destruct()
// ™r”k”lve: oinit(errorStream)
#xtranslate FREADER.<obj>:pathname => (OBJGEN.(<obj>):(CM_CREADER_N+1))
#xtranslate FREADER.<obj>:open => (OBJGEN.(<obj>):(CM_CREADER_N+2))
#xtranslate FREADER.<obj>:close => (OBJGEN.(<obj>):(CM_CREADER_N+3))
#xtranslate FREADER.<obj>:dopen => (OBJGEN.(<obj>):(CM_CREADER_N+4))
#xtranslate FREADER.<obj>:isopen => (OBJGEN.(<obj>):(CM_CREADER_N+5))
// ™r”k”lve: readitem()
// ™r”k”lve: destruct()
// ™r”k”lve: oinit(errorStream)
#endif // _FREADER_OCH_
#endif // _CA_CM_ONLY_
#ifndef CA_FREADER_N
#define CA_FREADER_N CA_CREADER_N+4
#define CM_FREADER_N CM_CREADER_N+5
#endif // CA_FREADER_N
#ifndef _CA_CM_ONLY_
#ifndef _FREADERCLASS_OCH_
#define _FREADERCLASS_OCH_
**********************************************************************
#xtranslate C.FREADER:<m> => (FREADERCLASS.clFREADER():<m>)
#xtranslate C.FREADER:self() => (clFREADER())
#xtranslate FREADERCLASS.<obj>:parent => <obj>\[CA_OBJECT_N+1\]
#xtranslate FREADERCLASS.<obj>:name => <obj>\[CA_OBJECT_N+2\]
#xtranslate FREADERCLASS.<obj>:objsize => <obj>\[CA_OBJECT_N+3\]
#xtranslate FREADERCLASS.<obj>:attribs => <obj>\[CA_OBJECT_N+4\]
#xtranslate FREADERCLASS.<obj>:methods => <obj>\[CA_OBJECT_N+5\]
#xtranslate FREADERCLASS.<obj>:classid => <obj>\[CA_OBJECT_N+6\]
#xtranslate FREADERCLASS.<obj>:parentclassids => <obj>\[CA_OBJECT_N+7\]
#xtranslate FREADERCLASS.<obj>:amblock => <obj>\[CA_OBJECT_N+8\]
#xtranslate FREADERCLASS.<obj>:methodsblock => <obj>\[CA_OBJECT_N+9\]
#xtranslate FREADERCLASS.<obj>:objmethodsimplement => <obj>\[CA_OBJECT_N+10\]
#xtranslate FREADERCLASS.<obj>:oinit => (OBJGEN.(<obj>):(4))
#xtranslate FREADERCLASS.<obj>:getclass => (OBJGEN.(<obj>):(5))
#xtranslate FREADERCLASS.<obj>:isclass => (OBJGEN.(<obj>):(6))
#xtranslate FREADERCLASS.<obj>:getattrib => (OBJGEN.(<obj>):(7))
#xtranslate FREADERCLASS.<obj>:setattrib => (OBJGEN.(<obj>):(8))
#xtranslate FREADERCLASS.<obj>:onew => (OBJGEN.(<obj>):(CM_OBJECT_N+1))
#xtranslate FREADERCLASS.<obj>:ocreate => (OBJGEN.(<obj>):(CM_OBJECT_N+2))
#xtranslate FREADERCLASS.<obj>:rawoinit => (OBJGEN.(<obj>):(CM_OBJECT_N+3))
#xtranslate FREADERCLASS.<obj>:oinitclass => (OBJGEN.(<obj>):(CM_OBJECT_N+4))
#xtranslate FREADERCLASS.<obj>:getmethodsimplement => (OBJGEN.(<obj>):(CM_OBJECT_N+5))
#xtranslate FREADERCLASS.<obj>:attribidx => (OBJGEN.(<obj>):(CM_OBJECT_N+6))
#xtranslate FREADERCLASS.<obj>:needclassid => (OBJGEN.(<obj>):(CM_OBJECT_N+7))
#xtranslate FREADERCLASS.<obj>:isinheritfrom => (OBJGEN.(<obj>):(CM_OBJECT_N+8))
// ™r”k”lve: onew(errorStream)
// ™r”k”lve: oinitclass()
// ™r”k”lve: onew(errorStream)
// ™r”k”lve: oinitclass()
#endif // _FREADERCLASS_OCH_
#endif // _CA_CM_ONLY_
#ifndef CA_FREADERCLASS_N
#define CA_FREADERCLASS_N CA_CREADERCLASS_N+0
#define CM_FREADERCLASS_N CM_CREADERCLASS_N+0
#endif // CA_FREADERCLASS_N
**********************************************************************
#ifdef _FREADER_PRG_
#ifndef _FREADER_PRG_OCH_
#define _FREADER_PRG_OCH_
**********************************************************************
#xtranslate othis:<m> => FREADER.(othis):<m>
#xtranslate thisclass:<m> => FREADERCLASS.(this:getClass()):<m>
#define CTHIS FREADER
**********************************************************************
#xtranslate this:<m> => FREADER.(this):<m>
#xcommand implement pathname() => static function pathname(this)
#xcommand implement open(path,fileName) => ;
static function open(this,path,fileName)
#xcommand implement close() => static function close(this)
#xcommand implement dopen(pathArray,fileName) => ;
static function dopen(this,pathArray,fileName)
#xcommand implement isopen() => static function isopen(this)
#xcommand implement readitem() => static function readitem(this)
#xcommand implement destruct() => static function destruct(this)
#xcommand implement oinit(errorStream) => ;
static function oinit(this,errorStream)
#ifdef _IMPLEMENT_EXPORT_
#xcommand implement export pathname() => function pathname(this)
#xcommand implement export open(path,fileName) => ;
function open(this,path,fileName)
#xcommand implement export close() => function close(this)
#xcommand implement export dopen(pathArray,fileName) => ;
function dopen(this,pathArray,fileName)
#xcommand implement export isopen() => function isopen(this)
#xcommand implement export readitem() => function readitem(this)
#xcommand implement export destruct() => function destruct(this)
#xcommand implement export oinit(errorStream) => ;
function oinit(this,errorStream)
#endif // _IMPLEMENT_EXPORT_
#xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(4))
#xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(5))
#xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(6))
#xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(7))
#xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(8))
#xtranslate super:read => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+1))
#xtranslate super:unread => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+2))
#xtranslate super:readtbuffer => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+3))
#xtranslate super:arraytbuffer => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+4))
#xtranslate super:readitem => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+5))
#xtranslate super:iserror => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+6))
#xtranslate super:adderror => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+7))
#xtranslate super:destruct => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_OBJECT_N+8))
#xtranslate super:getfile => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_READER_N+1))
#xtranslate super:getline => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_READER_N+2))
#xtranslate super:getpos => (OBJGENM.(eval(BEHAVIOR.clCREADER():objmethodsimplement)).(this):(CM_READER_N+3))
**********************************************************************
static function setCMethods(pOsztaly)
// Egy t”mb”t felt”lt az oszt ly mveleti blokkjaival.
pOsztaly[(CM_CREADER_N+1)]:={|this| pathname(this)}
pOsztaly[(CM_CREADER_N+2)]:={|this,path,fileName| open(this,path,fileName)}
pOsztaly[(CM_CREADER_N+3)]:={|this| close(this)}
pOsztaly[(CM_CREADER_N+4)]:={|this,pathArray,fileName| dopen(this,pathArray,fileName)}
pOsztaly[(CM_CREADER_N+5)]:={|this| isopen(this)}
pOsztaly[(CM_OBJECT_N+5)]:={|this| readitem(this)}
pOsztaly[(CM_OBJECT_N+8)]:={|this| destruct(this)}
pOsztaly[(4)]:={|this,errorStream| oinit(this,errorStream)}
return pOsztaly
**********************************************************************
static function setCams(ta,tm)
// Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attrib£tumaival s mveleteivel.
ta[CA_CREADER_N+1-CA_NIL_N] := {CA_CREADER_N+1,'path', }
ta[CA_CREADER_N+2-CA_NIL_N] := {CA_CREADER_N+2,'fid', }
ta[CA_CREADER_N+3-CA_NIL_N] := {CA_CREADER_N+3,'buffer', }
ta[CA_CREADER_N+4-CA_NIL_N] := {CA_CREADER_N+4,'ibuffer', }
tm[(CM_CREADER_N+1)-CM_NIL_N] := {(CM_CREADER_N+1),'pathname','',nil}
tm[(CM_CREADER_N+2)-CM_NIL_N] := {(CM_CREADER_N+2),'open','path,fileName',nil}
tm[(CM_CREADER_N+3)-CM_NIL_N] := {(CM_CREADER_N+3),'close','',nil}
tm[(CM_CREADER_N+4)-CM_NIL_N] := {(CM_CREADER_N+4),'dopen','pathArray,fileName',nil}
tm[(CM_CREADER_N+5)-CM_NIL_N] := {(CM_CREADER_N+5),'isopen','',nil}
tm[(CM_OBJECT_N+5)-CM_NIL_N] := {(CM_OBJECT_N+5),'readitem','',nil}
tm[(CM_OBJECT_N+8)-CM_NIL_N] := {(CM_OBJECT_N+8),'destruct','',nil}
tm[(4)-CM_NIL_N] := {(4),'oinit','errorStream',nil}
return nil
#ifndef _NO_CLFREADER_
#ifdef _STRICT_PARENT_
#ifdef _CA_CM_ONLY_
#include "meta.och"
#else // _CA_CM_ONLY_
#define _CA_CM_ONLY_
#include "meta.och"
#undef _CA_CM_ONLY_
#endif // _CA_CM_ONLY_
#else
#include "meta.och"
#endif // _STRICT_PARENT_
**********************************************************************
function clFREADER()
// El“szedi az oszt lyt. (class)
static osztaly
if (osztaly==nil)
osztaly:=META.mcFREADERCLASS():onew(;
clCREADER(),;
"FREADER",;
CA_FREADER_N,;
CM_FREADER_N,;
{|ta,tm|setCams(ta,tm)},;
{|t|setCMethods(t)})
endif
return osztaly
#endif // _NO_CLFREADER_
#ifndef _NO_FREADERCLASS_
**********************************************************************
#xtranslate class:<m> => FREADERCLASS.(class):<m>
#xcommand cimplement onew(errorStream) => ;
static function onew(class,errorStream)
#xcommand cimplement oinitclass() => static function oinitclass(class)
#ifdef _IMPLEMENT_EXPORT_
#xcommand cimplement export onew(errorStream) => ;
function onew(class,errorStream)
#xcommand cimplement export oinitclass() => function oinitclass(class)
#endif // _IMPLEMENT_EXPORT_
#xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(4))
#xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(5))
#xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(6))
#xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(7))
#xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(8))
#xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+1))
#xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+2))
#xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+3))
#xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+4))
#xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+5))
#xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+6))
#xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+7))
#xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.mcCREADERCLASS():objmethodsimplement)).(class):(CM_OBJECT_N+8))
**********************************************************************
static function setMCMethods(pOsztaly)
// Egy t”mb”t felt”lt a metaoszt ly mveleti blokkjaival.
pOsztaly[(CM_OBJECT_N+1)]:={|class,errorStream| onew(class,errorStream)}
pOsztaly[(CM_OBJECT_N+4)]:={|class| oinitclass(class)}
return pOsztaly
**********************************************************************
static function setMCams(ta,tm)
// Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attrib£tumaival s mveleteivel.
tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','errorStream',nil}
tm[(CM_OBJECT_N+4)-CM_NIL_N] := {(CM_OBJECT_N+4),'oinitclass','',nil}
return nil
**********************************************************************
#ifndef _NO_MCFREADERCLASS_
#ifdef _STRICT_PARENT_
#ifdef _CA_CM_ONLY_
#include "meta.och" // "metaclas.och"
#else // _CA_CM_ONLY_
#define _CA_CM_ONLY_
#include "meta.och" // "metaclas.och"
#undef _CA_CM_ONLY_
#endif // _CA_CM_ONLY_
#else
#include "meta.och" // "metaclas.och"
#endif // _STRICT_PARENT_
function mcFREADERCLASS()
// El“szedi az oszt ly metaoszt ly t. (metaclass)
static metaOsztaly
if (metaOsztaly==nil)
metaOsztaly:=META.clMETA():onew(;
mcCREADERCLASS(),;
"FREADERCLASS",;
CA_FREADERCLASS_N,;
CM_FREADERCLASS_N,;
{|ta,tm|setMCams(ta,tm)},;
{|t|setMCMethods(t)})
endif
return metaOsztaly
#endif // _NO_MCFREADERCLASS_
#endif // _NO_FREADERCLASS_
#ifdef _IMPLEMENT_ONEW_
**********************************************************************
cimplement onew(errorStream)
local o:=class:ocreate()
FREADER.o:oinit(errorStream)
return o
#endif // _IMPLEMENT_ONEW_
**********************************************************************
#ifdef _IMPLEMENT_OINIT_
implement oinit(errorStream)
super:oinit()
return this
#endif // _IMPLEMENT_OINIT_
**********************************************************************
**********************************************************************
#endif // _FREADER_PRG_OCH_
#endif // _FREADER_PRG_