Last active
June 22, 2016 10:58
-
-
Save StevenBlack/0b5238e6362078a6b33a to your computer and use it in GitHub Desktop.
SessionFactory creates objects that are wrapped in a private data session. Note that the factory can die but its private datasession lives until all its products are out of scope.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
*======================================= | |
DEFINE CLASS SessionFactory AS Session | |
*======================================= | |
DataSession = 2 && private | |
*========================== | |
FUNCTION Init() | |
*========================== | |
SET CENTURY TO 20 ROLLOVER 50 | |
SET CENTURY ON | |
SET DELETED ON | |
SET EXACT OFF | |
SET EXCLUSIVE OFF | |
SET MEMOWIDTH TO 8000 | |
SET MULTILOCKS ON | |
SET NEAR OFF | |
SET NULL OFF | |
SET SAFETY OFF | |
SET TALK OFF | |
SET SECONDS OFF | |
SET STRICTDATE TO 0 | |
RETURN | |
*========================== | |
FUNCTION Execute( tcCommand ) | |
*========================== | |
&tcCommand | |
RETURN | |
*========================== | |
FUNCTION CreateObject( p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15 ) | |
*========================== | |
LOCAL lnCount, loRetVal | |
lnCount= PCOUNT() | |
DO CASE | |
CASE lnCount = 1 | |
loRetVal = CREATEOBJECT( p1 ) | |
CASE lnCount = 2 | |
loRetVal = CREATEOBJECT( p1, p2 ) | |
CASE lnCount = 3 | |
loRetVal = CREATEOBJECT( p1, p2, p3 ) | |
CASE lnCount = 4 | |
loRetVal = CREATEOBJECT( p1, p2, p3, p4 ) | |
CASE lnCount = 5 | |
loRetVal = CREATEOBJECT( p1, p2, p3, p4, p5 ) | |
CASE lnCount = 6 | |
loRetVal = CREATEOBJECT( p1, p2, p3, p4, p5, p6 ) | |
CASE lnCount = 7 | |
loRetVal = CREATEOBJECT( p1, p2, p3, p4, p5, p6, p7 ) | |
CASE lnCount = 8 | |
loRetVal = CREATEOBJECT( p1, p2, p3, p4, p5, p6, p7, p8 ) | |
CASE lnCount = 9 | |
loRetVal = CREATEOBJECT( p1, p2, p3, p4, p5, p6, p7, p8, p9 ) | |
CASE lnCount = 10 | |
loRetVal = CREATEOBJECT( p1, p2, p3, p4, p5, p6, p7, p8, p9, p10 ) | |
CASE lnCount = 11 | |
loRetVal = CREATEOBJECT( p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11 ) | |
CASE lnCount = 12 | |
loRetVal = CREATEOBJECT( p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12 ) | |
CASE lnCount = 13 | |
loRetVal = CREATEOBJECT( p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13 ) | |
CASE lnCount = 14 | |
loRetVal = CREATEOBJECT( p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14 ) | |
CASE lnCount = 15 | |
loRetVal = CREATEOBJECT( p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15 ) | |
ENDCASE | |
RETURN loRetVal | |
ENDDEFINE |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi Steve,
FWIW, take a look at this fork: https://gist.github.com/FoxInCloud/9ecd988ed4c56cf44d69e98c3c6aab84
Amicalement,
Thierry Nivelet