You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(13) |
Sep
(25) |
Oct
(10) |
Nov
(19) |
Dec
(20) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
|
Feb
(206) |
Mar
(43) |
Apr
(25) |
May
(20) |
Jun
(69) |
Jul
(121) |
Aug
(95) |
Sep
(122) |
Oct
(213) |
Nov
(46) |
Dec
(39) |
2006 |
Jan
(28) |
Feb
(57) |
Mar
(21) |
Apr
(7) |
May
(11) |
Jun
(2) |
Jul
(8) |
Aug
(13) |
Sep
(2) |
Oct
(2) |
Nov
(20) |
Dec
(16) |
2007 |
Jan
(9) |
Feb
(15) |
Mar
|
Apr
(4) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
(1) |
Sep
(9) |
Oct
|
Nov
(1) |
Dec
|
2009 |
Jan
|
Feb
|
Mar
(8) |
Apr
(1) |
May
|
Jun
|
Jul
(11) |
Aug
(57) |
Sep
(2) |
Oct
(6) |
Nov
|
Dec
(7) |
2010 |
Jan
(11) |
Feb
(1) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
(2) |
Sep
(27) |
Oct
(3) |
Nov
(7) |
Dec
(1) |
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(10) |
Oct
|
Nov
|
Dec
|
2012 |
Jan
(8) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(3) |
Nov
(1) |
Dec
(1) |
2013 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
(4) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(1) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
(4) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(3) |
Oct
|
Nov
(4) |
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
From: Steven M. <sr...@us...> - 2005-10-26 09:20:32
|
Update of /cvsroot/instantobjects/Source/Tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31192 Modified Files: TestModel.pas TestMockBroker.pas TestIO.dpr TestInstantReferences.pas TestInstantReference.pas TestInstantParts.pas TestInstantPart.pas TestIO.mdx TestIO.mdr Log Message: 1. Added more tests for TInstantParts and TInstantReferences. 2. Moved tests for TInstantElement into TInstantPart and TInstantReference tests and removed the TestInstantElement unit. 3. Minor mods in other test suites. Index: TestInstantParts.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Tests/TestInstantParts.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TestInstantParts.pas 18 Oct 2005 08:37:44 -0000 1.1 --- TestInstantParts.pas 26 Oct 2005 09:20:24 -0000 1.2 *************** *** 143,147 **** procedure TestTInstantExtParts.TearDown; begin - FInstantParts.Clear; FInstantParts := nil; FreeAndNil(FOwner); --- 143,146 ---- *************** *** 383,387 **** procedure TestTinstantEmbParts.TearDown; begin - FInstantParts.Clear; FInstantParts := nil; FreeAndNil(FOwner); --- 382,385 ---- Index: TestMockBroker.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Tests/TestMockBroker.pas,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** TestMockBroker.pas 18 Oct 2005 03:10:19 -0000 1.11 --- TestMockBroker.pas 26 Oct 2005 09:20:24 -0000 1.12 *************** *** 50,54 **** procedure TestBuildDatabase; procedure TestModelFromToResFile; ! procedure TestStoreAndRetrieveAddress; end; --- 50,54 ---- procedure TestBuildDatabase; procedure TestModelFromToResFile; ! procedure TestStoreAndRetrieveProject; end; *************** *** 135,139 **** end; ! procedure TTestMockBroker.TestStoreAndRetrieveAddress; var a: TProject; --- 135,139 ---- end; ! procedure TTestMockBroker.TestStoreAndRetrieveProject; var a: TProject; Index: TestModel.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Tests/TestModel.pas,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** TestModel.pas 18 Oct 2005 03:10:19 -0000 1.5 --- TestModel.pas 26 Oct 2005 09:20:24 -0000 1.6 *************** *** 317,326 **** TPartExternal = class(TInstantObject) {IOMETADATA stored; ! Name: String(30) default; } _Name: TInstantString; private function GetName: string; procedure SetName(const Value: string); published property Name: string read GetName write SetName; end; --- 317,331 ---- TPartExternal = class(TInstantObject) {IOMETADATA stored; ! Name: String(30); ! Category: Reference(TCategory); } ! _Category: TInstantReference; _Name: TInstantString; private + function GetCategory: TCategory; function GetName: string; + procedure SetCategory(Value: TCategory); procedure SetName(const Value: string); published + property Category: TCategory read GetCategory write SetCategory; property Name: string read GetName write SetName; end; *************** *** 997,1000 **** --- 1002,1010 ---- { TPartExternal } + function TPartExternal.GetCategory: TCategory; + begin + Result := _Category.Value as TCategory; + end; + function TPartExternal.GetName: string; begin *************** *** 1002,1005 **** --- 1012,1020 ---- end; + procedure TPartExternal.SetCategory(Value: TCategory); + begin + _Category.Value := Value; + end; + procedure TPartExternal.SetName(const Value: string); begin Index: TestIO.dpr =================================================================== RCS file: /cvsroot/instantobjects/Source/Tests/TestIO.dpr,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** TestIO.dpr 18 Oct 2005 03:10:19 -0000 1.15 --- TestIO.dpr 26 Oct 2005 09:20:24 -0000 1.16 *************** *** 12,16 **** {$ENDIF} Forms, ! GuiTestRunner, fpcunit, testregistry, --- 12,16 ---- {$ENDIF} Forms, ! guitestrunner, fpcunit, testregistry, *************** *** 34,38 **** TestInstantAttributeMap in 'TestInstantAttributeMap.pas', TestInstantAttribute in 'TestInstantAttribute.pas', - TestInstantElement in 'TestInstantElement.pas', TestInstantNumeric in 'TestInstantNumeric.pas', TestInstantInteger in 'TestInstantInteger.pas', --- 34,37 ---- Index: TestInstantPart.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Tests/TestInstantPart.pas,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** TestInstantPart.pas 18 Oct 2005 03:10:19 -0000 1.6 --- TestInstantPart.pas 26 Oct 2005 09:20:24 -0000 1.7 *************** *** 38,42 **** // Test methods for class TInstantPart ! TestTInstantPart = class(TTestCase) private FConn: TInstantMockConnector; --- 38,42 ---- // Test methods for class TInstantPart ! TestTInstantEmbPart = class(TTestCase) private FConn: TInstantMockConnector; *************** *** 49,55 **** --- 49,77 ---- procedure TestAssign; procedure TestAllowOwned; + procedure TestAttach_DetachObject; procedure TestIsChanged; procedure TestIsDefault; procedure TestHasValue; + procedure TestSaveObjectTo_FromStream; + procedure TestUnchanged; + procedure TestValue_Reset; + end; + + TestTInstantExtPart = class(TTestCase) + private + FConn: TInstantMockConnector; + FInstantPart: TInstantPart; + FOwner: TContact; + public + procedure SetUp; override; + procedure TearDown; override; + published + procedure TestAllowOwned; + procedure TestAssign; + procedure TestAttach_DetachObject; + procedure TestHasValue; + procedure TestIsChanged; + procedure TestIsDefault; + procedure TestSaveObjectTo_FromStream; procedure TestUnchanged; procedure TestValue_Reset; *************** *** 58,64 **** implementation ! uses SysUtils, testregistry; ! procedure TestTInstantPart.SetUp; begin FConn := TInstantMockConnector.Create(nil); --- 80,86 ---- implementation ! uses SysUtils, Classes, InstantClasses, testregistry; ! procedure TestTInstantEmbPart.SetUp; begin FConn := TInstantMockConnector.Create(nil); *************** *** 73,77 **** end; ! procedure TestTInstantPart.TearDown; begin FInstantPart := nil; --- 95,99 ---- end; ! procedure TestTInstantEmbPart.TearDown; begin FInstantPart := nil; *************** *** 81,89 **** end; ! procedure TestTInstantPart.TestAssign; var vSource: TInstantPart; vAttrMetadata: TInstantAttributeMetadata; vPart: TAddress; begin vSource := nil; --- 103,112 ---- end; ! procedure TestTInstantEmbPart.TestAssign; var vSource: TInstantPart; vAttrMetadata: TInstantAttributeMetadata; vPart: TAddress; + vCountry: TCountry; begin vSource := nil; *************** *** 99,105 **** --- 122,141 ---- AssertEquals(1, vPart.RefCount); + // Added this to help check for possible memory leakage + vCountry := TCountry.Create(FConn); + try + TAddress(FInstantPart.Value).Country := vCountry; + finally + vCountry.Free; + end; + AssertEquals(1, TAddress(FInstantPart.Value).Country.RefCount); + AssertFalse('vSource HasVal', vSource.HasValue); AssertNotSame(FInstantPart, vSource); vSource.Assign(FInstantPart); + AssertTrue('vSource HasVal', vSource.HasValue); + AssertNotSame(FInstantPart.Value, vSource.Value); + AssertSame(TAddress(FInstantPart.Value).Country, + TAddress(vSource.Value).Country); finally vSource.Free; *************** *** 108,117 **** end; ! procedure TestTInstantPart.TestAllowOwned; begin AssertFalse(FInstantPart.AllowOwned); end; ! procedure TestTInstantPart.TestIsChanged; var vPart: TAddress; --- 144,175 ---- end; ! procedure TestTInstantEmbPart.TestAllowOwned; begin AssertFalse(FInstantPart.AllowOwned); end; ! procedure TestTInstantEmbPart.TestAttach_DetachObject; ! var ! vReturnValue: Boolean; ! vObject: TAddress; ! begin ! vObject := TAddress.Create(FConn); ! vObject.Id := 'Object.Id'; ! AssertEquals('Object RefCount 1', 1, vObject.RefCount); ! ! vReturnValue := FInstantPart.AttachObject(vObject); ! AssertTrue('AttachObject', vReturnValue); ! AssertSame(vObject, FInstantPart.Value); ! AssertTrue('FInstantElement HasValue', FInstantPart.HasValue); ! AssertEquals('Value RefCount 1', 1, FInstantPart.Value.RefCount); ! AssertEquals('Object RefCount 2', 1, vObject.RefCount); ! AssertEquals('Value.Id 1', 'Object.Id', FInstantPart.Value.Id); ! ! vReturnValue := FInstantPart.DetachObject(vObject); ! AssertTrue('DetachObject', vReturnValue); ! AssertEquals('Value.Id 2', '', FInstantPart.Value.Id); ! end; ! ! procedure TestTInstantEmbPart.TestIsChanged; var vPart: TAddress; *************** *** 125,129 **** end; ! procedure TestTInstantPart.TestIsDefault; var vPart: TAddress; --- 183,187 ---- end; ! procedure TestTInstantEmbPart.TestIsDefault; var vPart: TAddress; *************** *** 137,141 **** end; ! procedure TestTInstantPart.TestHasValue; begin AssertFalse(FInstantPart.HasValue); --- 195,199 ---- end; ! procedure TestTInstantEmbPart.TestHasValue; begin AssertFalse(FInstantPart.HasValue); *************** *** 145,149 **** end; ! procedure TestTInstantPart.TestUnchanged; begin FInstantPart.Changed; --- 203,237 ---- end; ! procedure TestTInstantEmbPart.TestSaveObjectTo_FromStream; ! var ! vObject: TAddress; ! vReturnValue: Boolean; ! vStream: TStream; ! begin ! vObject := TAddress.Create(FConn); ! AssertNotNull('Create object', vObject); ! AssertEquals('Object RefCount 1', 1, vObject.RefCount); ! vReturnValue := FInstantPart.AttachObject(vObject); ! AssertTrue('AttachObject', vReturnValue); ! AssertTrue(FInstantPart.HasValue); ! AssertEquals('Value RefCount 1', 1, FInstantPart.Value.RefCount); ! AssertEquals('Object RefCount 2', 1, vObject.RefCount); ! ! vStream := TInstantStream.Create; ! try ! FInstantPart.SaveObjectToStream(vStream); ! AssertTrue('vStream.Size check', vStream.Size > 0); ! FInstantPart.Value := nil; ! AssertFalse(FInstantPart.HasValue); ! vStream.Position := 0; ! FInstantPart.LoadObjectFromStream(vStream); ! AssertTrue(FInstantPart.HasValue); ! AssertEquals('Value RefCount 2', 1, FInstantPart.Value.RefCount); ! finally ! vStream.Free; ! end; ! end; ! ! procedure TestTInstantEmbPart.TestUnchanged; begin FInstantPart.Changed; *************** *** 153,157 **** end; ! procedure TestTInstantPart.TestValue_Reset; var vFirstObj: TInstantObject; --- 241,245 ---- end; ! procedure TestTInstantEmbPart.TestValue_Reset; var vFirstObj: TInstantObject; *************** *** 173,180 **** end; initialization // Register any test cases with the test runner {$IFNDEF CURR_TESTS} ! RegisterTests([TestTInstantPart]); {$ENDIF} --- 261,448 ---- end; + procedure TestTInstantExtPart.SetUp; + begin + FConn := TInstantMockConnector.Create(nil); + FConn.BrokerClass := TInstantMockBroker; + + if InstantModel.ClassMetadatas.Count > 0 then + InstantModel.ClassMetadatas.Clear; + InstantModel.LoadFromResFile(ChangeFileExt(ParamStr(0), '.mdr')); + + FOwner := TContact.Create(FConn); + FInstantPart := FOwner._PartExternal; + end; + + procedure TestTInstantExtPart.TearDown; + begin + FInstantPart := nil; + FreeAndNil(FOwner); + InstantModel.ClassMetadatas.Clear; + FreeAndNil(FConn); + end; + + procedure TestTInstantExtPart.TestAllowOwned; + begin + AssertTrue(FInstantPart.AllowOwned); + end; + + procedure TestTInstantExtPart.TestAssign; + var + vSource: TInstantPart; + vAttrMetadata: TInstantAttributeMetadata; + vPart: TPartExternal; + vCategory: TCategory; + begin + vSource := nil; + + vAttrMetadata := TInstantAttributeMetadata.Create(nil); + try + vAttrMetadata.AttributeClass := TInstantPart; + vSource := TInstantPart.Create(FOwner, vAttrMetadata); + vPart := TPartExternal.Create(FConn); + FInstantPart.Value := vPart; + AssertTrue('Value HasVal', FInstantPart.HasValue); + AssertEquals(1, FInstantPart.Value.RefCount); + AssertEquals(1, vPart.RefCount); + + // Added this to help check for possible memory leakage + vCategory := TCategory.Create(FConn); + try + TPartExternal(FInstantPart.Value).Category := vCategory; + finally + vCategory.Free; + end; + AssertEquals(1, TPartExternal(FInstantPart.Value).Category.RefCount); + + AssertFalse('vSource HasVal', vSource.HasValue); + AssertNotSame(FInstantPart, vSource); + vSource.Assign(FInstantPart); + AssertTrue('vSource HasVal', vSource.HasValue); + AssertNotSame(FInstantPart.Value, vSource.Value); + AssertSame(TPartExternal(FInstantPart.Value).Category, + TPartExternal(vSource.Value).Category); + finally + vSource.Free; + vAttrMetadata.Free; + end; + end; + + procedure TestTInstantExtPart.TestAttach_DetachObject; + var + vReturnValue: Boolean; + vObject: TPartExternal; + begin + vObject := TPartExternal.Create(FConn); + vObject.Id := 'Object.Id'; + AssertEquals('Object RefCount 1', 1, vObject.RefCount); + + vReturnValue := FInstantPart.AttachObject(vObject); + AssertTrue('AttachObject', vReturnValue); + AssertSame(vObject, FInstantPart.Value); + AssertTrue('FInstantElement HasValue', FInstantPart.HasValue); + AssertEquals('Value RefCount 1', 1, FInstantPart.Value.RefCount); + AssertEquals('Object RefCount 2', 1, vObject.RefCount); + AssertEquals('Value.Id 1', 'Object.Id', FInstantPart.Value.Id); + + vReturnValue := FInstantPart.DetachObject(vObject); + AssertTrue('DetachObject', vReturnValue); + AssertEquals('Value.Id 2', '', FInstantPart.Value.Id); + end; + + procedure TestTInstantExtPart.TestHasValue; + begin + AssertFalse(FInstantPart.HasValue); + + FInstantPart.Value := TPartExternal.Create(FConn); + AssertTrue(FInstantPart.HasValue); + end; + + procedure TestTInstantExtPart.TestIsChanged; + var + vPart: TPartExternal; + begin + AssertFalse(FInstantPart.IsChanged); + + vPart := TPartExternal.Create(FConn); + vPart.Changed; + FInstantPart.Value := vPart; + AssertTrue(FInstantPart.IsChanged); + end; + + procedure TestTInstantExtPart.TestIsDefault; + var + vPart: TPartExternal; + begin + AssertTrue(FInstantPart.IsDefault); + + vPart := TPartExternal.Create(FConn); + vPart.Id := 'PartId'; + FInstantPart.Value := vPart; + AssertFalse(FInstantPart.IsDefault); + end; + + procedure TestTInstantExtPart.TestSaveObjectTo_FromStream; + var + vObject: TPartExternal; + vReturnValue: Boolean; + vStream: TStream; + begin + vObject := TPartExternal.Create(FConn); + AssertNotNull('Create object', vObject); + AssertEquals('Object RefCount 1', 1, vObject.RefCount); + vReturnValue := FInstantPart.AttachObject(vObject); + AssertTrue('AttachObject', vReturnValue); + AssertTrue(FInstantPart.HasValue); + AssertEquals('Value RefCount 1', 1, FInstantPart.Value.RefCount); + AssertEquals('Object RefCount 2', 1, vObject.RefCount); + + vStream := TInstantStream.Create; + try + FInstantPart.SaveObjectToStream(vStream); + AssertTrue('vStream.Size check', vStream.Size > 0); + FInstantPart.Value := nil; + AssertFalse(FInstantPart.HasValue); + vStream.Position := 0; + FInstantPart.LoadObjectFromStream(vStream); + AssertTrue(FInstantPart.HasValue); + AssertEquals('Value RefCount 2', 1, FInstantPart.Value.RefCount); + finally + vStream.Free; + end; + end; + + procedure TestTInstantExtPart.TestUnchanged; + begin + FInstantPart.Changed; + AssertTrue(FInstantPart.IsChanged); + FInstantPart.Unchanged; + AssertFalse(FInstantPart.IsChanged); + end; + + procedure TestTInstantExtPart.TestValue_Reset; + var + vFirstObj: TInstantObject; + vSecondObj: TInstantObject; + begin + AssertFalse('HasValue 1', FInstantPart.HasValue); + AssertNotNull('AssertNotNull', FInstantPart.Value); + AssertTrue('HasValue 2', FInstantPart.HasValue); + vFirstObj := FInstantPart.Value; + + vSecondObj := TPartExternal.Create(FConn); + vSecondObj.Id := 'PartId'; + FInstantPart.Value := vSecondObj; + AssertEquals('Value.Id', 'PartId', FInstantPart.Value.Id); + AssertNotSame('AssertNotSame', vFirstObj, FInstantPart.Value); + + FInstantPart.Reset; + AssertFalse('HasValue 3', FInstantPart.HasValue); + end; + initialization // Register any test cases with the test runner {$IFNDEF CURR_TESTS} ! RegisterTests([TestTInstantEmbPart, ! TestTInstantExtPart]); {$ENDIF} Index: TestIO.mdr =================================================================== RCS file: /cvsroot/instantobjects/Source/Tests/TestIO.mdr,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvswi7fyF and /tmp/cvsO5zcB6 differ Index: TestInstantReference.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Tests/TestInstantReference.pas,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** TestInstantReference.pas 18 Oct 2005 03:10:19 -0000 1.4 --- TestInstantReference.pas 26 Oct 2005 09:20:24 -0000 1.5 *************** *** 48,57 **** published procedure TestAssign; procedure TestDestroyObject_HasReference_HasValue; procedure TestLoadObjectFromStream; procedure TestObjectClass_ObjectClassName_ObjectId; ! procedure TestReferenceObject; ! procedure TestReferenceObject1; procedure TestReset; end; --- 48,60 ---- published procedure TestAssign; + procedure TestAttach_DetachObject; procedure TestDestroyObject_HasReference_HasValue; + procedure TestHasValue; procedure TestLoadObjectFromStream; procedure TestObjectClass_ObjectClassName_ObjectId; ! procedure TestReferenceObject_Class; ! procedure TestReferenceObject_ClassName; procedure TestReset; + procedure TestSaveObjectTo_FromStream; end; *************** *** 94,98 **** --- 97,103 ---- try vCategory := TCategory.Create(FConn); + AssertEquals(0, vCategory.ReferencedBy.Count); FInstantReference.Value := vCategory; + AssertEquals(1, vCategory.ReferencedBy.Count); AssertTrue('Value HasVal', FInstantReference.HasValue); AssertTrue('Value HasReference', FInstantReference.HasReference); *************** *** 100,103 **** --- 105,110 ---- AssertFalse('vSource HasVal', vSource.HasValue); vSource.Assign(FInstantReference); + AssertEquals(2, vCategory.ReferencedBy.Count); + AssertEquals(3, vCategory.RefCount); AssertTrue('Assign HasVal', vSource.HasValue); AssertTrue('Assign HasReference', vSource.HasReference); *************** *** 110,113 **** --- 117,148 ---- end; + procedure TestTInstantReference.TestAttach_DetachObject; + var + vReturnValue: Boolean; + vObject: TCategory; + begin + vObject := TCategory.Create(FConn); + try + vObject.Id := 'Object.Id'; + AssertEquals('Object RefCount 1', 1, vObject.RefCount); + + vReturnValue := FInstantReference.AttachObject(vObject); + AssertTrue('AttachObject', vReturnValue); + AssertSame(vObject, FInstantReference.Value); + AssertTrue('HasReference 1', FInstantReference.HasReference); + AssertTrue('HasValue 1', FInstantReference.HasValue); + AssertEquals('Value RefCount 1', 2, FInstantReference.Value.RefCount); + AssertEquals('Object RefCount 2', 2, vObject.RefCount); + AssertEquals('Value.Id 1', 'Object.Id', FInstantReference.Value.Id); + + vReturnValue := FInstantReference.DetachObject(vObject); + AssertTrue('DetachObject', vReturnValue); + AssertFalse('HasReference 2', FInstantReference.HasReference); + AssertFalse('HasValue 2', FInstantReference.HasValue); + finally + vObject.Free; + end; + end; + procedure TestTInstantReference.TestDestroyObject_HasReference_HasValue; var *************** *** 132,135 **** --- 167,175 ---- end; + procedure TestTInstantReference.TestHasValue; + begin + AssertFalse(FInstantReference.HasValue); + end; + procedure TestTInstantReference.TestLoadObjectFromStream; var *************** *** 165,168 **** --- 205,209 ---- FInstantReference.Value.RefCount); AssertNotSame('Same Object??', vObject, FInstantReference.Value); + // Not the same object, so free it. AssertEquals('Object RefCount 4', 1, vObject.RefCount); finally *************** *** 194,198 **** end; ! procedure TestTInstantReference.TestReferenceObject; var vObjectId: string; --- 235,239 ---- end; ! procedure TestTInstantReference.TestReferenceObject_Class; var vObjectId: string; *************** *** 209,213 **** end; ! procedure TestTInstantReference.TestReferenceObject1; var vObjectId: string; --- 250,254 ---- end; ! procedure TestTInstantReference.TestReferenceObject_ClassName; var vObjectId: string; *************** *** 246,249 **** --- 287,327 ---- end; + procedure TestTInstantReference.TestSaveObjectTo_FromStream; + var + vObject: TCategory; + vReturnValue: Boolean; + vStream: TStream; + begin + vObject := TCategory.Create(FConn); + try + AssertNotNull('Create object', vObject); + AssertEquals('Object RefCount 1', 1, vObject.RefCount); + vReturnValue := FInstantReference.AttachObject(vObject); + AssertTrue('AttachObject', vReturnValue); + AssertTrue('HasValue 1', FInstantReference.HasValue); + AssertTrue('HasReference 1', FInstantReference.HasReference); + AssertEquals('Value RefCount 1', 2, FInstantReference.Value.RefCount); + AssertEquals('Object RefCount 2', 2, vObject.RefCount); + + vStream := TInstantStream.Create; + try + FInstantReference.SaveObjectToStream(vStream); + AssertTrue('vStream.Size check', vStream.Size > 0); + FInstantReference.Value := nil; + AssertFalse('HasValue 2', FInstantReference.HasValue); + AssertFalse('HasReference 2', FInstantReference.HasReference); + vStream.Position := 0; + FInstantReference.LoadObjectFromStream(vStream); + AssertTrue('HasValue 3', FInstantReference.HasValue); + AssertTrue('HasReference 3', FInstantReference.HasReference); + AssertEquals('Value RefCount 2', 1, FInstantReference.Value.RefCount); + finally + vStream.Free; + end; + finally + vObject.Free; + end; + end; + initialization // Register any test cases with the test runner Index: TestIO.mdx =================================================================== RCS file: /cvsroot/instantobjects/Source/Tests/TestIO.mdx,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TestIO.mdx 18 Oct 2005 03:10:19 -0000 1.3 --- TestIO.mdx 26 Oct 2005 09:20:24 -0000 1.4 *************** *** 1 **** ! <TInstantClassMetadatas><TInstantClassMetadata><Name>TAddress</Name><Persistence>peEmbedded</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>City</Name><AttributeType>atString</AttributeType><IsIndexed>TRUE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Country</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCountry</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>State</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>4</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Street</Name><AttributeType>atMemo</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Zip</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>10</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TCountry</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TPhone</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>20</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Number</Name><AttributeType>atString</AttributeType><EditMask>(000) 000-0000;0;_</EditMask><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>20</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TEmail</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Address</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>100</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TCategory</Name><Persistence>peStored</Persistence><StorageName>Categories</StorageName><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TContact</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Address</Name><AttributeType>atPart</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TAddress</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Category</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCategory</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>City</Name><AttributeType>atString</AttributeType><IsIndexed>TRUE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>TRUE</IsIndexed><IsRequired>FALSE</IsRequired><Size>50</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Phones</Name><AttributeType>atParts</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TPhone</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Projects</Name><AttributeType>atReferences</AttributeType><ExternalStorageName>Contact_Projects</ExternalStorageName><StorageKind>skExternal</StorageKind><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TProject</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>PartExternal</Name><AttributeType>atPart</AttributeType><StorageKind>skExternal</StorageKind><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TPartExternal</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>ExternalParts</Name><AttributeType>atParts</AttributeType><ExternalStorageName>Contact_ExternalParts</ExternalStorageName><StorageKind>skExternal</StorageKind><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TPartsExternal</ObjectClassName></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TContactFilter</Name><ParentName>TContact</ParentName><Persistence>peEmbedded</Persistence><AttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TPerson</Name><ParentName>TContact</ParentName><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>BirthDate</Name><AttributeType>atDateTime</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Emails</Name><AttributeType>atParts</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TEmail</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Employer</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCompany</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Picture</Name><AttributeType>atBlob</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Salary</Name><AttributeType>atCurrency</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Employed</Name><AttributeType>atBoolean</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>AL_hours</Name><AttributeType>atFloat</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TCompany</Name><ParentName>TContact</ParentName><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Employees</Name><AttributeType>atReferences</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TPerson</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>NoOfBranches</Name><AttributeType>atInteger</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TProject</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TPartExternal</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TPartsExternal</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata></TInstantClassMetadatas> \ No newline at end of file --- 1 ---- ! <TInstantClassMetadatas><TInstantClassMetadata><Name>TAddress</Name><Persistence>peEmbedded</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>City</Name><AttributeType>atString</AttributeType><IsIndexed>TRUE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Country</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCountry</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>State</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>4</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Street</Name><AttributeType>atMemo</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Zip</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>10</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TCountry</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TPhone</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>20</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Number</Name><AttributeType>atString</AttributeType><EditMask>(000) 000-0000;0;_</EditMask><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>20</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TEmail</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Address</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>100</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TCategory</Name><Persistence>peStored</Persistence><StorageName>Categories</StorageName><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TContact</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Address</Name><AttributeType>atPart</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TAddress</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Category</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCategory</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>City</Name><AttributeType>atString</AttributeType><IsIndexed>TRUE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>TRUE</IsIndexed><IsRequired>FALSE</IsRequired><Size>50</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Phones</Name><AttributeType>atParts</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TPhone</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Projects</Name><AttributeType>atReferences</AttributeType><ExternalStorageName>Contact_Projects</ExternalStorageName><StorageKind>skExternal</StorageKind><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TProject</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>PartExternal</Name><AttributeType>atPart</AttributeType><StorageKind>skExternal</StorageKind><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TPartExternal</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>ExternalParts</Name><AttributeType>atParts</AttributeType><ExternalStorageName>Contact_ExternalParts</ExternalStorageName><StorageKind>skExternal</StorageKind><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TPartsExternal</ObjectClassName></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TContactFilter</Name><ParentName>TContact</ParentName><Persistence>peEmbedded</Persistence><AttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TPerson</Name><ParentName>TContact</ParentName><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>BirthDate</Name><AttributeType>atDateTime</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Emails</Name><AttributeType>atParts</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TEmail</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Employer</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCompany</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Picture</Name><AttributeType>atBlob</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Salary</Name><AttributeType>atCurrency</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Employed</Name><AttributeType>atBoolean</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>AL_hours</Name><AttributeType>atFloat</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TCompany</Name><ParentName>TContact</ParentName><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Employees</Name><AttributeType>atReferences</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TPerson</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>NoOfBranches</Name><AttributeType>atInteger</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TProject</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TPartExternal</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Category</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCategory</ObjectClassName></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TPartsExternal</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata></TInstantClassMetadatas> \ No newline at end of file Index: TestInstantReferences.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Tests/TestInstantReferences.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TestInstantReferences.pas 18 Oct 2005 08:37:44 -0000 1.1 --- TestInstantReferences.pas 26 Oct 2005 09:20:24 -0000 1.2 *************** *** 50,53 **** --- 50,114 ---- end; + // Test methods for class TInstantReferences + TestTInstantEmbReferences = class(TTestCase) + private + FConn: TInstantMockConnector; + FInstantReferences: TInstantReferences; + FOwner: TCompany; + function RefsEmbeddedCompare(Holder, Obj1, Obj2: TInstantObject): Integer; + public + procedure SetUp; override; + procedure TearDown; override; + published + procedure TestAdd; + procedure TestAssign; + procedure TestAttachObject; + procedure TestClear; + procedure TestDelete; + procedure TestDestroyObject; + procedure TestDetachObject; + procedure TestExchange; + procedure TestHasItem; + procedure TestIndexOfInstance; + procedure TestIndexOf_Insert; + procedure TestLoadReferencesTo_FromStream; + procedure TestMove; + procedure TestRemove; + procedure TestReset; + procedure TestSaveObjectsTo_FromStream; + procedure TestSort; + procedure TestUnchanged; + end; + + TestTInstantExtReferences = class(TTestCase) + private + FConn: TInstantMockConnector; + FInstantReferences: TInstantReferences; + FOwner: TCompany; + function RefsExternalCompare(Holder, Obj1, Obj2: TInstantObject): Integer; + public + procedure SetUp; override; + procedure TearDown; override; + published + procedure TestAdd; + procedure TestAssign; + procedure TestAttachObject; + procedure TestClear; + procedure TestDelete; + procedure TestDestroyObject; + procedure TestDetachObject; + procedure TestExchange; + procedure TestHasItem; + procedure TestIndexOfInstance; + procedure TestIndexOf_Insert; + procedure TestLoadReferencesTo_FromStream; + procedure TestMove; + procedure TestRemove; + procedure TestReset; + procedure TestSaveObjectsTo_FromStream; + procedure TestSort; + procedure TestUnchanged; + end; + implementation *************** *** 68,72 **** procedure TestTInstantReferences_Leak.TearDown; begin - // FInstantParts.Clear; FInstantReferences := nil; FreeAndNil(FOwner); --- 129,132 ---- *************** *** 125,140 **** end; initialization // Register any test cases with the test runner {$IFNDEF CURR_TESTS} ! RegisterTests([//TestTInstantExtReferences, ! //TestTinstantEmbReferences, TestTInstantReferences_Leak]); - {$ELSE} - RegisterTests([//TestTInstantExtReferences, - //TestTinstantEmbReferences, - TestTInstantReferences_Leak - ]); {$ENDIF} --- 185,790 ---- end; + function TestTInstantEmbReferences.RefsEmbeddedCompare(Holder, Obj1, Obj2: + TInstantObject): Integer; + var + vObj1, vObj2: TPerson; + begin + vObj1 := Obj1 as TPerson; + vObj2 := Obj2 as TPerson; + + Result := AnsiCompareText(vObj1.Name, vObj2.Name); + end; + + procedure TestTInstantEmbReferences.SetUp; + var + i: Integer; + Person: TPerson; + begin + FConn := TInstantMockConnector.Create(nil); + FConn.BrokerClass := TInstantMockBroker; + + if InstantModel.ClassMetadatas.Count > 0 then + InstantModel.ClassMetadatas.Clear; + InstantModel.LoadFromResFile(ChangeFileExt(ParamStr(0), '.mdr')); + + FOwner := TCompany.Create(FConn); + FInstantReferences := FOwner._Employees; + for i := 0 to 2 do + begin + Person := TPerson.Create(FConn); + try + FOwner.AddEmployee(Person); + finally + Person.Free; + end; + end; + AssertEquals('Setup FInstantReferences.Count', 3, FInstantReferences.Count); + end; + + procedure TestTInstantEmbReferences.TearDown; + begin + FInstantReferences := nil; + FreeAndNil(FOwner); + InstantModel.ClassMetadatas.Clear; + FreeAndNil(FConn); + end; + + procedure TestTInstantEmbReferences.TestAdd; + var + vReturnValue: Integer; + vPerson: TPerson; + begin + vPerson := TPerson.Create(FConn); + try + vReturnValue := FInstantReferences.Add(vPerson); + AssertTrue(vReturnValue <> -1); + AssertEquals(4, FInstantReferences.Count); + finally + vPerson.Free; + end; + end; + + procedure TestTInstantEmbReferences.TestAssign; + var + vSource: TInstantReferences; + vAttrMetadata: TInstantAttributeMetadata; + begin + vSource := nil; + + vAttrMetadata := TInstantAttributeMetadata.Create(nil); + try + vAttrMetadata.AttributeClass := TInstantReferences; + vSource := TInstantReferences.Create(FOwner, vAttrMetadata); + + AssertTrue(vSource.Count = 0); + vSource.Assign(FInstantReferences); + AssertTrue(vSource.Count = 3); + AssertSame(FInstantReferences.Items[0], vSource.Items[0]); + finally + vSource.Free; + vAttrMetadata.Free; + end; + end; + + procedure TestTInstantEmbReferences.TestAttachObject; + var + vReturnValue: Boolean; + vPerson: TPerson; + begin + vPerson := TPerson.Create(FConn); + try + vReturnValue := FInstantReferences.AttachObject(vPerson); + AssertTrue(vReturnValue); + AssertEquals(4, FInstantReferences.Count); + finally + vPerson.Free; + end; + end; + + procedure TestTInstantEmbReferences.TestClear; + begin + FInstantReferences.Clear; + AssertEquals(0, FInstantReferences.Count); + end; + + procedure TestTInstantEmbReferences.TestDelete; + begin + FInstantReferences.Delete(1); + AssertEquals(2, FInstantReferences.Count); + end; + + procedure TestTInstantEmbReferences.TestDestroyObject; + begin + AssertTrue(FInstantReferences.HasItem(1)); + + FInstantReferences.DestroyObject(1); + AssertFalse(FInstantReferences.HasItem(1)); + end; + + procedure TestTInstantEmbReferences.TestDetachObject; + var + vReturnValue: Boolean; + begin + vReturnValue := FInstantReferences.DetachObject(FInstantReferences.Items[1]); + AssertTrue(vReturnValue); + AssertEquals(2, FInstantReferences.Count); + end; + + procedure TestTInstantEmbReferences.TestExchange; + begin + TPerson(FInstantReferences.Items[0]).Name := 'Ref0'; + TPerson(FInstantReferences.Items[1]).Name := 'Ref1'; + TPerson(FInstantReferences.Items[2]).Name := 'Ref2'; + FInstantReferences.Exchange(0, 2); + AssertEquals('Ref2', TPerson(FInstantReferences.Items[0]).Name); + AssertEquals('Ref1', TPerson(FInstantReferences.Items[1]).Name); + AssertEquals('Ref0', TPerson(FInstantReferences.Items[2]).Name); + end; + + procedure TestTInstantEmbReferences.TestHasItem; + var + vReturnValue: Boolean; + begin + vReturnValue := FInstantReferences.HasItem(1); + AssertTrue(vReturnValue); + + FInstantReferences.DestroyObject(1); + vReturnValue := FInstantReferences.HasItem(1); + AssertFalse(vReturnValue); + end; + + procedure TestTInstantEmbReferences.TestIndexOfInstance; + var + vReturnValue: Integer; + vInstance: Pointer; + begin + vInstance := TPerson.Create(FConn); + try + FInstantReferences.Insert(1, vInstance); + vReturnValue := FInstantReferences.IndexOfInstance(vInstance); + AssertEquals(1, vReturnValue); + finally + TObject(vInstance).Free; + end; + end; + + procedure TestTInstantEmbReferences.TestIndexOf_Insert; + var + vReturnValue: Integer; + vObject: TInstantObject; + begin + vObject := TPerson.Create(FConn); + try + FInstantReferences.Insert(1, vObject); + vReturnValue := FInstantReferences.IndexOf(vObject); + AssertEquals(1, vReturnValue); + finally + vObject.Free; + end; + end; + + procedure TestTInstantEmbReferences.TestLoadReferencesTo_FromStream; + var + vStream: TStream; + begin + vStream := TMemoryStream.Create; + try + AssertEquals(0, vStream.Size); + FInstantReferences.SaveReferencesToStream(vStream); + AssertTrue(vStream.Size > 0); + FInstantReferences.Clear; + AssertEquals(0, FInstantReferences.Count); + + vStream.Position := 0; + FInstantReferences.LoadReferencesFromStream(vStream); + AssertEquals(3, FInstantReferences.Count); + finally + vStream.Free; + end; + end; + + procedure TestTInstantEmbReferences.TestMove; + var + vPerson: TPerson; + begin + TPerson(FInstantReferences.Items[0]).Name := 'Ref0'; + TPerson(FInstantReferences.Items[1]).Name := 'Ref1'; + TPerson(FInstantReferences.Items[2]).Name := 'Ref2'; + vPerson := TPerson.Create(FConn); + try + FInstantReferences.Add(vPerson); + finally + vPerson.Free; + end; + TPerson(FInstantReferences.Items[3]).Name := 'Ref3'; + FInstantReferences.Move(0, 2); + AssertEquals('Ref1', TPerson(FInstantReferences.Items[0]).Name); + AssertEquals('Ref2', TPerson(FInstantReferences.Items[1]).Name); + AssertEquals('Ref0', TPerson(FInstantReferences.Items[2]).Name); + AssertEquals('Ref3', TPerson(FInstantReferences.Items[3]).Name); + end; + + procedure TestTInstantEmbReferences.TestRemove; + var + vReturnValue: Integer; + begin + vReturnValue := FInstantReferences.Remove(FInstantReferences.Items[1]); + AssertEquals(1, vReturnValue); + AssertEquals(2, FInstantReferences.Count); + end; + + procedure TestTInstantEmbReferences.TestReset; + begin + FInstantReferences.Reset; + AssertEquals(0, FInstantReferences.Count); + end; + + procedure TestTInstantEmbReferences.TestSaveObjectsTo_FromStream; + var + vStream: TStream; + vObject: TInstantObject; + begin + vStream := TMemoryStream.Create; + try + AssertEquals(0, vStream.Size); + FInstantReferences.SaveObjectsToStream(vStream); + AssertTrue(vStream.Size > 0); + vObject := FInstantReferences[0]; + AssertEquals('vObject.RefCount 1', 1, vObject.RefCount); + FInstantReferences.Clear; + AssertEquals(0, FInstantReferences.Count); + + vStream.Position := 0; + FInstantReferences.LoadObjectsFromStream(vStream); + AssertEquals(3, FInstantReferences.Count); + vObject := FInstantReferences[0]; + AssertEquals('vObject.RefCount 2', 1, vObject.RefCount); + finally + vStream.Free; + end; + end; + + procedure TestTInstantEmbReferences.TestSort; + var + vPerson: TPerson; + begin + TPerson(FInstantReferences.Items[0]).Name := '2 Ref'; + TPerson(FInstantReferences.Items[1]).Name := '0 Ref'; + TPerson(FInstantReferences.Items[2]).Name := '1 Ref'; + vPerson := TPerson.Create(FConn); + try + FOwner.AddEmployee(vPerson); + finally + vPerson.Free; + end; + TPerson(FInstantReferences.Items[3]).Name := '0 Ref'; + + FInstantReferences.Sort(RefsEmbeddedCompare); + AssertEquals('0 Ref', TPerson(FInstantReferences.Items[0]).Name); + AssertEquals('0 Ref', TPerson(FInstantReferences.Items[1]).Name); + AssertEquals('1 Ref', TPerson(FInstantReferences.Items[2]).Name); + AssertEquals('2 Ref', TPerson(FInstantReferences.Items[3]).Name); + end; + + procedure TestTInstantEmbReferences.TestUnchanged; + begin + AssertEquals(3, FInstantReferences.Count); + AssertTrue(FInstantReferences.IsChanged); + + FInstantReferences.Unchanged; + AssertFalse(FInstantReferences.IsChanged); + + TPerson(FInstantReferences.Items[1]).Name := 'Ref2'; + AssertFalse(FInstantReferences.IsChanged); + + FInstantReferences.Delete(1); + AssertTrue(FInstantReferences.IsChanged); + end; + + function TestTInstantExtReferences.RefsExternalCompare(Holder, Obj1, Obj2: + TInstantObject): Integer; + var + vObj1, vObj2: TProject; + begin + vObj1 := Obj1 as TProject; + vObj2 := Obj2 as TProject; + + Result := AnsiCompareText(vObj1.Name, vObj2.Name); + end; + + { TestTInstantExtReferences } + + procedure TestTInstantExtReferences.SetUp; + var + i: Integer; + Project: TProject; + begin + FConn := TInstantMockConnector.Create(nil); + FConn.BrokerClass := TInstantMockBroker; + + if InstantModel.ClassMetadatas.Count > 0 then + InstantModel.ClassMetadatas.Clear; + InstantModel.LoadFromResFile(ChangeFileExt(ParamStr(0), '.mdr')); + + FOwner := TCompany.Create(FConn); + FInstantReferences := FOwner._Projects; + for i := 0 to 2 do + begin + Project := TProject.Create(FConn); + try + FOwner.AddProject(Project); + finally + Project.Free; + end; + end; + AssertEquals('Setup FInstantReferences.Count', 3, FInstantReferences.Count); + end; + + procedure TestTInstantExtReferences.TearDown; + begin + FInstantReferences := nil; + FreeAndNil(FOwner); + InstantModel.ClassMetadatas.Clear; + FreeAndNil(FConn); + end; + + procedure TestTInstantExtReferences.TestAdd; + var + vReturnValue: Integer; + vProject: TProject; + begin + vProject := TProject.Create(FConn); + try + vReturnValue := FInstantReferences.Add(vProject); + AssertTrue(vReturnValue <> -1); + AssertEquals(4, FInstantReferences.Count); + finally + vProject.Free; + end; + end; + + procedure TestTInstantExtReferences.TestAssign; + var + vSource: TInstantReferences; + vAttrMetadata: TInstantAttributeMetadata; + begin + vSource := nil; + + vAttrMetadata := TInstantAttributeMetadata.Create(nil); + try + vAttrMetadata.AttributeClass := TInstantReferences; + vSource := TInstantReferences.Create(FOwner, vAttrMetadata); + + AssertTrue(vSource.Count = 0); + vSource.Assign(FInstantReferences); + AssertTrue(vSource.Count = 3); + AssertSame(FInstantReferences.Items[0], vSource.Items[0]); + finally + vSource.Free; + vAttrMetadata.Free; + end; + end; + + procedure TestTInstantExtReferences.TestAttachObject; + var + vReturnValue: Boolean; + vProject: TProject; + begin + vProject := TProject.Create(FConn); + try + vReturnValue := FInstantReferences.AttachObject(vProject); + AssertTrue(vReturnValue); + AssertEquals(4, FInstantReferences.Count); + finally + vProject.Free; + end; + end; + + procedure TestTInstantExtReferences.TestClear; + begin + FInstantReferences.Clear; + AssertEquals(0, FInstantReferences.Count); + end; + + procedure TestTInstantExtReferences.TestDelete; + begin + FInstantReferences.Delete(1); + AssertEquals(2, FInstantReferences.Count); + end; + + procedure TestTInstantExtReferences.TestDestroyObject; + begin + AssertTrue(FInstantReferences.HasItem(1)); + + FInstantReferences.DestroyObject(1); + AssertFalse(FInstantReferences.HasItem(1)); + end; + + procedure TestTInstantExtReferences.TestDetachObject; + var + vReturnValue: Boolean; + begin + vReturnValue := FInstantReferences.DetachObject(FInstantReferences.Items[1]); + AssertTrue(vReturnValue); + AssertEquals(2, FInstantReferences.Count); + end; + + procedure TestTInstantExtReferences.TestExchange; + begin + TProject(FInstantReferences.Items[0]).Name := 'Ref0'; + TProject(FInstantReferences.Items[1]).Name := 'Ref1'; + TProject(FInstantReferences.Items[2]).Name := 'Ref2'; + FInstantReferences.Exchange(0, 2); + AssertEquals('Ref2', TProject(FInstantReferences.Items[0]).Name); + AssertEquals('Ref1', TProject(FInstantReferences.Items[1]).Name); + AssertEquals('Ref0', TProject(FInstantReferences.Items[2]).Name); + end; + + procedure TestTInstantExtReferences.TestHasItem; + var + vReturnValue: Boolean; + begin + vReturnValue := FInstantReferences.HasItem(1); + AssertTrue(vReturnValue); + + FInstantReferences.DestroyObject(1); + vReturnValue := FInstantReferences.HasItem(1); + AssertFalse(vReturnValue); + end; + + procedure TestTInstantExtReferences.TestIndexOfInstance; + var + vReturnValue: Integer; + vInstance: Pointer; + begin + vInstance := TProject.Create(FConn); + try + FInstantReferences.Insert(1, vInstance); + vReturnValue := FInstantReferences.IndexOfInstance(vInstance); + AssertEquals(1, vReturnValue); + finally + TObject(vInstance).Free; + end; + end; + + procedure TestTInstantExtReferences.TestIndexOf_Insert; + var + vReturnValue: Integer; + vObject: TInstantObject; + begin + vObject := TProject.Create(FConn); + try + FInstantReferences.Insert(1, vObject); + vReturnValue := FInstantReferences.IndexOf(vObject); + AssertEquals(1, vReturnValue); + finally + vObject.Free; + end; + end; + + procedure TestTInstantExtReferences.TestLoadReferencesTo_FromStream; + var + vStream: TStream; + begin + vStream := TMemoryStream.Create; + try + AssertEquals(0, vStream.Size); + FInstantReferences.SaveReferencesToStream(vStream); + AssertTrue(vStream.Size > 0); + FInstantReferences.Clear; + AssertEquals(0, FInstantReferences.Count); + + vStream.Position := 0; + FInstantReferences.LoadReferencesFromStream(vStream); + AssertEquals(3, FInstantReferences.Count); + finally + vStream.Free; + end; + end; + + procedure TestTInstantExtReferences.TestMove; + var + vProject: TProject; + begin + TProject(FInstantReferences.Items[0]).Name := 'Ref0'; + TProject(FInstantReferences.Items[1]).Name := 'Ref1'; + TProject(FInstantReferences.Items[2]).Name := 'Ref2'; + vProject := TProject.Create(FConn); + try + FInstantReferences.Add(vProject); + finally + vProject.Free; + end; + TProject(FInstantReferences.Items[3]).Name := 'Ref3'; + FInstantReferences.Move(0, 2); + AssertEquals('Ref1', TProject(FInstantReferences.Items[0]).Name); + AssertEquals('Ref2', TProject(FInstantReferences.Items[1]).Name); + AssertEquals('Ref0', TProject(FInstantReferences.Items[2]).Name); + AssertEquals('Ref3', TProject(FInstantReferences.Items[3]).Name); + end; + + procedure TestTInstantExtReferences.TestRemove; + var + vReturnValue: Integer; + begin + vReturnValue := FInstantReferences.Remove(FInstantReferences.Items[1]); + AssertEquals(1, vReturnValue); + AssertEquals(2, FInstantReferences.Count); + end; + + procedure TestTInstantExtReferences.TestReset; + begin + FInstantReferences.Reset; + AssertEquals(0, FInstantReferences.Count); + end; + + procedure TestTInstantExtReferences.TestSaveObjectsTo_FromStream; + var + vStream: TStream; + vObject: TInstantObject; + begin + vStream := TMemoryStream.Create; + try + AssertEquals(0, vStream.Size); + FInstantReferences.SaveObjectsToStream(vStream); + AssertTrue(vStream.Size > 0); + vObject := FInstantReferences[0]; + AssertEquals('vObject.RefCount 1', 1, vObject.RefCount); + FInstantReferences.Clear; + AssertEquals(0, FInstantReferences.Count); + + vStream.Position := 0; + FInstantReferences.LoadObjectsFromStream(vStream); + AssertEquals(3, FInstantReferences.Count); + vObject := FInstantReferences[0]; + AssertEquals('vObject.RefCount 2', 1, vObject.RefCount); + finally + vStream.Free; + end; + end; + + procedure TestTInstantExtReferences.TestSort; + var + vProject: TProject; + begin + TProject(FInstantReferences.Items[0]).Name := '2 Ref'; + TProject(FInstantReferences.Items[1]).Name := '0 Ref'; + TProject(FInstantReferences.Items[2]).Name := '1 Ref'; + vProject := TProject.Create(FConn); + try + FOwner.AddProject(vProject); + finally + vProject.Free; + end; + TProject(FInstantReferences.Items[3]).Name := '0 Ref'; + + FInstantReferences.Sort(RefsExternalCompare); + AssertEquals('0 Ref', TProject(FInstantReferences.Items[0]).Name); + AssertEquals('0 Ref', TProject(FInstantReferences.Items[1]).Name); + AssertEquals('1 Ref', TProject(FInstantReferences.Items[2]).Name); + AssertEquals('2 Ref', TProject(FInstantReferences.Items[3]).Name); + end; + + ... [truncated message content] |
From: Steven M. <sr...@us...> - 2005-10-26 09:13:23
|
Update of /cvsroot/instantobjects/Source/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29121 Modified Files: InstantPersistence.pas Log Message: Fixed a minor bug, which would cause memory leakage if the public method TInstantReferences.LoadObjectsFromStream was used. Index: InstantPersistence.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantPersistence.pas,v retrieving revision 1.68 retrieving revision 1.69 diff -C2 -d -r1.68 -r1.69 *** InstantPersistence.pas 25 Oct 2005 21:41:27 -0000 1.68 --- InstantPersistence.pas 26 Oct 2005 09:13:15 -0000 1.69 *************** *** 1018,1022 **** function IndexOfInstance(Instance: Pointer): Integer; procedure Insert(Index: Integer; AObject: TInstantObject); ! procedure LoadObjectsFromStream(AStream: TStream); procedure Move(CurIndex, NewIndex: Integer); function Remove(AObject: TInstantObject): Integer; --- 1018,1022 ---- function IndexOfInstance(Instance: Pointer): Integer; procedure Insert(Index: Integer; AObject: TInstantObject); ! procedure LoadObjectsFromStream(AStream: TStream); virtual; procedure Move(CurIndex, NewIndex: Integer); function Remove(AObject: TInstantObject): Integer; *************** *** 1107,1110 **** --- 1107,1111 ---- procedure Assign(Source: TPersistent); override; procedure DestroyObject(Index: Integer); + procedure LoadObjectsFromStream(AStream: TStream); override; procedure LoadReferencesFromStream(AStream: TStream); procedure SaveReferencesToStream(AStream: TStream); *************** *** 7224,7227 **** --- 7225,7238 ---- end; + procedure TInstantReferences.LoadObjectsFromStream(AStream: TStream); + var + I: Integer; + begin + inherited; + for I := 0 to Pred(Count) do + if HasItem(I) then + Items[I].Release; + end; + procedure TInstantReferences.LoadReferencesFromStream(AStream: TStream); var |
From: Carlo B. <car...@us...> - 2005-10-26 08:02:30
|
Update of /cvsroot/instantobjects/Source/Install/K3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12682/Source/Install/K3 Added Files: DesignTimePackages.bpg RunTimePackages.bpg Log Message: Installation folder for newbie developers. --- NEW FILE: DesignTimePackages.bpg --- #------------------------------------------------------------------------------ VERSION = BWS.01 #------------------------------------------------------------------------------ !ifndef ROOT ROOT = $(MAKEDIR)/.. !endif #------------------------------------------------------------------------------ MAKE = $(ROOT)/bin/make.exe -$(MAKEFLAGS) -f$** DCC = $(ROOT)/bin/dcc32.exe $** BRCC = $(ROOT)/bin/brcc32.exe $** #------------------------------------------------------------------------------ PROJECTS = DclIOCore_K3.bpl DclIODBX_K3.bpl DclIOXML_K3.bpl #------------------------------------------------------------------------------ default: $(PROJECTS) #------------------------------------------------------------------------------ DclIOCore_K3.bpl: ../../Design/K3/DclIOCore.dpk $(DCC) DclIODBX_K3.bpl: ../../Brokers/DBX/K3/DclIODBX.dpk $(DCC) DclIOXML_K3.bpl: ../../Brokers/XML/K3/DclIOXML.dpk $(DCC) --- NEW FILE: RunTimePackages.bpg --- #------------------------------------------------------------------------------ VERSION = BWS.01 #------------------------------------------------------------------------------ !ifndef ROOT ROOT = $(MAKEDIR)/.. !endif #------------------------------------------------------------------------------ MAKE = $(ROOT)/bin/make.exe -$(MAKEFLAGS) -f$** DCC = $(ROOT)/bin/dcc32.exe $** BRCC = $(ROOT)/bin/brcc32.exe $** #------------------------------------------------------------------------------ PROJECTS = IOCore_K3.bpl IOMSSqlCatalog_K3.bpl IOIBFbCatalog_K3.bpl IODBX_K3.bpl IOXML_K3.bpl #------------------------------------------------------------------------------ default: $(PROJECTS) #------------------------------------------------------------------------------ IOCore_K3.bpl: ../../Core/K3/IOCore.dpk $(DCC) IOMSSqlCatalog_K3.bpl: ../../Catalogs/MSSql/K3/IOMSSqlCatalog.dpk $(DCC) IOIBFbCatalog_K3.bpl: ../../Catalogs/IBFb/K3/IOIBFbCatalog.dpk $(DCC) IODBX_K3.bpl: ../../Brokers/DBX/K3/IODBX.dpk $(DCC) IOXML_K3.bpl: ../../Brokers/XML/K3/IOXML.dpk $(DCC) |
From: Carlo B. <car...@us...> - 2005-10-26 08:02:29
|
Update of /cvsroot/instantobjects/Source/Install/D7 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12682/Source/Install/D7 Added Files: DesignTimePackages.bpg DesignTimePackages.dsk RunTimePackages.bpg RunTimePackages.dsk Log Message: Installation folder for newbie developers. --- NEW FILE: DesignTimePackages.dsk --- [Closed Files] File_0=SourceModule,'D:\ETHEA\InstantObjects\trunk\Source\Brokers\UIB\InstantUIB.pas',0,1,39,1,50,0,0 File_1=SourceModule,'c:\programmi\borland\delphi7\source\rtl\Sys\system.pas',0,1,9049,1,9060,0,0 File_2=SourceModule,'D:\ETHEA\InstantObjects\trunk\Source\Core\InstantAccessors.pas',0,1,117,1,119,0,0 File_3=SourceModule,'c:\programmi\borland\delphi7\source\rtl\Sys\sysutils.pas',0,1,16258,1,16275,0,0 File_4=SourceModule,'c:\programmi\borland\delphi7\source\rtl\common\classes.pas',0,1,3467,1,3481,0,0 File_5=SourceModule,'D:\ETHEA\InstantObjects\trunk\Source\Core\InstantExplorer.pas',0,1,969,1,988,0,0 File_6=SourceModule,'D:\ETHEA\InstantObjects\trunk\Source\Core\InstantPresentation.pas',0,1,4028,1,4052,0,0 File_7=SourceModule,'D:\ETHEA\CBLib\trunk\src\CBInstantPresentation.pas',0,1,1,1,1,0,0 File_8=SourceModule,'c:\programmi\borland\delphi7\source\rtl\common\TypInfo.pas',0,1,683,9,694,0,0 File_9=SourceModule,'D:\SELEQT\InstantObjectsCVS\Source\Core\InstantAccessors.pas',0,1,117,1,127,0,0 [Modules] Count=0 EditWindowCount=0 PackageWindowCount=6 [D:\ETHEA\InstantObjects\trunk\Source\Install\D7\DesignTimePackages.bpg] FormState=0 FormOnTop=0 [D:\ETHEA\InstantObjects\trunk\Source\Design\D7\dclIOCore.dpk] FormState=0 FormOnTop=0 [D:\ETHEA\InstantObjects\trunk\Source\Brokers\ADO\D7\dclIOADO.dpk] FormState=0 FormOnTop=0 [D:\ETHEA\InstantObjects\trunk\Source\Brokers\BDE\D7\dclIOBDE.dpk] FormState=0 FormOnTop=0 [D:\ETHEA\InstantObjects\trunk\Source\Brokers\DBX\D7\dclIODBX.dpk] FormState=0 FormOnTop=0 [D:\ETHEA\InstantObjects\trunk\Source\Brokers\IBX\D7\dclIOIBX.dpk] FormState=0 FormOnTop=0 [D:\ETHEA\InstantObjects\trunk\Source\Brokers\XML\D7\dclIOXML.dpk] FormState=0 FormOnTop=0 [PackageWindow0] Create=1 Visible=0 State=0 Left=252 Top=241 Width=368 Height=244 MaxLeft=-1 MaxTop=-1 ClientWidth=360 ClientHeight=218 TBDockHeight=244 LRDockWidth=368 Dockable=1 StatusBar=0 TextLabels=1 Toolbar=1 SectionWidth0=150 SectionWidth1=210 Module=D:\ETHEA\InstantObjects\trunk\Source\Design\D7\dclIOCore.dpk [PackageWindow1] Create=1 Visible=0 State=0 Left=252 Top=241 Width=368 Height=244 MaxLeft=-1 MaxTop=-1 ClientWidth=360 ClientHeight=218 TBDockHeight=244 LRDockWidth=368 Dockable=1 StatusBar=0 TextLabels=1 Toolbar=1 SectionWidth0=150 SectionWidth1=210 Module=D:\ETHEA\InstantObjects\trunk\Source\Brokers\ADO\D7\dclIOADO.dpk [PackageWindow2] Create=1 Visible=0 State=0 Left=252 Top=241 Width=368 Height=244 MaxLeft=-1 MaxTop=-1 ClientWidth=360 ClientHeight=218 TBDockHeight=244 LRDockWidth=368 Dockable=1 StatusBar=0 TextLabels=1 Toolbar=1 SectionWidth0=150 SectionWidth1=210 Module=D:\ETHEA\InstantObjects\trunk\Source\Brokers\BDE\D7\dclIOBDE.dpk [PackageWindow3] Create=1 Visible=0 State=0 Left=252 Top=241 Width=368 Height=244 MaxLeft=-1 MaxTop=-1 ClientWidth=360 ClientHeight=218 TBDockHeight=244 LRDockWidth=368 Dockable=1 StatusBar=0 TextLabels=1 Toolbar=1 SectionWidth0=150 SectionWidth1=210 Module=D:\ETHEA\InstantObjects\trunk\Source\Brokers\DBX\D7\dclIODBX.dpk [PackageWindow4] Create=1 Visible=0 State=0 Left=252 Top=241 Width=368 Height=244 MaxLeft=-1 MaxTop=-1 ClientWidth=360 ClientHeight=218 TBDockHeight=244 LRDockWidth=368 Dockable=1 StatusBar=0 TextLabels=1 Toolbar=1 SectionWidth0=150 SectionWidth1=210 Module=D:\ETHEA\InstantObjects\trunk\Source\Brokers\IBX\D7\dclIOIBX.dpk [PackageWindow5] Create=1 Visible=0 State=0 Left=252 Top=241 Width=368 Height=244 MaxLeft=-1 MaxTop=-1 ClientWidth=360 ClientHeight=218 TBDockHeight=244 LRDockWidth=368 Dockable=1 StatusBar=0 TextLabels=1 Toolbar=1 SectionWidth0=150 SectionWidth1=210 Module=D:\ETHEA\InstantObjects\trunk\Source\Brokers\XML\D7\dclIOXML.dpk [Watches] Count=0 [WatchWindow] WatchColumnWidth=258 WatchShowColumnHeaders=1 Create=1 Visible=0 State=0 Left=0 Top=751 Width=1396 Height=292 MaxLeft=-1 MaxTop=-1 ClientWidth=1388 ClientHeight=266 TBDockHeight=266 LRDockWidth=421 Dockable=1 [Breakpoints] Count=0 [AddressBreakpoints] Count=0 [Main Window] Create=1 Visible=1 State=0 Left=0 Top=0 Width=1400 Height=138 MaxLeft=-1 MaxTop=-1 ClientWidth=1392 ClientHeight=104 [ProjectManager] Create=1 Visible=1 State=0 Left=391 Top=183 Width=561 Height=461 MaxLeft=-1 MaxTop=-1 ClientWidth=553 ClientHeight=435 TBDockHeight=303 LRDockWidth=438 Dockable=1 [Components] Left=420 Top=251 Width=183 Height=266 Create=1 Visible=0 State=0 MaxLeft=-1 MaxTop=-1 ClientWidth=175 ClientHeight=240 TBDockHeight=266 LRDockWidth=183 Dockable=1 [CPUWindow] Create=1 Visible=0 State=0 Left=246 Top=209 Width=533 Height=353 MaxLeft=-1 MaxTop=-1 ClientWidth=525 ClientHeight=319 DumpPane=79 DisassemblyPane=187 RegisterPane=231 FlagPane=64 [AlignmentPalette] Create=1 Visible=0 State=0 Left=200 Top=133 Width=156 Height=84 MaxLeft=-1 MaxTop=-1 ClientWidth=150 ClientHeight=60 [PropertyInspector] Create=1 Visible=0 State=0 Left=-8 Top=175 Width=370 Height=591 MaxLeft=-1 MaxTop=-1 ClientWidth=362 ClientHeight=565 TBDockHeight=365 LRDockWidth=190 Dockable=1 SplitPos=142 ArrangeBy=Name SelectedItem= ExpandedItems=CBXClientPanel,FieldOptions,Options,VisibleActions HiddenCategories= [BreakpointWindow] Create=1 Visible=0 State=0 Left=143 Top=285 Width=737 Height=302 MaxLeft=-1 MaxTop=-1 ClientWidth=729 ClientHeight=276 TBDockHeight=197 LRDockWidth=737 Dockable=1 Column0Width=157 Column1Width=75 Column2Width=200 Column3Width=200 Column4Width=75 Column5Width=75 [CallStackWindow] Create=1 Visible=0 State=0 Left=1400 Top=164 Width=371 Height=866 MaxLeft=-1 MaxTop=-1 ClientWidth=363 ClientHeight=840 TBDockHeight=840 LRDockWidth=363 Dockable=1 [ThreadStatusWindow] Create=1 Visible=0 State=0 Left=330 Top=507 Width=676 Height=89 MaxLeft=-1 MaxTop=-1 ClientWidth=668 ClientHeight=63 TBDockHeight=152 LRDockWidth=624 Dockable=1 Column0Width=145 Column1Width=100 Column2Width=115 Column3Width=250 [ObjectTree] Create=1 Visible=0 State=0 Left=0 Top=131 Width=190 Height=242 MaxLeft=-1 MaxTop=-1 ClientWidth=182 ClientHeight=216 TBDockHeight=242 LRDockWidth=190 Dockable=1 [DebugLogView] Create=1 Visible=0 State=0 Left=0 Top=0 Width=182 Height=553 MaxLeft=-1 MaxTop=-1 ClientWidth=174 ClientHeight=527 TBDockHeight=248 LRDockWidth=174 Dockable=1 [LocalVarsWindow] Create=1 Visible=0 State=0 Left=8 Top=699 Width=1012 Height=109 MaxLeft=-1 MaxTop=-1 ClientWidth=1004 ClientHeight=83 TBDockHeight=192 LRDockWidth=421 Dockable=1 [ToDo List] Create=1 Visible=0 State=0 Left=277 Top=259 Width=470 Height=250 MaxLeft=-1 MaxTop=-1 ClientWidth=462 ClientHeight=224 TBDockHeight=250 LRDockWidth=470 Dockable=1 Column0Width=200 Column1Width=30 Column2Width=100 Column3Width=70 Column4Width=70 SortOrder=4 ShowHints=1 ShowChecked=1 [FPUWindow] Create=1 Visible=0 State=0 Left=232 Top=282 Width=595 Height=299 MaxLeft=-1 MaxTop=-1 ClientWidth=587 ClientHeight=265 RegisterPane=121 FlagPane=88 [ModuleWindow] Create=1 Visible=0 State=0 Left=43 Top=98 Width=638 Height=355 MaxLeft=-1 MaxTop=-1 ClientWidth=630 ClientHeight=329 TBDockHeight=355 LRDockWidth=638 Dockable=1 Column0Width=125 Column1Width=100 Column2Width=155 EntryPointPane=225 CompUnitPane=104 [MessageHintFrm] Create=1 Visible=0 State=0 Left=481 Top=423 Width=383 Height=195 MaxLeft=-1 MaxTop=-1 ClientWidth=375 ClientHeight=169 TBDockHeight=195 LRDockWidth=383 Dockable=1 [InstantModelExplorer] Create=1 Visible=0 State=0 Left=385 Top=186 Width=259 Height=433 MaxLeft=-1 MaxTop=-1 ClientWidth=251 ClientHeight=407 TBDockHeight=433 LRDockWidth=259 Dockable=1 [DockHosts] DockHostCount=0 [ActiveProject] ActiveProject=1 --- NEW FILE: DesignTimePackages.bpg --- #------------------------------------------------------------------------------ VERSION = BWS.01 #------------------------------------------------------------------------------ !ifndef ROOT ROOT = $(MAKEDIR)\.. !endif #------------------------------------------------------------------------------ MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** DCC = $(ROOT)\bin\dcc32.exe $** BRCC = $(ROOT)\bin\brcc32.exe $** #------------------------------------------------------------------------------ PROJECTS = dclIOCore_D7.bpl dclIOADO_D7.bpl dclIOBDE_D7.bpl dclIODBX_D7.bpl dclIOIBX_D7.bpl \ dclIOXML_D7.bpl #------------------------------------------------------------------------------ default: $(PROJECTS) #------------------------------------------------------------------------------ dclIOCore_D7.bpl: ..\..\Design\D7\dclIOCore.dpk $(DCC) dclIOADO_D7.bpl: ..\..\Brokers\ADO\D7\dclIOADO.dpk $(DCC) dclIOBDE_D7.bpl: ..\..\Brokers\BDE\D7\dclIOBDE.dpk $(DCC) dclIODBX_D7.bpl: ..\..\Brokers\DBX\D7\dclIODBX.dpk $(DCC) dclIOIBX_D7.bpl: ..\..\Brokers\IBX\D7\dclIOIBX.dpk $(DCC) dclIOXML_D7.bpl: ..\..\Brokers\XML\D7\dclIOXML.dpk $(DCC) --- NEW FILE: RunTimePackages.dsk --- [Closed Files] File_0=SourceModule,'D:\ETHEA\InstantObjects\trunk\Source\Brokers\UIB\InstantUIB.pas',0,1,39,1,50,0,0 File_1=SourceModule,'c:\programmi\borland\delphi7\source\rtl\Sys\system.pas',0,1,9049,1,9060,0,0 File_2=SourceModule,'D:\ETHEA\InstantObjects\trunk\Source\Core\InstantAccessors.pas',0,1,117,1,119,0,0 File_3=SourceModule,'c:\programmi\borland\delphi7\source\rtl\Sys\sysutils.pas',0,1,16258,1,16275,0,0 File_4=SourceModule,'c:\programmi\borland\delphi7\source\rtl\common\classes.pas',0,1,3467,1,3481,0,0 File_5=SourceModule,'D:\ETHEA\InstantObjects\trunk\Source\Core\InstantExplorer.pas',0,1,969,1,988,0,0 File_6=SourceModule,'D:\ETHEA\InstantObjects\trunk\Source\Core\InstantPresentation.pas',0,1,4028,1,4052,0,0 File_7=SourceModule,'D:\ETHEA\CBLib\trunk\src\CBInstantPresentation.pas',0,1,1,1,1,0,0 File_8=SourceModule,'c:\programmi\borland\delphi7\source\rtl\common\TypInfo.pas',0,1,683,9,694,0,0 File_9=SourceModule,'D:\SELEQT\InstantObjectsCVS\Source\Core\InstantAccessors.pas',0,1,117,1,127,0,0 [Modules] Count=0 EditWindowCount=0 PackageWindowCount=8 [D:\ETHEA\InstantObjects\trunk\Source\Install\D7\RunTimePackages.bpg] FormState=0 FormOnTop=0 [D:\ETHEA\InstantObjects\trunk\Source\Core\D7\IOCore.dpk] FormState=0 FormOnTop=0 [D:\ETHEA\InstantObjects\trunk\Source\Catalogs\MSSql\D7\IOMSSqlCatalog.dpk] FormState=0 FormOnTop=0 [D:\ETHEA\InstantObjects\trunk\Source\Catalogs\IBFb\D7\IOIBFbCatalog.dpk] FormState=0 FormOnTop=0 [D:\ETHEA\InstantObjects\trunk\Source\Brokers\ADO\D7\IOADO.dpk] FormState=0 FormOnTop=0 [D:\ETHEA\InstantObjects\trunk\Source\Brokers\BDE\D7\IOBDE.dpk] FormState=0 FormOnTop=0 [D:\ETHEA\InstantObjects\trunk\Source\Brokers\DBX\D7\IODBX.dpk] FormState=0 FormOnTop=0 [D:\ETHEA\InstantObjects\trunk\Source\Brokers\IBX\D7\IOIBX.dpk] FormState=0 FormOnTop=0 [D:\ETHEA\InstantObjects\trunk\Source\Brokers\XML\D7\IOXML.dpk] FormState=0 FormOnTop=0 [PackageWindow0] Create=1 Visible=0 State=0 Left=252 Top=241 Width=368 Height=244 MaxLeft=-1 MaxTop=-1 ClientWidth=360 ClientHeight=218 TBDockHeight=244 LRDockWidth=368 Dockable=1 StatusBar=0 TextLabels=1 Toolbar=1 SectionWidth0=150 SectionWidth1=210 Module=D:\ETHEA\InstantObjects\trunk\Source\Core\D7\IOCore.dpk [PackageWindow1] Create=1 Visible=0 State=0 Left=252 Top=241 Width=368 Height=244 MaxLeft=-1 MaxTop=-1 ClientWidth=360 ClientHeight=218 TBDockHeight=244 LRDockWidth=368 Dockable=1 StatusBar=0 TextLabels=1 Toolbar=1 SectionWidth0=150 SectionWidth1=210 Module=D:\ETHEA\InstantObjects\trunk\Source\Catalogs\MSSql\D7\IOMSSqlCatalog.dpk [PackageWindow2] Create=1 Visible=0 State=0 Left=252 Top=241 Width=368 Height=244 MaxLeft=-1 MaxTop=-1 ClientWidth=360 ClientHeight=218 TBDockHeight=244 LRDockWidth=368 Dockable=1 StatusBar=0 TextLabels=1 Toolbar=1 SectionWidth0=150 SectionWidth1=210 Module=D:\ETHEA\InstantObjects\trunk\Source\Catalogs\IBFb\D7\IOIBFbCatalog.dpk [PackageWindow3] Create=1 Visible=0 State=0 Left=252 Top=241 Width=368 Height=244 MaxLeft=-1 MaxTop=-1 ClientWidth=360 ClientHeight=218 TBDockHeight=244 LRDockWidth=368 Dockable=1 StatusBar=0 TextLabels=1 Toolbar=1 SectionWidth0=150 SectionWidth1=210 Module=D:\ETHEA\InstantObjects\trunk\Source\Brokers\ADO\D7\IOADO.dpk [PackageWindow4] Create=1 Visible=0 State=0 Left=252 Top=241 Width=368 Height=244 MaxLeft=-1 MaxTop=-1 ClientWidth=360 ClientHeight=218 TBDockHeight=244 LRDockWidth=368 Dockable=1 StatusBar=0 TextLabels=1 Toolbar=1 SectionWidth0=150 SectionWidth1=210 Module=D:\ETHEA\InstantObjects\trunk\Source\Brokers\BDE\D7\IOBDE.dpk [PackageWindow5] Create=1 Visible=0 State=0 Left=252 Top=241 Width=368 Height=244 MaxLeft=-1 MaxTop=-1 ClientWidth=360 ClientHeight=218 TBDockHeight=244 LRDockWidth=368 Dockable=1 StatusBar=0 TextLabels=1 Toolbar=1 SectionWidth0=150 SectionWidth1=210 Module=D:\ETHEA\InstantObjects\trunk\Source\Brokers\DBX\D7\IODBX.dpk [PackageWindow6] Create=1 Visible=0 State=0 Left=252 Top=241 Width=368 Height=244 MaxLeft=-1 MaxTop=-1 ClientWidth=360 ClientHeight=218 TBDockHeight=244 LRDockWidth=368 Dockable=1 StatusBar=0 TextLabels=1 Toolbar=1 SectionWidth0=150 SectionWidth1=210 Module=D:\ETHEA\InstantObjects\trunk\Source\Brokers\IBX\D7\IOIBX.dpk [PackageWindow7] Create=1 Visible=0 State=0 Left=252 Top=241 Width=368 Height=244 MaxLeft=-1 MaxTop=-1 ClientWidth=360 ClientHeight=218 TBDockHeight=244 LRDockWidth=368 Dockable=1 StatusBar=0 TextLabels=1 Toolbar=1 SectionWidth0=150 SectionWidth1=210 Module=D:\ETHEA\InstantObjects\trunk\Source\Brokers\XML\D7\IOXML.dpk [Watches] Count=0 [WatchWindow] WatchColumnWidth=258 WatchShowColumnHeaders=1 Create=1 Visible=0 State=0 Left=0 Top=751 Width=1396 Height=292 MaxLeft=-1 MaxTop=-1 ClientWidth=1388 ClientHeight=266 TBDockHeight=266 LRDockWidth=421 Dockable=1 [Breakpoints] Count=0 [AddressBreakpoints] Count=0 [Main Window] Create=1 Visible=1 State=0 Left=0 Top=0 Width=1400 Height=138 MaxLeft=-1 MaxTop=-1 ClientWidth=1392 ClientHeight=104 [ProjectManager] Create=1 Visible=0 State=0 Left=391 Top=183 Width=561 Height=461 MaxLeft=-1 MaxTop=-1 ClientWidth=553 ClientHeight=435 TBDockHeight=303 LRDockWidth=438 Dockable=1 [Components] Left=420 Top=251 Width=183 Height=266 Create=1 Visible=0 State=0 MaxLeft=-1 MaxTop=-1 ClientWidth=175 ClientHeight=240 TBDockHeight=266 LRDockWidth=183 Dockable=1 [CPUWindow] Create=1 Visible=0 State=0 Left=246 Top=209 Width=533 Height=353 MaxLeft=-1 MaxTop=-1 ClientWidth=525 ClientHeight=319 DumpPane=79 DisassemblyPane=187 RegisterPane=231 FlagPane=64 [AlignmentPalette] Create=1 Visible=0 State=0 Left=200 Top=133 Width=156 Height=84 MaxLeft=-1 MaxTop=-1 ClientWidth=150 ClientHeight=60 [PropertyInspector] Create=1 Visible=0 State=0 Left=-8 Top=175 Width=370 Height=591 MaxLeft=-1 MaxTop=-1 ClientWidth=362 ClientHeight=565 TBDockHeight=365 LRDockWidth=190 Dockable=1 SplitPos=142 ArrangeBy=Name SelectedItem= ExpandedItems=CBXClientPanel,FieldOptions,Options,VisibleActions HiddenCategories= [BreakpointWindow] Create=1 Visible=0 State=0 Left=143 Top=285 Width=737 Height=302 MaxLeft=-1 MaxTop=-1 ClientWidth=729 ClientHeight=276 TBDockHeight=197 LRDockWidth=737 Dockable=1 Column0Width=157 Column1Width=75 Column2Width=200 Column3Width=200 Column4Width=75 Column5Width=75 [CallStackWindow] Create=1 Visible=0 State=0 Left=1400 Top=164 Width=371 Height=866 MaxLeft=-1 MaxTop=-1 ClientWidth=363 ClientHeight=840 TBDockHeight=840 LRDockWidth=363 Dockable=1 [ThreadStatusWindow] Create=1 Visible=0 State=0 Left=330 Top=507 Width=676 Height=89 MaxLeft=-1 MaxTop=-1 ClientWidth=668 ClientHeight=63 TBDockHeight=152 LRDockWidth=624 Dockable=1 Column0Width=145 Column1Width=100 Column2Width=115 Column3Width=250 [ObjectTree] Create=1 Visible=0 State=0 Left=0 Top=131 Width=190 Height=242 MaxLeft=-1 MaxTop=-1 ClientWidth=182 ClientHeight=216 TBDockHeight=242 LRDockWidth=190 Dockable=1 [DebugLogView] Create=1 Visible=0 State=0 Left=0 Top=0 Width=182 Height=553 MaxLeft=-1 MaxTop=-1 ClientWidth=174 ClientHeight=527 TBDockHeight=248 LRDockWidth=174 Dockable=1 [LocalVarsWindow] Create=1 Visible=0 State=0 Left=8 Top=699 Width=1012 Height=109 MaxLeft=-1 MaxTop=-1 ClientWidth=1004 ClientHeight=83 TBDockHeight=192 LRDockWidth=421 Dockable=1 [ToDo List] Create=1 Visible=0 State=0 Left=277 Top=259 Width=470 Height=250 MaxLeft=-1 MaxTop=-1 ClientWidth=462 ClientHeight=224 TBDockHeight=250 LRDockWidth=470 Dockable=1 Column0Width=200 Column1Width=30 Column2Width=100 Column3Width=70 Column4Width=70 SortOrder=4 ShowHints=1 ShowChecked=1 [FPUWindow] Create=1 Visible=0 State=0 Left=232 Top=282 Width=595 Height=299 MaxLeft=-1 MaxTop=-1 ClientWidth=587 ClientHeight=265 RegisterPane=121 FlagPane=88 [ModuleWindow] Create=1 Visible=0 State=0 Left=43 Top=98 Width=638 Height=355 MaxLeft=-1 MaxTop=-1 ClientWidth=630 ClientHeight=329 TBDockHeight=355 LRDockWidth=638 Dockable=1 Column0Width=125 Column1Width=100 Column2Width=155 EntryPointPane=225 CompUnitPane=104 [MessageHintFrm] Create=1 Visible=0 State=0 Left=481 Top=423 Width=383 Height=195 MaxLeft=-1 MaxTop=-1 ClientWidth=375 ClientHeight=169 TBDockHeight=195 LRDockWidth=383 Dockable=1 [InstantModelExplorer] Create=1 Visible=0 State=0 Left=385 Top=186 Width=259 Height=433 MaxLeft=-1 MaxTop=-1 ClientWidth=251 ClientHeight=407 TBDockHeight=433 LRDockWidth=259 Dockable=1 [DockHosts] DockHostCount=0 [ActiveProject] ActiveProject=8 --- NEW FILE: RunTimePackages.bpg --- #------------------------------------------------------------------------------ VERSION = BWS.01 #------------------------------------------------------------------------------ !ifndef ROOT ROOT = $(MAKEDIR)\.. !endif #------------------------------------------------------------------------------ MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** DCC = $(ROOT)\bin\dcc32.exe $** BRCC = $(ROOT)\bin\brcc32.exe $** #------------------------------------------------------------------------------ PROJECTS = IOCore_D7.bpl IOMSSqlCatalog_D7.bpl IOIBFbCatalog_D7.bpl IOADO_D7.bpl IOBDE_D7.bpl \ IODBX_D7.bpl IOIBX_D7.bpl IOXML_D7.bpl #------------------------------------------------------------------------------ default: $(PROJECTS) #------------------------------------------------------------------------------ IOCore_D7.bpl: ..\..\Core\D7\IOCore.dpk $(DCC) IOADO_D7.bpl: ..\..\Brokers\ADO\D7\IOADO.dpk $(DCC) IOBDE_D7.bpl: ..\..\Brokers\BDE\D7\IOBDE.dpk $(DCC) IODBX_D7.bpl: ..\..\Brokers\DBX\D7\IODBX.dpk $(DCC) IOIBX_D7.bpl: ..\..\Brokers\IBX\D7\IOIBX.dpk $(DCC) IOXML_D7.bpl: ..\..\Brokers\XML\D7\IOXML.dpk $(DCC) IOMSSqlCatalog_D7.bpl: ..\..\Catalogs\MSSql\D7\IOMSSqlCatalog.dpk $(DCC) IOIBFbCatalog_D7.bpl: ..\..\Catalogs\IBFb\D7\IOIBFbCatalog.dpk $(DCC) |
From: Carlo B. <car...@us...> - 2005-10-26 08:02:29
|
Update of /cvsroot/instantobjects/Source/Install In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12682/Source/Install Added Files: HowToInstall.txt Log Message: Installation folder for newbie developers. --- NEW FILE: HowToInstall.txt --- INSTALLING INSTANTOBJECTS USING BORLAND PROGRAM GROUPS ------------------------------------------------------ This tutorial is for newbie developers that want install InstantObjects in a simple way. If you want a complete explanation of InstantObjects structure, please refer to the installation section of \Doc\Readme.txt file. If you want a rapid installation process to evaluate InstantObjects, you can use the two "standard" bpg projects contained into Specific Delphi Folder under this Install folder. For every Delphi version you can find: - RunTimePackages.bpg to Build all of the "standard" run-time packages. - Open it and "BuildAll" projects. - DesignTimePackages.bpg to Build/Install all of the "standard" design-time packages. - Open it and the first time "Install" every single packages included. "Standard" packages means that you can compile it with components included in a standard Delphi istallation. If you want to know how install other brokers to use third party data access components and technologies, please refer to the installation section of \Doc\Readme.txt file. RunTimePackages.bpg contains: -------------------------------- 1) IOCore.dpk: InstantObjects Core Package 2) IOADO.dpk : ADO Broker 3) IOBDE.dpk : BDE Broker 4) IODBX.dpk : DBExpress Broker (not available for Delphi 5) 5) IOIBX.dpk : IBX Broker 6) IOXML.dpk : XML Broker DesignTimePackages.bpg contains: -------------------------------- 1) dclIOCore.dpk: InstantObjects Desing package 2) dclIOADO.dpk : ADO Broker 3) dclIOBDE.dpk : BDE Broker 4) dclIODBX.dpk : DBExpress Broker (not available for Delphi 5) 5) dclIOIBX.dpk : IBX Broker 6) dclIOXML.dpk : XML Broker When you are familiar with the packages and source structure of InstantObjects you can maintain your personal bpg files to include only packages you want use. |
From: Carlo B. <car...@us...> - 2005-10-26 08:02:29
|
Update of /cvsroot/instantobjects/Source/Install/D2005 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12682/Source/Install/D2005 Added Files: DesignTimePackages.bpg RunTimePackages.bpg Log Message: Installation folder for newbie developers. --- NEW FILE: DesignTimePackages.bpg --- #------------------------------------------------------------------------------ VERSION = BWS.01 #------------------------------------------------------------------------------ !ifndef ROOT ROOT = $(MAKEDIR)\.. !endif #------------------------------------------------------------------------------ MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** DCC = $(ROOT)\bin\dcc32.exe $** BRCC = $(ROOT)\bin\brcc32.exe $** #------------------------------------------------------------------------------ PROJECTS = dclIOCore_D9.bpl dclIOADO_D9.bpl dclIOBDE_D9.bpl dclIODBX_D9.bpl dclIOIBX_D9.bpl \ dclIOXML_D9.bpl #------------------------------------------------------------------------------ default: $(PROJECTS) #------------------------------------------------------------------------------ dclIOCore_D9.bpl: ..\..\Design\D2005\dclIOCore.dpk $(DCC) dclIOADO_D9.bpl: ..\..\Brokers\ADO\D2005\dclIOADO.dpk $(DCC) dclIOBDE_D9.bpl: ..\..\Brokers\BDE\D2005\dclIOBDE.dpk $(DCC) dclIODBX_D9.bpl: ..\..\Brokers\DBX\D2005\dclIODBX.dpk $(DCC) dclIOIBX_D9.bpl: ..\..\Brokers\IBX\D2005\dclIOIBX.dpk $(DCC) dclIOXML_D9.bpl: ..\..\Brokers\XML\D2005\dclIOXML.dpk $(DCC) --- NEW FILE: RunTimePackages.bpg --- #------------------------------------------------------------------------------ VERSION = BWS.01 #------------------------------------------------------------------------------ !ifndef ROOT ROOT = $(MAKEDIR)\.. !endif #------------------------------------------------------------------------------ MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** DCC = $(ROOT)\bin\dcc32.exe $** BRCC = $(ROOT)\bin\brcc32.exe $** #------------------------------------------------------------------------------ PROJECTS = IOCore_D9.bpl IOMSSqlCatalog_D9.bpl IOIBFbCatalog_D9.bpl IOADO_D9.bpl IOBDE_D9.bpl \ IODBX_D9.bpl IOIBX_D9.bpl IOXML_D9.bpl #------------------------------------------------------------------------------ default: $(PROJECTS) #------------------------------------------------------------------------------ IOCore_D9.bpl: ..\..\Core\D2005\IOCore.dpk $(DCC) IOMSSqlCatalog_D9.bpl: ..\..\Catalogs\MSSql\D2005\IOMSSqlCatalog.dpk $(DCC) IOIBFbCatalog_D9.bpl: ..\..\Catalogs\IBFb\D2005\IOIBFbCatalog.dpk $(DCC) IOADO_D9.bpl: ..\..\Brokers\ADO\D2005\IOADO.dpk $(DCC) IOBDE_D9.bpl: ..\..\Brokers\BDE\D2005\IOBDE.dpk $(DCC) IODBX_D9.bpl: ..\..\Brokers\DBX\D2005\IODBX.dpk $(DCC) IOIBX_D9.bpl: ..\..\Brokers\IBX\D2005\IOIBX.dpk $(DCC) IOXML_D9.bpl: ..\..\Brokers\XML\D2005\IOXML.dpk $(DCC) |
From: Carlo B. <car...@us...> - 2005-10-26 08:01:25
|
Update of /cvsroot/instantobjects/Source/Install/D7 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12456/D7 Log Message: Directory /cvsroot/instantobjects/Source/Install/D7 added to the repository |
From: Carlo B. <car...@us...> - 2005-10-26 08:01:25
|
Update of /cvsroot/instantobjects/Source/Install/D2005 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12456/D2005 Log Message: Directory /cvsroot/instantobjects/Source/Install/D2005 added to the repository |
From: Carlo B. <car...@us...> - 2005-10-26 08:01:25
|
Update of /cvsroot/instantobjects/Source/Install/K3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12456/K3 Log Message: Directory /cvsroot/instantobjects/Source/Install/K3 added to the repository |
From: Carlo B. <car...@us...> - 2005-10-26 08:01:16
|
Update of /cvsroot/instantobjects/Source/Install In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12393/Install Log Message: Directory /cvsroot/instantobjects/Source/Install added to the repository |
From: Joao M. <jcm...@us...> - 2005-10-25 21:41:47
|
Update of /cvsroot/instantobjects/Source/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3365/Core Modified Files: InstantPersistence.pas Log Message: Fixed nil assignment to referenced object pointer whenever this object is released; Fixed some AVs and Invalid Pointer Operation messages with TInstantObjectReference class. Index: InstantPersistence.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantPersistence.pas,v retrieving revision 1.67 retrieving revision 1.68 diff -C2 -d -r1.67 -r1.68 *** InstantPersistence.pas 25 Oct 2005 14:31:51 -0000 1.67 --- InstantPersistence.pas 25 Oct 2005 21:41:27 -0000 1.68 *************** *** 535,542 **** constructor Create(AInstance: TInstantObject = nil; AOwnsInstance: Boolean = False; AOwner: TInstantComplex = nil); ! constructor Clone(Source: TInstantObjectReference; AOwnsInstance: Boolean); destructor Destroy; override; procedure Assign(Source: TPersistent); override; ! procedure AssignInstance(AInstance: TInstantObject); function Dereference(Connector: TInstantConnector = nil; AOwnsInstance: Boolean = True; Retry: Boolean = False): TInstantObject; --- 535,543 ---- constructor Create(AInstance: TInstantObject = nil; AOwnsInstance: Boolean = False; AOwner: TInstantComplex = nil); ! constructor Clone(Source: TInstantObjectReference; AOwnsInstance: Boolean; ! AOwner: TInstantComplex = nil); destructor Destroy; override; procedure Assign(Source: TPersistent); override; ! procedure AssignInstance(AInstance: TInstantObject; AOwner: TInstantComplex = nil); function Dereference(Connector: TInstantConnector = nil; AOwnsInstance: Boolean = True; Retry: Boolean = False): TInstantObject; *************** *** 4266,4270 **** end; ! procedure TInstantObjectReference.AssignInstance(AInstance: TInstantObject); begin if not Equals(AInstance) then --- 4267,4272 ---- end; ! procedure TInstantObjectReference.AssignInstance(AInstance: TInstantObject; ! AOwner: TInstantComplex); begin if not Equals(AInstance) then *************** *** 4276,4279 **** --- 4278,4282 ---- Instance.AddRef; end; + FOwner := AOwner; end; *************** *** 4285,4293 **** constructor TInstantObjectReference.Clone(Source: TInstantObjectReference; ! AOwnsInstance: Boolean); begin Create; Assign(Source); ! OwnsInstance := AOwnsInstance end; --- 4288,4297 ---- constructor TInstantObjectReference.Clone(Source: TInstantObjectReference; ! AOwnsInstance: Boolean; AOwner: TInstantComplex); begin Create; Assign(Source); ! OwnsInstance := AOwnsInstance; ! FOwner := AOwner; end; *************** *** 4296,4302 **** begin inherited Create; OwnsInstance := AOwnsInstance; FOwner := AOwner; - Instance := AInstance; end; --- 4300,4306 ---- begin inherited Create; + Instance := AInstance; OwnsInstance := AOwnsInstance; FOwner := AOwner; end; *************** *** 8064,8074 **** I: Integer; begin ! // This object will be destroyed only when objects among circular ! // references points each other if Assigned(FRefBy) and (FRefBy.Count = FRefCount-1) then ! for I := 0 to Pred(FRefBy.Count) do ! if (FRefBy[I] is TInstantComplex) then with TInstantComplex(FRefBy[I]) do ! if AttributeType in [atReference, atReferences] then // FRefCount will be decremented whenever this object is dereferenced repeat until not DetachObject(Self); --- 8068,8079 ---- I: Integer; begin ! // This object will be destroyed only when it is referenced ! // by other object(s) pointing each other if Assigned(FRefBy) and (FRefBy.Count = FRefCount-1) then ! for I := Pred(FRefBy.Count) downto 0 do ! if FRefBy[I] is TInstantComplex then with TInstantComplex(FRefBy[I]) do ! if (AttributeType in [atReference, atReferences]) and ! (Owner.RefCount = Owner.ReferencedBy.Count) then // FRefCount will be decremented whenever this object is dereferenced repeat until not DetachObject(Self); |
From: Carlo B. <car...@us...> - 2005-10-25 14:32:07
|
Update of /cvsroot/instantobjects/Demos/PrimerCross In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2105/Demos/PrimerCross Modified Files: Main.pas Primer.cfg Primer.dof Removed Files: PrimerK3.cfg PrimerK3.res Log Message: changes for Kylix 3: removed emf support under Linux and added catalogs. Remove unecessary files for PrimerK3 --- PrimerK3.cfg DELETED --- Index: Primer.dof =================================================================== RCS file: /cvsroot/instantobjects/Demos/PrimerCross/Primer.dof,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Primer.dof 20 Oct 2005 08:03:28 -0000 1.8 --- Primer.dof 25 Oct 2005 14:31:50 -0000 1.9 *************** *** 81,88 **** UnsafeCast=0 [Linker] ! MapFile=3 OutputObjs=0 ConsoleApp=1 ! DebugInfo=1 RemoteSymbols=0 MinStackSize=16384 --- 81,88 ---- UnsafeCast=0 [Linker] ! MapFile=0 OutputObjs=0 ConsoleApp=1 ! DebugInfo=0 RemoteSymbols=0 MinStackSize=16384 *************** *** 135,139 **** ProductVersion=2.0 Comments= - [Excluded Packages] - c:\programmi\borland\delphi7\Projects\Bpl\CBCLX70.bpl=** CBCLX Package Delphi 7: CLX components ** - c:\programmi\borland\delphi7\Projects\Bpl\CBDesign70.bpl=*** Design-time property-editors Delphi 7 per CBVCL *** --- 135,136 ---- --- PrimerK3.res DELETED --- Index: Main.pas =================================================================== RCS file: /cvsroot/instantobjects/Demos/PrimerCross/Main.pas,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** Main.pas 13 Oct 2005 10:46:55 -0000 1.14 --- Main.pas 25 Oct 2005 14:31:50 -0000 1.15 *************** *** 777,781 **** {$ENDIF} {$IFDEF LINUX} ! ARandomExt : Array[0..3] of string = ('.bmp','.jpg','.emf','.png'); {$ENDIF} var --- 777,781 ---- {$ENDIF} {$IFDEF LINUX} ! ARandomExt : Array[0..2] of string = ('.bmp','.jpg','.png'); {$ENDIF} var Index: Primer.cfg =================================================================== RCS file: /cvsroot/instantobjects/Demos/PrimerCross/Primer.cfg,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Primer.cfg 20 Oct 2005 08:03:28 -0000 1.7 --- Primer.cfg 25 Oct 2005 14:31:50 -0000 1.8 *************** *** 25,31 **** -$YD -$Z1 - -GD -cg - -vn -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -H+ --- 25,29 ---- *************** *** 36,43 **** -LE"c:\programmi\borland\delphi7\Projects\Bpl" -LN"c:\programmi\borland\delphi7\Projects\Bpl" ! -U"c:\programmi\borland\delphi7\Lib\Debug;..\..\Source\Core;..\..\Source\Brokers\DBX;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Brokers\UIB;..\..\Source\Brokers\ZeosDBO;..\..\Source\Catalogs\BDE;..\..\Source\Catalogs\MsSql;..\..\Source\Catalogs\IbFb;..\..\Source\Catalogs\XML" ! -O"c:\programmi\borland\delphi7\Lib\Debug;..\..\Source\Core;..\..\Source\Brokers\DBX;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Brokers\UIB;..\..\Source\Brokers\ZeosDBO;..\..\Source\Catalogs\BDE;..\..\Source\Catalogs\MsSql;..\..\Source\Catalogs\IbFb;..\..\Source\Catalogs\XML" ! -I"c:\programmi\borland\delphi7\Lib\Debug;..\..\Source\Core;..\..\Source\Brokers\DBX;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Brokers\UIB;..\..\Source\Brokers\ZeosDBO;..\..\Source\Catalogs\BDE;..\..\Source\Catalogs\MsSql;..\..\Source\Catalogs\IbFb;..\..\Source\Catalogs\XML" ! -R"c:\programmi\borland\delphi7\Lib\Debug;..\..\Source\Core;..\..\Source\Brokers\DBX;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Brokers\UIB;..\..\Source\Brokers\ZeosDBO;..\..\Source\Catalogs\BDE;..\..\Source\Catalogs\MsSql;..\..\Source\Catalogs\IbFb;..\..\Source\Catalogs\XML" -w-UNIT_PLATFORM -w-UNSAFE_TYPE --- 34,41 ---- -LE"c:\programmi\borland\delphi7\Projects\Bpl" -LN"c:\programmi\borland\delphi7\Projects\Bpl" ! -U"c:\programmi\borland\delphi7\Lib\Debug;..\..\Source\Core;..\..\Source\Brokers\DBX;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Brokers\UIB;..\..\Source\Brokers\ZeosDBO;..\..\Source\Catalogs\MsSql;..\..\Source\Catalogs\IbFb" ! -O"c:\programmi\borland\delphi7\Lib\Debug;..\..\Source\Core;..\..\Source\Brokers\DBX;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Brokers\UIB;..\..\Source\Brokers\ZeosDBO;..\..\Source\Catalogs\MsSql;..\..\Source\Catalogs\IbFb" ! -I"c:\programmi\borland\delphi7\Lib\Debug;..\..\Source\Core;..\..\Source\Brokers\DBX;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Brokers\UIB;..\..\Source\Brokers\ZeosDBO;..\..\Source\Catalogs\MsSql;..\..\Source\Catalogs\IbFb" ! -R"c:\programmi\borland\delphi7\Lib\Debug;..\..\Source\Core;..\..\Source\Brokers\DBX;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Brokers\UIB;..\..\Source\Brokers\ZeosDBO;..\..\Source\Catalogs\MsSql;..\..\Source\Catalogs\IbFb" -w-UNIT_PLATFORM -w-UNSAFE_TYPE |
From: Carlo B. <car...@us...> - 2005-10-25 14:32:01
|
Update of /cvsroot/instantobjects/Source/Brokers/XML In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2105/Source/Brokers/XML Modified Files: InstantXML.pas Log Message: changes for Kylix 3: removed emf support under Linux and added catalogs. Remove unecessary files for PrimerK3 Index: InstantXML.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Brokers/XML/InstantXML.pas,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** InstantXML.pas 12 Oct 2005 13:40:56 -0000 1.10 --- InstantXML.pas 25 Oct 2005 14:31:51 -0000 1.11 *************** *** 51,56 **** DOT_XML_EXT = '.'+XML_EXT; XML_WILDCARD = '*'+DOT_XML_EXT; {$IFDEF D5}PathDelim = '\';{$ENDIF} ! type TXMLFileFormat = (xffUtf8, xffUtf8BOT, xffIso); --- 51,58 ---- DOT_XML_EXT = '.'+XML_EXT; XML_WILDCARD = '*'+DOT_XML_EXT; + {$IFNDEF LINUX} {$IFDEF D5}PathDelim = '\';{$ENDIF} ! {$ENDIF} ! type TXMLFileFormat = (xffUtf8, xffUtf8BOT, xffIso); |
From: Carlo B. <car...@us...> - 2005-10-25 14:32:01
|
Update of /cvsroot/instantobjects/Source/Catalogs/IBFb/K3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2105/Source/Catalogs/IBFb/K3 Added Files: IOIBFbCatalog.dpk Log Message: changes for Kylix 3: removed emf support under Linux and added catalogs. Remove unecessary files for PrimerK3 --- NEW FILE: IOIBFbCatalog.dpk --- package IOIBFbCatalog; {$I '../../../InstantVersion.inc'} {$ALIGN 8} {$ASSERTIONS ON} {$BOOLEVAL OFF} {$DEBUGINFO ON} {$EXTENDEDSYNTAX ON} {$IMPORTEDDATA ON} {$IOCHECKS ON} {$LOCALSYMBOLS ON} {$LONGSTRINGS ON} {$OPENSTRINGS ON} {$OPTIMIZATION ON} {$OVERFLOWCHECKS OFF} {$RANGECHECKS OFF} {$REFERENCEINFO ON} {$SAFEDIVIDE OFF} {$STACKFRAMES OFF} {$TYPEDADDRESS ON} {$VARSTRINGCHECKS ON} {$WRITEABLECONST OFF} {$MINENUMSIZE 1} {$IMAGEBASE $400000} {$DESCRIPTION 'InstantObjects Catalog for InterBase and Firebird (Kylix 3)'} {$LIBPREFIX ''} {$LIBSUFFIX '_K3'} {$RUNONLY} {$IMPLICITBUILD OFF} requires rtl, IOCore; contains InstantIBFbCatalog in '../InstantIBFbCatalog.pas'; end. |
From: Carlo B. <car...@us...> - 2005-10-25 14:32:01
|
Update of /cvsroot/instantobjects/Source/Design/K3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2105/Source/Design/K3 Modified Files: DclIOCore.dpk Log Message: changes for Kylix 3: removed emf support under Linux and added catalogs. Remove unecessary files for PrimerK3 Index: DclIOCore.dpk =================================================================== RCS file: /cvsroot/instantobjects/Source/Design/K3/DclIOCore.dpk,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** DclIOCore.dpk 16 Sep 2005 17:22:18 -0000 1.4 --- DclIOCore.dpk 25 Oct 2005 14:31:52 -0000 1.5 *************** *** 1,5 **** package DclIOCore; ! {$R *.res} {$R '../../Core/InstantPresentation.dcr'} {$R '../../Core/InstantExplorer.dcr'} --- 1,5 ---- package DclIOCore; ! {$I '../../InstantPackageVersion.inc'} {$R '../../Core/InstantPresentation.dcr'} {$R '../../Core/InstantExplorer.dcr'} *************** *** 31,34 **** --- 31,35 ---- {$DESCRIPTION 'InstantObjects Design-Time Package (Kylix 3)'} {$LIBPREFIX ''} + {$LIBSUFFIX '_K3'} {$DESIGNONLY} {$IMPLICITBUILD OFF} |
From: Carlo B. <car...@us...> - 2005-10-25 14:32:01
|
Update of /cvsroot/instantobjects/Source/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2105/Source/Core Modified Files: InstantPersistence.pas Log Message: changes for Kylix 3: removed emf support under Linux and added catalogs. Remove unecessary files for PrimerK3 Index: InstantPersistence.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantPersistence.pas,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -d -r1.66 -r1.67 *** InstantPersistence.pas 23 Oct 2005 23:13:26 -0000 1.66 --- InstantPersistence.pas 25 Oct 2005 14:31:51 -0000 1.67 *************** *** 15389,15393 **** {$IFDEF LINUX} GraphicClassList[gffBmp] := QGraphics.TBitmap; - GraphicClassList[gffEmf] := QGraphics.TBitmap; GraphicClassList[gffPng] := QGraphics.TBitmap; GraphicClassList[gffJpeg]:= QGraphics.TBitmap; --- 15389,15392 ---- |
From: Carlo B. <car...@us...> - 2005-10-25 14:32:00
|
Update of /cvsroot/instantobjects/Source/Core/K3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2105/Source/Core/K3 Modified Files: IOCore.dpk Log Message: changes for Kylix 3: removed emf support under Linux and added catalogs. Remove unecessary files for PrimerK3 Index: IOCore.dpk =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/K3/IOCore.dpk,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** IOCore.dpk 16 Sep 2005 17:22:18 -0000 1.5 --- IOCore.dpk 25 Oct 2005 14:31:52 -0000 1.6 *************** *** 1,5 **** package IOCore; ! {$R *.res} {$ALIGN 8} {$ASSERTIONS ON} --- 1,5 ---- package IOCore; ! {$I '../../InstantPackageVersion.inc'} {$ALIGN 8} {$ASSERTIONS ON} *************** *** 25,28 **** --- 25,29 ---- {$DESCRIPTION 'InstantObjects Run-Time Package (Kylix 3)'} {$LIBPREFIX ''} + {$LIBSUFFIX '_K3'} {$RUNONLY} {$IMPLICITBUILD OFF} |
From: Carlo B. <car...@us...> - 2005-10-25 14:32:00
|
Update of /cvsroot/instantobjects/Source/Catalogs/MSSql/K3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2105/Source/Catalogs/MSSql/K3 Added Files: IOMSSqlCatalog.dpk Log Message: changes for Kylix 3: removed emf support under Linux and added catalogs. Remove unecessary files for PrimerK3 --- NEW FILE: IOMSSqlCatalog.dpk --- package IOMSSqlCatalog; {$I '../../../InstantVersion.inc'} {$ALIGN 8} {$ASSERTIONS ON} {$BOOLEVAL OFF} {$DEBUGINFO ON} {$EXTENDEDSYNTAX ON} {$IMPORTEDDATA ON} {$IOCHECKS ON} {$LOCALSYMBOLS ON} {$LONGSTRINGS ON} {$OPENSTRINGS ON} {$OPTIMIZATION ON} {$OVERFLOWCHECKS OFF} {$RANGECHECKS OFF} {$REFERENCEINFO ON} {$SAFEDIVIDE OFF} {$STACKFRAMES OFF} {$TYPEDADDRESS ON} {$VARSTRINGCHECKS ON} {$WRITEABLECONST OFF} {$MINENUMSIZE 1} {$IMAGEBASE $400000} {$DESCRIPTION 'InstantObjects Catalog for MS-Sql (Kylix 3)'} {$LIBPREFIX ''} {$LIBSUFFIX '_K3'} {$RUNONLY} {$IMPLICITBUILD OFF} requires rtl, IOCore; contains InstantMSSqlCatalog in '../InstantMSSqlCatalog.pas'; end. |
From: Carlo B. <car...@us...> - 2005-10-25 14:31:59
|
Update of /cvsroot/instantobjects/Source/Brokers/DBX/K3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2105/Source/Brokers/DBX/K3 Modified Files: DclIODBX.dpk IODBX.dpk Log Message: changes for Kylix 3: removed emf support under Linux and added catalogs. Remove unecessary files for PrimerK3 Index: DclIODBX.dpk =================================================================== RCS file: /cvsroot/instantobjects/Source/Brokers/DBX/K3/DclIODBX.dpk,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** DclIODBX.dpk 21 Mar 2005 16:55:22 -0000 1.1 --- DclIODBX.dpk 25 Oct 2005 14:31:51 -0000 1.2 *************** *** 1,5 **** package DclIODBX; ! {$R *.res} {$R '../InstantDBX.dcr'} {$ALIGN 8} --- 1,5 ---- package DclIODBX; ! {$I '../../../InstantVersion.inc'} {$R '../InstantDBX.dcr'} {$ALIGN 8} *************** *** 26,29 **** --- 26,30 ---- {$DESCRIPTION 'InstantObjects DBX Design-Time Support (Kylix 3)'} {$LIBPREFIX ''} + {$LIBSUFFIX '_K3'} {$DESIGNONLY} {$IMPLICITBUILD OFF} Index: IODBX.dpk =================================================================== RCS file: /cvsroot/instantobjects/Source/Brokers/DBX/K3/IODBX.dpk,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** IODBX.dpk 16 Sep 2005 17:22:17 -0000 1.2 --- IODBX.dpk 25 Oct 2005 14:31:51 -0000 1.3 *************** *** 1,5 **** package IODBX; ! {$R *.res} {$ALIGN 8} {$ASSERTIONS ON} --- 1,5 ---- package IODBX; ! {$I '../../../InstantVersion.inc'} {$ALIGN 8} {$ASSERTIONS ON} *************** *** 25,28 **** --- 25,29 ---- {$DESCRIPTION 'InstantObjects DBX Run-Time Support (Kyix 3)'} {$LIBPREFIX ''} + {$LIBSUFFIX '_K3'} {$RUNONLY} {$IMPLICITBUILD OFF} |
From: Carlo B. <car...@us...> - 2005-10-25 14:31:59
|
Update of /cvsroot/instantobjects/Source/Brokers/XML/k3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2105/Source/Brokers/XML/k3 Modified Files: DclIOXML.dpk IOXML.dpk Log Message: changes for Kylix 3: removed emf support under Linux and added catalogs. Remove unecessary files for PrimerK3 Index: DclIOXML.dpk =================================================================== RCS file: /cvsroot/instantobjects/Source/Brokers/XML/k3/DclIOXML.dpk,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** DclIOXML.dpk 21 Mar 2005 16:50:02 -0000 1.1 --- DclIOXML.dpk 25 Oct 2005 14:31:51 -0000 1.2 *************** *** 1,5 **** package DclIOXML; ! {$R *.res} {$R '../InstantXML.dcr'} {$ALIGN 8} --- 1,5 ---- package DclIOXML; ! {$I '../../../InstantVersion.inc'} {$R '../InstantXML.dcr'} {$ALIGN 8} *************** *** 26,29 **** --- 26,30 ---- {$DESCRIPTION 'InstantObjects XML Design-Time Support (Kylix 3)'} {$LIBPREFIX ''} + {$LIBSUFFIX '_K3'} {$DESIGNONLY} {$IMPLICITBUILD OFF} Index: IOXML.dpk =================================================================== RCS file: /cvsroot/instantobjects/Source/Brokers/XML/k3/IOXML.dpk,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** IOXML.dpk 20 Oct 2005 08:04:00 -0000 1.5 --- IOXML.dpk 25 Oct 2005 14:31:51 -0000 1.6 *************** *** 2,6 **** {$I '../../../InstantVersion.inc'} - {$ALIGN 8} {$ASSERTIONS ON} --- 2,5 ---- *************** *** 26,29 **** --- 25,29 ---- {$DESCRIPTION 'InstantObjects XML Run-Time Support (Kyix 3)'} {$LIBPREFIX ''} + {$LIBSUFFIX '_K3'} {$RUNONLY} {$IMPLICITBUILD OFF} |
From: Carlo B. <car...@us...> - 2005-10-25 14:28:21
|
Update of /cvsroot/instantobjects/Source/Catalogs/MSSql/K3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1312/K3 Log Message: Directory /cvsroot/instantobjects/Source/Catalogs/MSSql/K3 added to the repository |
From: Carlo B. <car...@us...> - 2005-10-25 14:25:04
|
Update of /cvsroot/instantobjects/Source/Catalogs/IBFb/K3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32763/K3 Log Message: Directory /cvsroot/instantobjects/Source/Catalogs/IBFb/K3 added to the repository |
From: Steven M. <sr...@us...> - 2005-10-25 06:21:21
|
Update of /cvsroot/instantobjects/Source/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23400 Modified Files: InstantPresentation.pas Log Message: Fix for enhanced Remember/Revert functionality in TInstantCustomExposer. Need to check CurrentObject type on entry to Remember's SaveMemoData local function. Index: InstantPresentation.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantPresentation.pas,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** InstantPresentation.pas 19 Oct 2005 23:52:22 -0000 1.22 --- InstantPresentation.pas 25 Oct 2005 06:21:13 -0000 1.23 *************** *** 3416,3432 **** i: Integer; begin ! with CurrentObject as TInstantObject do ! begin ! for i := 0 to Pred(Metadata.MemberMap.Count) do begin ! vAttributeMetadata := Metadata.MemberMap.Items[i]; ! if vAttributeMetadata.AttributeType = atMemo then begin ! vInstantMemo := ! TInstantMemo(AttributeByName(vAttributeMetadata.Name)); ! MemoList.Add(vInstantMemo.Value); end; end; - end; end; --- 3416,3433 ---- i: Integer; begin ! if CurrentObject is TInstantObject then ! with TInstantObject(CurrentObject) do begin ! for i := 0 to Pred(Metadata.MemberMap.Count) do begin ! vAttributeMetadata := Metadata.MemberMap[i]; ! if vAttributeMetadata.AttributeType = atMemo then ! begin ! vInstantMemo := ! TInstantMemo(AttributeByName(vAttributeMetadata.Name)); ! MemoList.Add(vInstantMemo.Value) ! end; end; end; end; |
Update of /cvsroot/instantobjects/Help In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13147/Help Added Files: AttributeEditorAccess.gif AttributeEditorDefinition.gif AttributeEditorDefinitionExternal.gif ClassEditor.gif ClassEditorAttributes.gif ConnectionDefEditor.gif ConnectionManager.gif DatabaseBuilder.gif IOHelp.cnt IOHelp.hsc InstantObjectsPalette.gif ModelExplorerInheritance.gif ModelExplorerRelations.gif ModelUnitSelector.gif PersonEditForm.gif Powered by InstantObjects 150x38.gif Powered by InstantObjects 300x75.gif PrimerExplorer.gif PrimerQuery.gif instantobjects_logo.gif io_mini_logo.gif model.gif ui.gif Log Message: Added source files of InstantObjects Guide 2.0: requires HelpScribble trial to edit and compile hsc project. --- NEW FILE: ui.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: PrimerExplorer.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Powered by InstantObjects 150x38.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Powered by InstantObjects 300x75.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: IOHelp.cnt --- ;This help file was created with HelpScribble 7.5.0 ;Licensed to: CiBiSoft.com :BASE IOHelp.hlp :TITLE InstantObjects Guide 2.0 1 Welcome=id_0 1 InstantObjects overview 2 Using InstantObjects=75DE_G6 2 Installing InstantObjects=Scribble30 2 License Agreement=327SA3X 2 Creating the Business Model 3 Creating the Business Model=327SA3P 3 The Model Explorer=327SA3S 3 Defining Classes=327SA3T 3 Defining Attributes=327SA3U 3 External Storage of attributes=Scribble100 3 Adding Business Rules=327SA3V 3 Building/Evolving the Business Model=327SA3W 2 Creating the User Interface 3 Creating the User Interface=75DE_G4 3 Persistence by RAD=327SA.P 3 The Connector=327SA.Q 3 The Exposer=327SA.R 3 The Selector=327SA.S 2 Programming with Persistent Objects 3 Programming with Persistent Objects=327SA.T 3 Creating New Objects=327SA.W 3 Retrieving Existing Objects=327SA.X 3 Associating Objects=327SA3Y 3 Using the InstantQuery=Scribble300 2 The Primer demo 3 Learning the Primer demo=Scribble320 3 Introduction=Scribble330 3 The Business Model=Scribble340 3 The User Interface=Scribble350 3 Persisting Objects=Scribble360 3 Mapping Scheme=Scribble370 3 Streaming=Scribble380 3 Exposing Objects=Scribble390 3 Selecting Objects=Scribble400 3 Filtering=Scribble410 3 Sorting=Scribble420 3 Object Explorer=Scribble430 3 Connection Manager=Scribble440 1 InstantObjects Symbol Reference 2 Classes 3 EInstantAccessError=id_1>MAIN 3 EInstantConflict=id_22>MAIN 3 EInstantConversionError=id_8>MAIN 3 EInstantError=id_6>MAIN 3 EInstantKeyViolation=id_54>MAIN 3 EInstantRangeError=id_66>MAIN 3 EInstantStreamError=id_76>MAIN 3 EInstantValidationError=id_86>MAIN 3 TInstantADOConnector=id_97>MAIN 3 TInstantADSConnector=id_150>MAIN 3 TInstantAttribute=id_7>MAIN 3 TInstantBDEConnector=id_221>MAIN 3 TInstantBlob=id_179>MAIN 3 TInstantBoolean=id_175>MAIN 3 TInstantCollection=id_263>MAIN 3 TInstantCollectionItem=id_267>MAIN 3 TInstantComplex=id_285>MAIN 3 TInstantConnectionBasedConnector=id_106>MAIN 3 TInstantConnectionManager=id_317>MAIN 3 TInstantConnector=id_104>MAIN 3 TInstantContainer=id_306>MAIN 3 TInstantCustomExposer=id_407>MAIN 3 TInstantDateTime=id_9>MAIN 3 TInstantDBISAMConnector=id_513>MAIN 3 TInstantDBXConnector=id_531>MAIN 3 TInstantElement=id_305>MAIN 3 TInstantExplorer=id_559>MAIN 3 TInstantExposer=id_416>MAIN 3 TInstantFileStream=id_604>MAIN 3 TInstantFlashFilerConnector=id_626>MAIN 3 TInstantFloat=id_173>MAIN 3 TInstantIBXConnector=id_649>MAIN 3 TInstantInteger=id_171>MAIN 3 TInstantMemo=id_180>MAIN 3 TInstantNumeric=id_641>MAIN 3 TInstantObject=id_170>MAIN 3 TInstantOwnedCollection=id_877>MAIN 3 TInstantPart=id_172>MAIN 3 TInstantParts=id_176>MAIN 3 TInstantReference=id_174>MAIN 3 TInstantReferences=id_178>MAIN 3 TInstantRelationalConnector=id_105>MAIN 3 TInstantResourceStream=id_965>MAIN 3 TInstantSelector=id_417>MAIN 3 TInstantSimple=id_240>MAIN 3 TInstantStream=id_608>MAIN 3 TInstantStreamable=id_168>MAIN 3 TInstantString=id_177>MAIN 3 TInstantStringStream=327SI6R>MAIN 2 Records / Structs 3 TInstantVersion=327SI0S>MAIN 2 Functions 3 InstantCharSetToStr=327SI7S>MAIN 3 InstantCheckConnection=327SI7X>MAIN 3 InstantCheckConnector=327SI7X>MAIN 3 InstantClassNameToName=327SI8R>MAIN 3 InstantCompareObjects=327SI8U>MAIN 3 InstantCompareText=327SI8X>MAIN 3 InstantCompareValues=327SI9Y>MAIN 3 InstantConstArrayToVariant=327SI9P>MAIN 3 InstantDateTimeToStr=327SI9Q>MAIN 3 InstantDisableNotifiers=327SI9U>MAIN 3 InstantEnableNotifiers=327SI9W>MAIN 3 InstantExploreObject=327SI0Y>MAIN 3 InstantFileVersion=327SI0Q>MAIN 3 InstantFileVersionStr=327SI0T>MAIN 3 InstantFindAccessorClass=327SI0V>MAIN 3 InstantFindClass=3OA4HS5>MAIN 3 InstantGenerateId=id_831>MAIN 3 InstantGetAccessorClass=327SI0X>MAIN 3 InstantGetClass=3OA4HS7>MAIN 3 InstantGetClasses=75DEFG5>MAIN 3 InstantIsIdentifier=3OA4HS.>MAIN 3 InstantIsValidObjectId=id_832>MAIN 3 InstantMatchObject=75DE_GZ>MAIN 3 InstantNameToClassName=327SI8T>MAIN 3 InstantObjectBinaryToText=75DE_H2>MAIN 3 InstantObjectTextToBinary=75DE_H4>MAIN 3 InstantPartStr=75DE_H6>MAIN 3 InstantReadObject=7RMQ.VH>MAIN 3 InstantReadObjects=7RMQ.VB>MAIN 3 InstantRefreshObjects=7RMQ.VE>MAIN 3 InstantRegisterAccessorClass=53SLGW3>MAIN 3 InstantRegisterClass=3OA4HS8>MAIN 3 InstantRegisterClasses=7RMQ.WA>MAIN 3 InstantRightPos=7RMQ.WD>MAIN 3 InstantStrToCharSet=327SI7W>MAIN 3 InstantStrToDate=75DE_A8>MAIN 3 InstantStrToDateTime=327SI9T>MAIN 3 InstantStrToList=75DE_A3>MAIN 3 InstantStrToTime=75DE_A1>MAIN 3 InstantUnregisterAccessorClass=7RMQ.WH>MAIN 3 InstantUnregisterClass=8DW2.CP>MAIN 3 InstantUnregisterClasses=7RMQ.WC>MAIN 3 InstantWriteObject=7RMQ.VA>MAIN 3 InstantWriteObjects=7RMQ.VD>MAIN 2 Types 3 PInstantAttribute=id_169>MAIN 3 TInstantAccessMode=id_473>MAIN 3 TInstantADOProviderType=id_149>MAIN 3 TInstantAttributeChangeEvent=id_871>MAIN 3 TInstantAttributeType=id_219>MAIN 3 TInstantBDEDriverType=id_234>MAIN 3 TInstantCompareObjectsEvent=id_489>MAIN 3 TInstantCompareOption=75DE_B3>MAIN 3 TInstantCompareOptions=327SI8V>MAIN 3 TInstantConflictAction=id_843>MAIN 3 TInstantConnectionManagerActionType=75DE_B4>MAIN 3 TInstantConnectionManagerActionTypes=id_343>MAIN 3 TInstantConnectorClass=id_103>MAIN 3 TInstantContentChangeEvent=id_870>MAIN 3 TInstantContentChangeType=id_812>MAIN 3 TInstantCreateObjectEvent=id_490>MAIN 3 TInstantDataType=75DE_B7>MAIN 3 TInstantErrorAction=id_853>MAIN 3 TInstantErrorEvent=id_876>MAIN 3 TInstantExplorerLayout=id_582>MAIN 3 TInstantExplorerNodeType=75DE_BZ>MAIN 3 TInstantExplorerNodeTypes=id_583>MAIN 3 TInstantExposerOption=8DW2.FP>MAIN 3 TInstantExposerOptions=id_478>MAIN 3 TInstantFieldDefEvent=id_499>MAIN 3 TInstantFieldErrorEvent=id_492>MAIN 3 TInstantFieldEvent=id_497>MAIN 3 TInstantGetDataSetEvent=id_962>MAIN 3 TInstantIncludeFieldEvent=id_495>MAIN 3 TInstantInitDataSetEvent=id_964>MAIN 3 TInstantLimitObjectsEvent=id_502>MAIN 3 TInstantNotifyEvent=id_874>MAIN 3 TInstantObjectNotifyEvent=75DE_C5>MAIN 3 TInstantOperationType=id_852>MAIN 3 TInstantProcessObjectEvent=327SI4P>MAIN 3 TInstantProgressEvent=id_860>MAIN 3 TInstantSchemeEvent=id_369>MAIN 3 TInstantSortCompare=id_406>MAIN 3 TInstantStreamFormat=8DW2.BP>MAIN 3 TInstantVerificationResult=id_868>MAIN 2 Constants 3 InstantAttributePrefix=75DE_CZ>MAIN 3 InstantClassPrefix=75DE_D1>MAIN 3 InstantDateFormat=8DW2.DP>MAIN 3 InstantDateTimeFormat=327SI9S>MAIN 2 Units 3 InstantADO.pas=id_102>MAIN 3 InstantADS.pas=id_155>MAIN 3 InstantBDE.pas=id_225>MAIN 3 InstantClasses.pas=id_36>MAIN 3 InstantConnectionManager.pas=id_322>MAIN 3 InstantConsts.pas=75DE_D3>MAIN 3 InstantDBISAM.pas=id_518>MAIN 3 InstantDBX.pas=id_533>MAIN 3 InstantExplorer.pas=id_564>MAIN 3 InstantFlashFiler.pas=id_628>MAIN 3 InstantIBX.pas=id_653>MAIN 3 InstantPersistence.pas=id_5>MAIN 3 InstantPresentation.pas=id_413>MAIN --- NEW FILE: AttributeEditorDefinition.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: PersonEditForm.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: AttributeEditorAccess.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: AttributeEditorDefinitionExternal.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: InstantObjectsPalette.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: DatabaseBuilder.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ClassEditor.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: model.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ModelExplorerRelations.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: IOHelp.hsc --- HelpScribble project file. 13 PvOv`bsg.pbz-16O773 0 1 InstantObjects Guide 2.0 TRUE D:\ETHEA\InstantObjects\Trunk\Help,D:\ETHEA\INSTAN~3\trunk\Help 1 BrowseButtons() 0 FALSE FALSE TRUE [...29921 lines suppressed...] .... 0 0 0 0 0 0 <new macro> 0 Arial 0 9 1 .... 0 0 0 0 0 0 --- NEW FILE: ModelExplorerInheritance.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: PrimerQuery.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ConnectionManager.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ClassEditorAttributes.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ModelUnitSelector.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: instantobjects_logo.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: ConnectionDefEditor.gif --- (This appears to be a binary file; contents omitted.) --- NEW FILE: io_mini_logo.gif --- (This appears to be a binary file; contents omitted.) |
From: Joao M. <jcm...@us...> - 2005-10-23 23:13:35
|
Update of /cvsroot/instantobjects/Source/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13433/Core Modified Files: InstantAccessors.pas InstantPersistence.pas Log Message: Fixed memory leak with circular references; Fixed AV when refreshing objects Index: InstantPersistence.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantPersistence.pas,v retrieving revision 1.65 retrieving revision 1.66 diff -C2 -d -r1.65 -r1.66 *** InstantPersistence.pas 22 Oct 2005 01:21:25 -0000 1.65 --- InstantPersistence.pas 23 Oct 2005 23:13:26 -0000 1.66 *************** *** 511,514 **** --- 511,515 ---- TInstantConnector = class; + TInstantComplex = class; TInstantObjectReference = class(TInstantStreamable) *************** *** 517,520 **** --- 518,522 ---- FObjectClassName: string; FObjectId: string; + FOwner: TInstantComplex; FOwnsInstance: Boolean; procedure ClearReference; *************** *** 531,535 **** procedure WriteObject(Writer: TInstantWriter); override; public ! constructor Create(AInstance: TInstantObject = nil; AOwnsInstance: Boolean = False); constructor Clone(Source: TInstantObjectReference; AOwnsInstance: Boolean); destructor Destroy; override; --- 533,538 ---- procedure WriteObject(Writer: TInstantWriter); override; public ! constructor Create(AInstance: TInstantObject = nil; AOwnsInstance: Boolean = False; ! AOwner: TInstantComplex = nil); constructor Clone(Source: TInstantObjectReference; AOwnsInstance: Boolean); destructor Destroy; override; *************** *** 1148,1151 **** --- 1151,1155 ---- FOwner: TInstantObject; FOwnerAttribute: TInstantComplex; + FRefBy: TObjectList; FRefCount: Integer; FSavedState: TInstantObjectState; *************** *** 1160,1164 **** procedure CreateAttributes; procedure DestroyAttributes; ! procedure DestroyStates; procedure DoAfterContentChange(Container: TInstantContainer; ChangeType: TInstantContentChangeType; Index: Integer; AObject: TInstantObject); --- 1164,1168 ---- procedure CreateAttributes; procedure DestroyAttributes; ! procedure DestroyInternalFields; procedure DoAfterContentChange(Container: TInstantContainer; ChangeType: TInstantContentChangeType; Index: Integer; AObject: TInstantObject); *************** *** 1199,1202 **** --- 1203,1207 ---- function GetObjectStore: TInstantObjectStore; function GetPersistentId: string; + function GetReferencedBy: TObjectList; function GetSavedState: TInstantObjectState; function GetState: TInstantObjectState; *************** *** 1333,1336 **** --- 1338,1342 ---- property PersistentId: string read GetPersistentId; property RefCount: Integer read FRefCount; + property ReferencedBy: TObjectList read GetReferencedBy; property UpdateCount: Integer read GetUpdateCount; property OnAfterContentChange: TInstantContentChangeEvent read FOnAfterContentChange write FOnAfterContentChange; *************** *** 4287,4295 **** constructor TInstantObjectReference.Create(AInstance: TInstantObject; ! AOwnsInstance: Boolean); begin inherited Create; - Instance := AInstance; OwnsInstance := AOwnsInstance; end; --- 4293,4302 ---- constructor TInstantObjectReference.Create(AInstance: TInstantObject; ! AOwnsInstance: Boolean; AOwner: TInstantComplex); begin inherited Create; OwnsInstance := AOwnsInstance; + FOwner := AOwner; + Instance := AInstance; end; *************** *** 4331,4334 **** --- 4338,4343 ---- procedure TInstantObjectReference.DestroyInstance; begin + if HasInstance and Assigned(FOwner) then + Instance.ReferencedBy.Remove(FOwner); if FOwnsInstance then Instance.Free; *************** *** 4454,4459 **** begin FInstance := Value; if OwnsInstance then ! Instance.AddRef; end; end; --- 4463,4470 ---- begin FInstance := Value; + if Assigned(FOwner) then + FInstance.ReferencedBy.Add(FOwner); if OwnsInstance then ! FInstance.AddRef; end; end; *************** *** 6207,6211 **** begin if not Assigned(FObjectReference) then ! FObjectReference := TInstantObjectReference.Create(nil, True); Result := FObjectReference; end; --- 6218,6222 ---- begin if not Assigned(FObjectReference) then ! FObjectReference := TInstantObjectReference.Create(nil, True, Self); Result := FObjectReference; end; *************** *** 7066,7070 **** AObject: TInstantObject): TInstantObjectReference; begin ! Result := TInstantObjectReference.Create(AObject, True); end; --- 7077,7081 ---- AObject: TInstantObject): TInstantObjectReference; begin ! Result := TInstantObjectReference.Create(AObject, True, Self); end; *************** *** 7856,7861 **** end; ! procedure TInstantObject.DestroyStates; begin FreeAndNil(FState); FreeAndNil(FSavedState); --- 7867,7873 ---- end; ! procedure TInstantObject.DestroyInternalFields; begin + FreeAndNil(FRefBy); FreeAndNil(FState); FreeAndNil(FSavedState); *************** *** 8049,8053 **** --- 8061,8077 ---- function TInstantObject.DoRelease: Integer; + var + I: Integer; begin + // This object will be destroyed only when objects among circular + // references points each other + if Assigned(FRefBy) and (FRefBy.Count = FRefCount-1) then + for I := 0 to Pred(FRefBy.Count) do + if (FRefBy[I] is TInstantComplex) then + with TInstantComplex(FRefBy[I]) do + if AttributeType in [atReference, atReferences] then + // FRefCount will be decremented whenever this object is dereferenced + repeat until not DetachObject(Self); + if FRefCount > 0 then begin *************** *** 8189,8193 **** end; DestroyAttributes; ! DestroyStates; end; --- 8213,8217 ---- end; DestroyAttributes; ! DestroyInternalFields; end; *************** *** 8322,8325 **** --- 8346,8356 ---- end; + function TInstantObject.GetReferencedBy: TObjectList; + begin + if not Assigned(FRefBy) then + FRefBy := TObjectList.Create(False); + Result := FRefBy; + end; + function TInstantObject.GetSavedState: TInstantObjectState; begin *************** *** 12416,12421 **** List[I] := ObjectRow; end; ! ObjectRow^.Row := Succ(I); ! ObjectRow^.Instance := nil; end; end; --- 12447,12452 ---- List[I] := ObjectRow; end; ! ObjectRow.Row := Succ(I); ! ObjectRow.Instance := nil; end; end; *************** *** 12427,12432 **** New(ObjectRow); try ! ObjectRow^.Row := -1; ! ObjectRow^.Instance := AObject; if AObject is TInstantObject then TInstantObject(AObject).AddRef; --- 12458,12463 ---- New(ObjectRow); try ! ObjectRow.Row := -1; ! ObjectRow.Instance := AObject; if AObject is TInstantObject then TInstantObject(AObject).AddRef; *************** *** 12460,12464 **** ObjectRow := ObjectRows[Index]; if not Assigned(ObjectRow.Instance) then ! ObjectRow^.Instance := CreateObject(ObjectRow^.Row); Result := ObjectRow.Instance; end; --- 12491,12495 ---- ObjectRow := ObjectRows[Index]; if not Assigned(ObjectRow.Instance) then ! ObjectRow.Instance := CreateObject(ObjectRow.Row); Result := ObjectRow.Instance; end; *************** *** 12468,12472 **** begin for Result := 0 to Pred(ObjectRowCount) do ! if ObjectRows[Result]^.Instance = AObject then Exit; if AObject is TInstantObject then --- 12499,12503 ---- begin for Result := 0 to Pred(ObjectRowCount) do ! if ObjectRows[Result].Instance = AObject then Exit; if AObject is TInstantObject then *************** *** 12483,12488 **** New(ObjectRow); try ! ObjectRow^.Row := -1; ! ObjectRow^.Instance := AObject; if AObject is TInstantObject then TInstantObject(AObject).AddRef; --- 12514,12519 ---- New(ObjectRow); try ! ObjectRow.Row := -1; ! ObjectRow.Instance := AObject; if AObject is TInstantObject then TInstantObject(AObject).AddRef; *************** *** 12513,12517 **** with ObjectRows[I]^ do if (Instance is TInstantObject) ! and (TInstantObject(Instance).RefCount > 1) then begin BusyObjects.Add(Instance); --- 12544,12548 ---- with ObjectRows[I]^ do if (Instance is TInstantObject) ! and (TInstantObject(Instance).RefCount > 0) then begin BusyObjects.Add(Instance); *************** *** 12535,12542 **** begin ObjectRow := ObjectRows[I]; ! if ObjectRow^.Instance = AObject then begin AObject.Free; ! ObjectRow^.Instance := nil; Exit; end; --- 12566,12573 ---- begin ObjectRow := ObjectRows[I]; ! if ObjectRow.Instance = AObject then begin AObject.Free; ! ObjectRow.Instance := nil; Exit; end; *************** *** 12562,12566 **** function TInstantNavigationalQuery.ObjectFetched(Index: Integer): Boolean; begin ! Result := Assigned(ObjectRows[Index]^.Instance); end; --- 12593,12597 ---- function TInstantNavigationalQuery.ObjectFetched(Index: Integer): Boolean; begin ! Result := Assigned(ObjectRows[Index].Instance); end; *************** *** 14612,14623 **** try for I := 0 to Pred(ObjectReferenceCount) do - begin with ObjectReferences[I] do ! if HasInstance and (Instance.RefCount > 1) then begin BusyObjects.Add(Instance); TInstantObject(Instance).AddRef; end; - end; Close; Open; --- 14643,14652 ---- try for I := 0 to Pred(ObjectReferenceCount) do with ObjectReferences[I] do ! if HasInstance and (Instance.RefCount > 0) then begin BusyObjects.Add(Instance); TInstantObject(Instance).AddRef; end; Close; Open; Index: InstantAccessors.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantAccessors.pas,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** InstantAccessors.pas 18 Oct 2005 03:02:42 -0000 1.4 --- InstantAccessors.pas 23 Oct 2005 23:13:26 -0000 1.5 *************** *** 25,29 **** * * Contributor(s): ! * Nando Dessena, Steven Mitchell * * ***** END LICENSE BLOCK ***** *) --- 25,29 ---- * * Contributor(s): ! * Nando Dessena, Steven Mitchell, Joao Morais * * ***** END LICENSE BLOCK ***** *) *************** *** 116,128 **** destructor TInstantObjectAccessor.Destroy; - var - i: Integer; begin - // Force release of referenced objects to help avoid - // ownership contention with circular references. - if InContent and (Container is TInstantReferences) then - for i := 0 to Pred(Container.Count) do - TInstantReferences(Container).DestroyObject(i); - if Assigned(Subject) then Subject.Free; --- 116,120 ---- |