Start of BString and BList support by Eric

This commit is contained in:
ocoursiere
2002-10-07 22:08:47 +00:00
parent f421e353ce
commit 53c034aa85
5 changed files with 2789 additions and 0 deletions

View File

@@ -0,0 +1,510 @@
{ BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Eric Jourde
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
}
unit BString;
interface
uses
beobj, SupportDefs, os;
type
TString = class(TBeObject)
private
public
constructor Create; override;
// constructor Create(value : PChar); override;
destructor Destroy; override;
function CountChars : integer;
function length : integer;
function String_pchar : PChar;
// Affectation
procedure SetTo(value:PChar; lenght : cardinal);
procedure SetTo( from: TString);
procedure SetTo( value:TString; length1: cardinal);
procedure Adopt( from:TString);
end;
function BString_Create(AObject : TBeObject):TCPlusObject; cdecl; external BePascalLibName name 'BString_Create';
function BString_Create(AObject : TBeObject;value : PChar):TCPlusObject; cdecl; external BePascalLibName name 'BString_Create_1';
procedure BString_Free(AObject : TCPlusObject);cdecl; external BePascalLibName name 'BString_Free';
function BString_CountChars(AObject : TCPlusObject): cardinal;cdecl; external BePascalLibName name 'BString_CountChars';
function BString_Length(AObject : TCPlusObject): cardinal;cdecl; external BePascalLibName name 'BString_Length';
function BString_String(AObject : TCPlusObject): Pchar;cdecl; external BePascalLibName name 'BString_String';
procedure BString_SetTo(AObject : TCPlusObject;value:Pchar;length:cardinal);cdecl; external BePascalLibName name 'BString_SetTo';
procedure BString_SetTo_1(AObject : TCPlusObject; from: TBeObject);cdecl; external BePascalLibName name 'BString_SetTo_1';
procedure BString_SetTo_2(AObject : TCPlusObject; value:TBeObject;length: cardinal);cdecl; external BePascalLibName name 'BString_SetTo_2';
procedure BString_Adopt(AObject : TCPlusObject; from:TBeObject);cdecl; external BePascalLibName name 'BString_Adopt';
{
BString &
BString_Adopt_1(BString *String, BString &from,
int32 length)
BString &
BString_SetTo_3(BString *String, char value,
int32 count)
BString &
BString_CopyInto(BString *String, BString &into,
int32 fromOffset,
int32 length)
void
BString_CopyInto_1
(BString *String, char *into,
int32 fromOffset,
int32 length)
BString &
BString_Append(BString *String, const BString &value,
int32 length)
BString &
BString_Append_1
(BString *String, const char *value,
int32 length)
BString &
BString_Append_2
(BString *String, char value,
int32 count)
BString &
BString_Prepend(BString *String, const char *value)
BString &
BString_Prepend_1
(BString *String, const BString &value)
BString &
BString_Prepend_2
(BString *String, const char *value,
int32 length)
BString &
BString_Prepend_3
(BString *String, const BString &value,
int32 length)
BString &
BString_Prepend_4
(BString *String, char value,
int32 count)
BString &
BString_Insert(BString *String, const char *value,
int32 pos)
BString &
BString_Insert_1
(BString *String, const char *value,
int32 length,
int32 pos)
BString &
BString_Insert_2
(BString *String, const char *value,
int32 fromOffset,
int32 length,
int32 pos)
BString &
BString_Insert_3
(BString *String, const BString &value,
int32 pos)
BString &
BString_Insert_4
(BString *String, const BString &value,
int32 length,
int32 pos)
BString &
BString_Insert_5
(BString *String, const BString &value,
int32 fromOffset,
int32 length,
int32 pos)
BString &
BString_Insert_6
(BString *String, char value,
int32 count,
int32 pos)
BString &
BString_Truncate(BString *String, int32 newLength,
bool lazy)
BString &
BString_Remove(BString *String, int32 from,
int32 length)
BString &
BString_RemoveFirst_1
(BString *String, const BString &value)
BString &
BString_RemoveLast(BString *String, const BString &value)
BString &
BString_RemoveAll(BString *String, const BString &value)
BString &
BString_RemoveFirst(BString *String, const char *value)
BString &
BString_RemoveLast_1(BString *String, const char *value)
BString &
BString_RemoveAll_1(BString *String, const char *value)
BString &
BString_RemoveSet(BString *String, const char *setOfCharsToRemove)
BString &
BString_MoveInto(BString *String, BString &into,
int32 from,
int32 length)
void
BString_MoveInto_1
(BString *String, char *into,
int32 from,
int32 length)
int
BString_Compare(BString *String, const BString &value)
int
BString_Compare_1
(BString *String, const char *value)
int
BString_Compare_2
(BString *String, const BString &value,
int32 n)
int
BString_Compare_3
(BString *String, const char *value,
int32 n)
int
BString_ICompare(BString *String, const BString &value)
int
BString_ICompare_1
(BString *String, const char *value)
int
BString_ICompare_2
(BString *String, const BString &value,
int32 n)
int
BString_ICompare_3
(BString *String, const char *value,
int32 n)
int32
BString_FindFirst(BString *String, const BString &value)
int32
BString_FindFirst_1
(BString *String, const char *value)
int32
BString_FindFirst_2
(BString *String, const BString &value,
int32 fromOffset)
int32
BString_FindFirst_3
(BString *String, const char *value,
int32 fromOffset)
int32
BString_FindFirst_4
(BString *String, char value)
int32
BString_FindFirst_5
(BString *String, char value,
int32 fromOffset)
int32
BString_FindLast(BString *String, const BString &value)
int32
BString_FindLast_1
(BString *String, const char *value)
int32
BString_FindLast_2
(BString *String, const BString &value,
int32 beforeOffset)
int32
BString_FindLast_3
(BString *String, const char *value,
int32 beforeOffset)
int32
BString_FindLast_4
(BString *String, char value)
int32
BString_FindLast_5
(BString *String, char value,
int32 fromOffset)
int32
BString_IFindFirst(BString *String, const BString &value)
int32
BString_IFindFirst_1
(BString *String, const char *value)
int32
BString_IFindFirst_2
(BString *String, const BString &value,
int32 fromOffset)
int32
BString_IFindFirst_3
(BString *String, const char *value,
int32 fromOffset)
int32
BString_IFindLast(BString *String, const BString &value)
int32
BString_IFindLast_1
(BString *String, const char *value)
int32
BString_IFindLast_2
(BString *String, const BString &value,
int32 beforeOffset)
int32
BString_IFindLast_3
(BString *String, const char *value,
int32 beforeOffset)
BString &
BString_ReplaceFirst(BString *String, char replaceThis,
char withThis)
BString &
BString_ReplaceLast(BString *String, char replaceThis,
char withThis)
BString &
BString_ReplaceAll(BString *String, char replaceThis,
char withThis,
int32 fromOffset)
BString &
BString_Replace(BString *String, char replaceThis,
char withThis,
int32 maxReplaceCount,
int32 fromOffset)
BString &
BString_ReplaceFirst_1
(BString *String, const char *replaceThis,
const char *withThis)
BString &
BString_ReplaceLast_1(BString *String, const char *replaceThis,
const char *withThis)
BString &
BString_ReplaceAll_1(BString *String, const char *replaceThis,
const char *withThis,
int32 fromOffset)
BString &
BString_Replace_1(BString *String, const char *replaceThis,
const char *withThis,
int32 maxReplaceCount,
int32 fromOffset)
BString &
BString_IReplaceFirst(BString *String, char replaceThis,
char withThis)
BString &
BString_IReplaceLast(BString *String, char replaceThis,
char withThis)
BString &
BString_IReplaceAll(BString *String, char replaceThis,
char withThis,
int32 fromOffset)
BString &
BString_IReplace(BString *String, char replaceThis,
char withThis,
int32 maxReplaceCount,
int32 fromOffset)
BString &
BString_IReplaceFirst_1
(BString *String, const char *replaceThis,
const char *withThis)
BString &
BString_IReplaceLast_1(BString *String, const char *replaceThis,
const char *withThis)
BString &
BString_IReplaceAll_1(BString *String, const char *replaceThis,
const char *withThis,
int32 fromOffset)
BString &
BString_IReplace_1(BString *String, const char *replaceThis,
const char *withThis,
int32 maxReplaceCount,
int32 fromOffset)
BString &
BString_ReplaceSet(BString *String, const char *setOfChars,
char with)
BString &
BString_ReplaceSet_1
(BString *String, const char *setOfChars,
const char *with)
char *
BString_LockBuffer(BString *String, int32 maxLength)
BString &
BString_UnlockBuffer(BString *String, int32 length)
BString &
BString_ToLower(BString *String)
BString &
BString_ToUpper(BString *String)
BString &
BString_Capitalize(BString *String)
BString &
BString_CapitalizeEachWord_1
(BString *String)
BString &
BString_CharacterEscape(BString *String, const char *original,
const char *setOfCharsToEscape,
char escapeWith)
BString &
BString_CharacterEscape_1
(BString *String, const char *setOfCharsToEscape,
char escapeWith)
BString &
BString_CharacterDeescape(BString *String, const char *original,
char escapeChar)
BString &
BString_CharacterDeescape_1
(BString *String, char escapeChar)
}
implementation
constructor TString.Create;
begin
inherited;
CPlusObject := BString_Create(Self);
end;
{constructor TString.Create_1(value:PChar);
begin
inherited;
CPlusObject := BString_Create_1(Self,value);
end;
}
destructor TString.Destroy;
begin
if CPlusObject <> nil then
BString_Free(CPlusObject);
inherited;
end;
function TString.CountChars : integer;
begin
result:=BString_CountChars(CPlusObject);
end;
function TString.length : integer;
begin
result:=BString_Length(CPlusObject);
end;
function TString.String_pchar : PChar;
begin
result:=BString_String(CPlusObject);
end;
procedure TString.SetTo(value:PChar; lenght : cardinal);
begin
BString_SetTo(CPlusObject,value,lenght);
end;
procedure TString.SetTo( from: TString);
begin
BString_SetTo_1(CPlusObject, from);
end;
procedure TString.SetTo( value:TString;length1: cardinal);
begin
BString_SetTo_2(CPlusObject, value,length1);
end;
procedure TString.Adopt( from:TString);
begin
BString_Adopt(CPlusObject, from);
end;
end.

