123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- {
- libstub - pas2js stub generator, library version
- Copyright (C) 2017 - 2020 by Michael Van Canneyt [email protected]
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- }
- library stub;
- {$mode objfpc}{$H+}
- uses
- SysUtils, Classes, stubcreator;
- Type
- PStubCreator = Pointer;
- Function GetStubCreator : PStubCreator; stdcall;
- begin
- Result:=TStubCreator.Create(Nil);
- end;
- Procedure FreeStubCreator(P : PStubCreator); stdcall;
- begin
- TStubCreator(P).Free;
- end;
- Function MaybeStr(P : PAnsiChar) : String;
- begin
- If Assigned(P) then
- Result:=P
- else
- Result:='';
- end;
- Procedure SetStubCreatorInputFileName(P : PStubCreator; AFileName : PAnsiChar); stdcall;
- begin
- if Assigned(P) then
- With TStubCreator(P) do
- InputFileName:=AFileName;
- end;
- Procedure SetStubCreatorConfigFileName(P : PStubCreator; AFileName : PAnsiChar); stdcall;
- begin
- if Assigned(P) then
- With TStubCreator(P) do
- ConfigFileName:=MaybeStr(AFileName);
- end;
- Procedure SetStubCreatorOutputFileName(P : PStubCreator; AFileName : PAnsiChar); stdcall;
- begin
- if Assigned(P) then
- With TStubCreator(P) do
- OutputFileName:=MaybeStr(AFileName);
- end;
- Procedure SetStubCreatorHeaderFileName(P : PStubCreator; AFileName : PAnsiChar); stdcall;
- begin
- if Assigned(P) then
- With TStubCreator(P) do
- HeaderFileName:=MaybeStr(AFileName);
- end;
- Procedure AddStubCreatorDefine(P : PStubCreator; ADefine : PAnsiChar); stdcall;
- begin
- if Assigned(P) then
- With TStubCreator(P) do
- TStubCreator(P).Defines.Add(MaybeStr(ADefine));
- end;
- Procedure AddStubCreatorForwardClass(P : PStubCreator; AForwardClass : PAnsiChar); stdcall;
- Var
- S : String;
- begin
- if Assigned(P) then
- With TStubCreator(P) do
- begin
- S:=MaybeStr(AForwardClass);
- if (S<>'') then
- begin
- if TStubCreator(P).ForwardClasses<>'' then
- S:=','+S;
- TStubCreator(P).ForwardClasses:=TStubCreator(P).ForwardClasses+S;
- end;
- end;
- end;
- Procedure SetStubCreatorHeaderContent(P : PStubCreator; AContent : PAnsiChar); stdcall;
- begin
- if Assigned(P) then
- With TStubCreator(P) do
- HeaderStream:=TStringStream.Create(MaybeStr(AContent));
- end;
- Procedure SetStubCreatorOuputCallBack(P : PStubCreator; AData : Pointer; ACallBack : TWriteCallBack); stdcall;
- begin
- if Assigned(P) then
- With TStubCreator(P) do
- begin
- CallbackData:=AData;
- OnWriteCallBack:=ACallBack;
- end;
- end;
- Function ExecuteStubCreator(P : PStubCreator) : Boolean; stdcall;
- begin
- Result:=TStubCreator(P).Execute;
- end;
- Procedure GetStubCreatorLastError(P : PStubCreator; AError : PAnsiChar;
- Var AErrorLength : Longint; AErrorClass : PAnsiChar; Var AErrorClassLength : Longint); stdcall;
- Var
- L : Integer;
- E,C : String;
- begin
- TStubCreator(P).GetLastError(E,C);
- L:=Length(E);
- if (L>AErrorLength) then
- L:=AErrorLength;
- if (L>0) then
- Move(E[1],AError^,L);
- L:=Length(C);
- if L>AErrorClassLength then
- L:=AErrorClassLength;
- if (L>0) then
- Move(C[1],AErrorClass^,L);
- end;
- Procedure SetStubCreatorUnitAliasCallBack(P : PStubCreator; ACallBack : TUnitAliasCallBack; CallBackData : Pointer); stdcall;
- begin
- TStubCreator(P).OnUnitAlias:=ACallBack;
- TStubCreator(P).OnUnitAliasData:=CallBackData;
- end;
- Procedure AddStubCreatorExtraUnit(P : PStubCreator; AUnitName : PAnsiChar); stdcall;
- begin
- TStubCreator(P).ExtraUnits:=AUnitName;
- end;
- exports
- // Stub creator
- GetStubCreator,
- FreeStubCreator,
- SetStubCreatorInputFileName,
- SetStubCreatorOutputFileName,
- SetStubCreatorHeaderFileName,
- SetStubCreatorConfigFileName,
- SetStubCreatorHeaderContent,
- SetStubCreatorOuputCallBack,
- GetStubCreatorLastError,
- AddStubCreatorDefine,
- AddStubCreatorForwardClass,
- AddStubCreatorExtraUnit,
- ExecuteStubCreator,
- SetStubCreatorUnitAliasCallBack;
- end.
|