View File

@@ -0,0 +1,346 @@
/* BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Eric Jourde
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _LIST_CPP_
#define _LIST_CPP_
#include "List.h"
#include <beobj.h>
#if defined(__cplusplus)
extern "C" {
#endif
/*
* Method: BList::BList()
* Descr:
*/
TCPlusObject BList_Create( int32 itemsPerBlock)
{
return new BList( itemsPerBlock);
}
/*
* Method: BList::BList()
* Descr:
*/
/*TCPlusObject BList_Create_1
(TPasObject PasObject, const BList &)
{
return new BPList(PasObject, );
}
*/
/*
* Method: BList::~BList()
* Descr:
*/
void BList_Free(BList *List)
{
delete List;
}
/*
* Method: BList::operator=()
* Descr:
*/
/*BList &
BList_operator=(BList *List, const BList &from)
{
return List->operator=(from);
}
*/
/*
* Method: BList::AddItem()
* Descr:
*/
bool
BList_AddItem(BList *List, void *item)
{
return List->AddItem(item);
}
/*
* Method: BList::AddItem()
* Descr:
*/
bool
BList_AddItem_1
(BList *List, void *item,
int32 atIndex)
{
return List->AddItem(item,
atIndex);
}
/*
* Method: BList::AddList()
* Descr:
*/
bool
BList_AddList(BList *List, BList *newItems)
{
return List->AddList(newItems);
}
/*
* Method: BList::AddList()
* Descr:
*/
bool
BList_AddList_1
(BList *List, BList *newItems,
int32 atIndex)
{
return List->AddList(newItems,
atIndex);
}
/*
* Method: BList::RemoveItem()
* Descr:
*/
bool
BList_RemoveItem(BList *List, void *item)
{
return List->RemoveItem(item);
}
/*
* Method: BList::RemoveItem()
* Descr:
*/
void *
BList_RemoveItem_1
(BList *List, int32 index)
{
return List->RemoveItem(index);
}
/*
* Method: BList::RemoveItems()
* Descr:
*/
bool
BList_RemoveItems_2
(BList *List, int32 index,
int32 count)
{
return List->RemoveItems(index,
count);
}
/*
* Method: BList::ReplaceItem()
* Descr:
*/
bool
BList_ReplaceItem(BList *List, int32 index,
void *newItem)
{
return List->ReplaceItem(index,
newItem);
}
/*
* Method: BList::MakeEmpty()
* Descr:
*/
void
BList_MakeEmpty(BList *List)
{
List->MakeEmpty();
}
/*
* Method: BList::SwapItems()
* Descr:
*/
bool
BList_SwapItems(BList *List, int32 indexA,
int32 indexB)
{
return List->SwapItems(indexA,
indexB);
}
/*
* Method: BList::MoveItem()
* Descr:
*/
bool
BList_MoveItem(BList *List, int32 fromIndex,
int32 toIndex)
{
return List->MoveItem(fromIndex,
toIndex);
}
/*
* Method: BList::ItemAt()
* Descr:
*/
void *
BList_ItemAt(BList *List, int32 at)
{
return List->ItemAt(at);
}
/*
* Method: BList::ItemAtFast()
* Descr:
*/
void *
BList_ItemAtFast_1
(BList *List, int32 at)
{
return List->ItemAtFast(at);
}
/*
* Method: BList::FirstItem()
* Descr:
*/
void *
BList_FirstItem(BList *List)
{
return List->FirstItem();
}
/*
* Method: BList::LastItem()
* Descr:
*/
void *
BList_LastItem(BList *List)
{
return List->LastItem();
}
/*
* Method: BList::Items()
* Descr:
*/
void *
BList_Items(BList *List)
{
return List->Items();
}
/*
* Method: BList::HasItem()
* Descr:
*/
bool
BList_HasItem(BList *List, void *item)
{
return List->HasItem(item);
}
/*
* Method: BList::IndexOf()
* Descr:
*/
int32
BList_IndexOf(BList *List, void *item)
{
return List->IndexOf(item);
}
/*
* Method: BList::CountItems()
* Descr:
*/
int32
BList_CountItems(BList *List)
{
return List->CountItems();
}
/*
* Method: BList::IsEmpty()
* Descr:
*/
bool
BList_IsEmpty(BList *List)
{
return List->IsEmpty();
}
/*
* Method: BList::_ReservedList1()
* Descr:
*/
/*void
BList__ReservedList1(BList *List)
{
List->_ReservedList1();
}
*/
/*
* Method: BList::_ReservedList2()
* Descr:
*/
/*void
BList__ReservedList2(BList *List)
{
List->_ReservedList2();
}
*/
/*
* Method: BList::Resize()
* Descr:
*/
/*void
BList_Resize(BList *List, int32 count)
{
List->Resize(count);
}
*/
#if defined(__cplusplus)
}
#endif
#endif /* _LIST_CPP_ */

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,187 @@
{ BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Eric Jourde
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
}
unit List;
interface
uses
beobj, SupportDefs, os;
type
TList = class(TBeObject)
private
public
constructor Create; override;
destructor Destroy; override;
function AddItem(item : pointer): boolean;
function AddItem(item : pointer; atindex : cardinal): boolean;
function AddList(newitem : TCPlusObject): boolean;
function ItemAt(at : cardinal): pointer;
function ItemAtFast(at : cardinal): pointer;
function RemoveItem(item : pointer) : boolean;
function RemoveItem(index : cardinal) : boolean;
function RemoveItems(index,count : cardinal) : boolean;
procedure MakeEmpty;
function FirstItem : pointer;
function LastItem : pointer;
function HasItem (item : pointer) : boolean;
function IndexOf(item : pointer) : cardinal;
function CountItems : cardinal;
function IsEmpty : boolean;
function ReplaceItem(index : cardinal; newItem : pointer): boolean;
function SwapItems(IndexA,IndexB : cardinal) : boolean;
function MoveItem(FromIndex,ToIndex : cardinal) : boolean;
end;
function BList_Create( itemsPerBlock: cardinal) : TCPlusObject; cdecl; external BePascalLibName name 'BList_Create';
procedure BList_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BList_Free';
function BList_AddItem(AObject : TCPlusObject; item : pointer):boolean;cdecl; external BePascalLibName name 'BList_AddItem';
function BList_AddItem(AObject : TCPlusObject; item : pointer; atIndex : cardinal):boolean;cdecl; external BePascalLibName name 'BList_AddItem_1';
function BList_AddList(AObject : TCPlusObject; newitem : TCPlusObject): boolean;cdecl; external BePascalLibName name 'BList_AddList';
function BList_ItemAt(AObject : TCPlusObject; at : cardinal) : pointer;cdecl; external BePascalLibName name 'BList_ItemAt';
function BList_ItemAtFast(AObject : TCPlusObject; at : cardinal) : pointer;cdecl; external BePascalLibName name 'BList_ItemAtFast_1';
function BList_RemoveItem(AObject : TCPlusObject; item : pointer): boolean;cdecl; external BePascalLibName name 'BList_RemoveItem';
function BList_RemoveItem(AObject : TCPlusObject; index : cardinal): boolean;cdecl; external BePascalLibName name 'BList_RemoveItem_1';
function BList_RemoveItems(AObject : TCPlusObject; index,count : cardinal): boolean;cdecl; external BePascalLibName name 'BList_RemoveItems_2';
procedure BList_MakeEmpty(AObject : TCPlusObject);cdecl; external BePascalLibName name 'BList_MakeEmpty';
function BList_FirstItem(AObject : TCPlusObject): pointer; cdecl; external BePascalLibName name 'BList_FirstItem';
function BList_LastItem(AObject : TCPlusObject): pointer; cdecl; external BePascalLibName name 'BList_LastItem';
function BList_HasItem(AObject : TCPlusObject; item : pointer) : boolean; cdecl; external BePascalLibName name 'BList_HasItem';
function BList_IndexOf(AObject : TCPlusObject; item : pointer) : cardinal;cdecl; external BePascalLibName name 'BList_IndexOf';
function BList_CountItems(AObject : TCPlusObject) : cardinal;cdecl; external BePascalLibName name 'BList_CountItems';
function BList_IsEmpty(AObject : TCPlusObject) : boolean;cdecl; external BePascalLibName name 'BList_IsEmpty';
function BList_ReplaceItem(AObject : TCPlusObject; index : cardinal; newItem: pointer): boolean;cdecl; external BePascalLibName name 'BList_ReplaceItem';
function BList_SwapItems(AObject : TCPlusObject; indexA : cardinal; indexB : cardinal) : boolean;cdecl; external BePascalLibName name 'BList_SwapItems';
function BList_MoveItem(AObject : TCPlusObject; fromindex : cardinal; Toindex : cardinal) : boolean;cdecl; external BePascalLibName name 'BList_MoveItem';
implementation
constructor TList.Create;
begin
inherited;
CPlusObject:=BList_Create( 10); // we can't made a parametre under a constructor -> error : init with 10 items per blocks
end;
destructor TList.Destroy;
begin
if CPlusObject <> nil then
BList_Free(CPlusObject);
inherited;
end;
function TList.AddItem(item : pointer): boolean;
begin
result := BList_AddItem(CPlusObject, item );
end;
function TList.AddItem(item : pointer; atindex : cardinal): boolean;
begin
result := BList_AddItem(CPlusObject, item , atindex);
end;
function TList.AddList(newitem : TCPlusObject): boolean;
begin
result:=BList_AddList(CPlusObject, newitem );
end;
function TList.ItemAt(at : cardinal): pointer;
begin
result:=BList_ItemAt(CPlusObject, at );
end;
function TList.ItemAtFast(at : cardinal): pointer;
begin
result:=BList_ItemAtFast(CPlusObject, at );
end;
function TList.RemoveItem(item : pointer) : boolean;
begin
result:=BList_RemoveItem(CPlusObject, item);
end;
function TList.RemoveItem(index : cardinal) : boolean;
begin
result:=BList_RemoveItem(CPlusObject, index);
end;
function TList.RemoveItems(index,count : cardinal) : boolean;
begin
result:=BList_RemoveItems(CPlusObject, index,count);
end;
procedure TList.MakeEmpty;
begin
BList_MakeEmpty(CPlusObject);
end;
function TList.FirstItem : pointer;
begin
result:=BList_FirstItem(CPlusObject);
end;
function TList.LastItem : pointer;
begin
result:=BList_LastItem(CPlusObject);
end;
function TList.HasItem(item : pointer) : boolean;
begin
result:=BList_HasItem(CPlusObject,item);
end;
function TList.IndexOf(item : pointer) : cardinal;
begin
result:=BList_IndexOf(CPlusObject,item);
end;
function TList.CountItems : cardinal;
begin
result:=BList_CountItems(CPlusObject);
end;
function TList.IsEmpty : boolean;
begin
result:=BList_IsEmpty(CPlusObject);
end;
function TList.ReplaceItem(index : cardinal; newItem : pointer): boolean;
begin
result:=BList_ReplaceItem(CPlusObject, index , newItem);
end;
function TList.SwapItems(IndexA,IndexB : cardinal) : boolean;
begin
result:=BList_SwapItems(CPlusObject,indexA,indexB);
end;
function TList.MoveItem(FromIndex,ToIndex : cardinal) : boolean;
begin
result:=BList_MoveItem(CPlusObject,Fromindex,Toindex);
end;
end.