Changeset 295


Ignore:
Timestamp:
Nov 15, 2011, 8:46:43 AM (13 years ago)
Author:
george
Message:
  • Moved: Units UPool and UResetableThread moved from CoolWeb to Common. Both units redone to more abstract reprezentation.
  • Added: New Port property in class TSqlDatabase.
Files:
6 added
2 deleted
10 edited

Legend:

Unmodified
Added
Removed
  • Common/Common.lpk

    r290 r295  
    1212        <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
    1313      </SearchPaths>
     14      <Linking>
     15        <Debugging>
     16          <GenerateDebugInfo Value="True"/>
     17          <DebugInfoType Value="dsAuto"/>
     18        </Debugging>
     19      </Linking>
    1420      <Other>
    1521        <CompilerMessages>
     
    2228    <License Value="GNU/GPL"/>
    2329    <Version Minor="3"/>
    24     <Files Count="8">
     30    <Files Count="10">
    2531      <Item1>
    2632        <Filename Value="StopWatch.pas"/>
     
    5662        <UnitName Value="UMemory"/>
    5763      </Item8>
     64      <Item9>
     65        <Filename Value="UResetableThread.pas"/>
     66        <UnitName Value="UResetableThread"/>
     67      </Item9>
     68      <Item10>
     69        <Filename Value="UPool.pas"/>
     70        <UnitName Value="UPool"/>
     71      </Item10>
    5872    </Files>
    5973    <i18n>
  • Common/Common.pas

    r290 r295  
    99uses
    1010  StopWatch, UCommon, UDebugLog, UDelay, UPrefixMultiplier, UURI, UThreading,
    11   UMemory, LazarusPackageIntf;
     11  UMemory, UResetableThread, UPool, LazarusPackageIntf;
    1212
    1313implementation
  • Common/UDebugLog.pas

    r290 r295  
    101101begin
    102102  try
    103     ForceDirectoriesUTF8(ExtractFileDir(FileName));
     103    if ExtractFileDir(FileName) <> '' then
     104      ForceDirectoriesUTF8(ExtractFileDir(FileName));
    104105    if FileExistsUTF8(FileName) then LogFile := TFileStream.Create(UTF8Decode(FileName), fmOpenWrite)
    105106      else LogFile := TFileStream.Create(UTF8Decode(FileName), fmCreate);
  • Common/UThreading.pas

    r271 r295  
    4545  end;
    4646
     47  TVirtualThreadClass = class of TVirtualThread;
     48
    4749  TListedThread = class;
    4850
     
    102104  TThreadList = class(TObjectList)
    103105    function FindById(Id: Integer): TVirtualThread;
    104     constructor Create;
     106    constructor Create; virtual;
    105107  end;
    106108
     
    187189begin
    188190  inherited Create;
    189   OwnsObjects := False;
    190191end;
    191192
     
    201202        OnException(Parent.FThread, E);
    202203  end;
    203                                                                                                                                                                                                                                                                                                                                     end;
     204end;
    204205
    205206{ TListedThread }
     
    354355ThreadListLock := TCriticalSection.Create;
    355356ThreadList := TThreadList.Create;
     357ThreadList.OwnsObjects := False;
    356358
    357359finalization
  • ExceptionLogger/ExceptionLogger.lpk

    r281 r295  
    6565    </i18n>
    6666    <Type Value="RunAndDesignTime"/>
    67     <RequiredPkgs Count="127">
     67    <RequiredPkgs Count="2">
    6868      <Item1>
    6969        <PackageName Value="LCL"/>
    7070      </Item1>
    7171      <Item2>
    72         <PackageName Value="LCL"/>
    73       </Item2>
    74       <Item3>
    75         <PackageName Value="LCL"/>
    76       </Item3>
    77       <Item4>
    78         <PackageName Value="LCL"/>
    79       </Item4>
    80       <Item5>
    81         <PackageName Value="LCL"/>
    82       </Item5>
    83       <Item6>
    84         <PackageName Value="LCL"/>
    85       </Item6>
    86       <Item7>
    87         <PackageName Value="LCL"/>
    88       </Item7>
    89       <Item8>
    90         <PackageName Value="LCL"/>
    91       </Item8>
    92       <Item9>
    93         <PackageName Value="LCL"/>
    94       </Item9>
    95       <Item10>
    96         <PackageName Value="LCL"/>
    97       </Item10>
    98       <Item11>
    99         <PackageName Value="LCL"/>
    100       </Item11>
    101       <Item12>
    102         <PackageName Value="LCL"/>
    103       </Item12>
    104       <Item13>
    105         <PackageName Value="LCL"/>
    106       </Item13>
    107       <Item14>
    108         <PackageName Value="LCL"/>
    109       </Item14>
    110       <Item15>
    111         <PackageName Value="LCL"/>
    112       </Item15>
    113       <Item16>
    114         <PackageName Value="LCL"/>
    115       </Item16>
    116       <Item17>
    117         <PackageName Value="LCL"/>
    118       </Item17>
    119       <Item18>
    120         <PackageName Value="LCL"/>
    121       </Item18>
    122       <Item19>
    123         <PackageName Value="LCL"/>
    124       </Item19>
    125       <Item20>
    126         <PackageName Value="LCL"/>
    127       </Item20>
    128       <Item21>
    129         <PackageName Value="LCL"/>
    130       </Item21>
    131       <Item22>
    132         <PackageName Value="LCL"/>
    133       </Item22>
    134       <Item23>
    135         <PackageName Value="LCL"/>
    136       </Item23>
    137       <Item24>
    138         <PackageName Value="LCL"/>
    139       </Item24>
    140       <Item25>
    141         <PackageName Value="LCL"/>
    142       </Item25>
    143       <Item26>
    144         <PackageName Value="LCL"/>
    145       </Item26>
    146       <Item27>
    147         <PackageName Value="LCL"/>
    148       </Item27>
    149       <Item28>
    150         <PackageName Value="LCL"/>
    151       </Item28>
    152       <Item29>
    153         <PackageName Value="LCL"/>
    154       </Item29>
    155       <Item30>
    156         <PackageName Value="LCL"/>
    157       </Item30>
    158       <Item31>
    159         <PackageName Value="LCL"/>
    160       </Item31>
    161       <Item32>
    162         <PackageName Value="LCL"/>
    163       </Item32>
    164       <Item33>
    165         <PackageName Value="LCL"/>
    166       </Item33>
    167       <Item34>
    168         <PackageName Value="LCL"/>
    169       </Item34>
    170       <Item35>
    171         <PackageName Value="LCL"/>
    172       </Item35>
    173       <Item36>
    174         <PackageName Value="LCL"/>
    175       </Item36>
    176       <Item37>
    177         <PackageName Value="LCL"/>
    178       </Item37>
    179       <Item38>
    180         <PackageName Value="LCL"/>
    181       </Item38>
    182       <Item39>
    183         <PackageName Value="LCL"/>
    184       </Item39>
    185       <Item40>
    186         <PackageName Value="LCL"/>
    187       </Item40>
    188       <Item41>
    189         <PackageName Value="LCL"/>
    190       </Item41>
    191       <Item42>
    192         <PackageName Value="LCL"/>
    193       </Item42>
    194       <Item43>
    195         <PackageName Value="LCL"/>
    196       </Item43>
    197       <Item44>
    198         <PackageName Value="LCL"/>
    199       </Item44>
    200       <Item45>
    201         <PackageName Value="LCL"/>
    202       </Item45>
    203       <Item46>
    204         <PackageName Value="LCL"/>
    205       </Item46>
    206       <Item47>
    207         <PackageName Value="LCL"/>
    208       </Item47>
    209       <Item48>
    210         <PackageName Value="LCL"/>
    211       </Item48>
    212       <Item49>
    213         <PackageName Value="LCL"/>
    214       </Item49>
    215       <Item50>
    216         <PackageName Value="LCL"/>
    217       </Item50>
    218       <Item51>
    219         <PackageName Value="LCL"/>
    220       </Item51>
    221       <Item52>
    222         <PackageName Value="LCL"/>
    223       </Item52>
    224       <Item53>
    225         <PackageName Value="LCL"/>
    226       </Item53>
    227       <Item54>
    228         <PackageName Value="LCL"/>
    229       </Item54>
    230       <Item55>
    231         <PackageName Value="LCL"/>
    232       </Item55>
    233       <Item56>
    234         <PackageName Value="LCL"/>
    235       </Item56>
    236       <Item57>
    237         <PackageName Value="LCL"/>
    238       </Item57>
    239       <Item58>
    240         <PackageName Value="LCL"/>
    241       </Item58>
    242       <Item59>
    243         <PackageName Value="LCL"/>
    244       </Item59>
    245       <Item60>
    246         <PackageName Value="LCL"/>
    247       </Item60>
    248       <Item61>
    249         <PackageName Value="LCL"/>
    250       </Item61>
    251       <Item62>
    252         <PackageName Value="LCL"/>
    253       </Item62>
    254       <Item63>
    255         <PackageName Value="LCL"/>
    256       </Item63>
    257       <Item64>
    258         <PackageName Value="LCL"/>
    259       </Item64>
    260       <Item65>
    261         <PackageName Value="LCL"/>
    262       </Item65>
    263       <Item66>
    264         <PackageName Value="LCL"/>
    265       </Item66>
    266       <Item67>
    267         <PackageName Value="LCL"/>
    268       </Item67>
    269       <Item68>
    270         <PackageName Value="LCL"/>
    271       </Item68>
    272       <Item69>
    273         <PackageName Value="LCL"/>
    274       </Item69>
    275       <Item70>
    276         <PackageName Value="LCL"/>
    277       </Item70>
    278       <Item71>
    279         <PackageName Value="LCL"/>
    280       </Item71>
    281       <Item72>
    282         <PackageName Value="LCL"/>
    283       </Item72>
    284       <Item73>
    285         <PackageName Value="LCL"/>
    286       </Item73>
    287       <Item74>
    288         <PackageName Value="LCL"/>
    289       </Item74>
    290       <Item75>
    291         <PackageName Value="LCL"/>
    292       </Item75>
    293       <Item76>
    294         <PackageName Value="LCL"/>
    295       </Item76>
    296       <Item77>
    297         <PackageName Value="LCL"/>
    298       </Item77>
    299       <Item78>
    300         <PackageName Value="LCL"/>
    301       </Item78>
    302       <Item79>
    303         <PackageName Value="LCL"/>
    304       </Item79>
    305       <Item80>
    306         <PackageName Value="LCL"/>
    307       </Item80>
    308       <Item81>
    309         <PackageName Value="LCL"/>
    310       </Item81>
    311       <Item82>
    312         <PackageName Value="LCL"/>
    313       </Item82>
    314       <Item83>
    315         <PackageName Value="LCL"/>
    316       </Item83>
    317       <Item84>
    318         <PackageName Value="LCL"/>
    319       </Item84>
    320       <Item85>
    321         <PackageName Value="LCL"/>
    322       </Item85>
    323       <Item86>
    324         <PackageName Value="LCL"/>
    325       </Item86>
    326       <Item87>
    327         <PackageName Value="LCL"/>
    328       </Item87>
    329       <Item88>
    330         <PackageName Value="LCL"/>
    331       </Item88>
    332       <Item89>
    333         <PackageName Value="LCL"/>
    334       </Item89>
    335       <Item90>
    336         <PackageName Value="LCL"/>
    337       </Item90>
    338       <Item91>
    339         <PackageName Value="LCL"/>
    340       </Item91>
    341       <Item92>
    342         <PackageName Value="LCL"/>
    343       </Item92>
    344       <Item93>
    345         <PackageName Value="LCL"/>
    346       </Item93>
    347       <Item94>
    348         <PackageName Value="LCL"/>
    349       </Item94>
    350       <Item95>
    351         <PackageName Value="LCL"/>
    352       </Item95>
    353       <Item96>
    354         <PackageName Value="LCL"/>
    355       </Item96>
    356       <Item97>
    357         <PackageName Value="LCL"/>
    358       </Item97>
    359       <Item98>
    360         <PackageName Value="LCL"/>
    361       </Item98>
    362       <Item99>
    363         <PackageName Value="LCL"/>
    364       </Item99>
    365       <Item100>
    366         <PackageName Value="LCL"/>
    367       </Item100>
    368       <Item101>
    369         <PackageName Value="LCL"/>
    370       </Item101>
    371       <Item102>
    372         <PackageName Value="LCL"/>
    373       </Item102>
    374       <Item103>
    375         <PackageName Value="LCL"/>
    376       </Item103>
    377       <Item104>
    378         <PackageName Value="LCL"/>
    379       </Item104>
    380       <Item105>
    381         <PackageName Value="LCL"/>
    382       </Item105>
    383       <Item106>
    384         <PackageName Value="LCL"/>
    385       </Item106>
    386       <Item107>
    387         <PackageName Value="LCL"/>
    388       </Item107>
    389       <Item108>
    390         <PackageName Value="LCL"/>
    391       </Item108>
    392       <Item109>
    393         <PackageName Value="LCL"/>
    394       </Item109>
    395       <Item110>
    396         <PackageName Value="LCL"/>
    397       </Item110>
    398       <Item111>
    399         <PackageName Value="LCL"/>
    400       </Item111>
    401       <Item112>
    402         <PackageName Value="LCL"/>
    403       </Item112>
    404       <Item113>
    405         <PackageName Value="LCL"/>
    406       </Item113>
    407       <Item114>
    408         <PackageName Value="LCL"/>
    409       </Item114>
    410       <Item115>
    411         <PackageName Value="LCL"/>
    412       </Item115>
    413       <Item116>
    414         <PackageName Value="LCL"/>
    415       </Item116>
    416       <Item117>
    417         <PackageName Value="LCL"/>
    418       </Item117>
    419       <Item118>
    420         <PackageName Value="LCL"/>
    421       </Item118>
    422       <Item119>
    423         <PackageName Value="LCL"/>
    424       </Item119>
    425       <Item120>
    426         <PackageName Value="LCL"/>
    427       </Item120>
    428       <Item121>
    429         <PackageName Value="LCL"/>
    430       </Item121>
    431       <Item122>
    432         <PackageName Value="LCL"/>
    433       </Item122>
    434       <Item123>
    435         <PackageName Value="LCL"/>
    436       </Item123>
    437       <Item124>
    438         <PackageName Value="LCL"/>
    439       </Item124>
    440       <Item125>
    441         <PackageName Value="LCL"/>
    442       </Item125>
    443       <Item126>
    444         <PackageName Value="LCL"/>
    445       </Item126>
    446       <Item127>
    44772        <PackageName Value="FCL"/>
    44873        <MinVersion Major="1" Valid="True"/>
    449       </Item127>
     74      </Item2>
    45075    </RequiredPkgs>
    45176    <UsageOptions>
  • ExceptionLogger/UExceptionForm.lfm

    r281 r295  
    11object ExceptionForm: TExceptionForm
    22  Left = 331
    3   Height = 316
     3  Height = 301
    44  Top = 184
    5   Width = 506
     5  Width = 457
    66  Caption = 'Exception info'
    7   ClientHeight = 316
    8   ClientWidth = 506
     7  ClientHeight = 301
     8  ClientWidth = 457
    99  OnCreate = FormCreate
    1010  OnDestroy = FormDestroy
     
    1616    Height = 80
    1717    Top = 0
    18     Width = 506
     18    Width = 457
    1919    Align = alTop
    2020    BevelOuter = bvNone
    2121    ClientHeight = 80
    22     ClientWidth = 506
     22    ClientWidth = 457
    2323    TabOrder = 0
    2424    object Image1: TImage
     
    135135    object Label1: TLabel
    136136      Left = 69
    137       Height = 18
     137      Height = 14
    138138      Top = 8
    139       Width = 260
     139      Width = 196
    140140      Caption = 'Error occured during program execution:'
    141141      ParentColor = False
     
    145145      Height = 46
    146146      Top = 24
    147       Width = 296
    148       Anchors = [akTop, akLeft, akBottom]
     147      Width = 370
     148      Anchors = [akTop, akLeft, akRight, akBottom]
    149149      AutoSize = False
    150150      Caption = '   '
     
    155155  object PanelDescription: TPanel
    156156    Left = 0
    157     Height = 204
     157    Height = 189
    158158    Top = 80
    159     Width = 506
     159    Width = 457
    160160    Align = alClient
    161161    BevelOuter = bvNone
    162     ClientHeight = 204
    163     ClientWidth = 506
     162    ClientHeight = 189
     163    ClientWidth = 457
    164164    TabOrder = 1
    165165    object PageControl1: TPageControl
    166166      Left = 8
    167       Height = 202
     167      Height = 187
    168168      Top = 0
    169       Width = 493
     169      Width = 444
    170170      ActivePage = TabSheet2
    171171      Anchors = [akTop, akLeft, akRight, akBottom]
     
    190190      object TabSheet2: TTabSheet
    191191        Caption = 'Call stack'
    192         ClientHeight = 167
    193         ClientWidth = 487
     192        ClientHeight = 161
     193        ClientWidth = 436
    194194        object ListView1: TListView
    195195          Left = 4
    196           Height = 157
     196          Height = 151
    197197          Top = 7
    198           Width = 481
     198          Width = 430
    199199          Anchors = [akTop, akLeft, akRight, akBottom]
    200200          Columns = <         
     
    234234    Left = 0
    235235    Height = 32
    236     Top = 284
    237     Width = 506
     236    Top = 269
     237    Width = 457
    238238    Align = alBottom
    239239    BevelOuter = bvNone
    240240    ClientHeight = 32
    241     ClientWidth = 506
     241    ClientWidth = 457
    242242    TabOrder = 2
    243243    object ButtonKill: TButton
    244       Left = 344
     244      Left = 295
    245245      Height = 25
    246246      Top = 3
     
    252252    end
    253253    object ButtonClose: TButton
    254       Left = 432
     254      Left = 383
    255255      Height = 25
    256256      Top = 3
     
    263263    object CheckBoxIgnore: TCheckBox
    264264      Left = 10
    265       Height = 22
    266       Top = 3
    267       Width = 224
     265      Height = 17
     266      Top = 8
     267      Width = 169
    268268      Anchors = [akLeft, akBottom]
    269269      Caption = 'Next time ignore this exception'
     
    271271    end
    272272    object ButtonDetails: TButton
    273       Left = 264
     273      Left = 215
    274274      Height = 25
    275275      Top = 3
  • Network/CoolWeb/CoolWeb.lpk

    r255 r295  
    1111        <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
    1212      </SearchPaths>
     13      <Linking>
     14        <Debugging>
     15          <GenerateDebugInfo Value="True"/>
     16          <DebugInfoType Value="dsAuto"/>
     17        </Debugging>
     18      </Linking>
    1319      <Other>
    1420        <CompilerMessages>
     
    2127    <License Value="GNU/GPL"/>
    2228    <Version Minor="2"/>
    23     <Files Count="18">
     29    <Files Count="16">
    2430      <Item1>
    2531        <Filename Value="WebServer/UHTTPServer.pas"/>
     
    7682      </Item12>
    7783      <Item13>
    78         <Filename Value="Common/UPool.pas"/>
    79         <UnitName Value="UPool"/>
     84        <Filename Value="Common/UXmlClasses.pas"/>
     85        <UnitName Value="UXmlClasses"/>
    8086      </Item13>
    8187      <Item14>
    82         <Filename Value="Common/UResetableThread.pas"/>
    83         <UnitName Value="UResetableThread"/>
    84       </Item14>
    85       <Item15>
    86         <Filename Value="Common/UXmlClasses.pas"/>
    87         <UnitName Value="UXmlClasses"/>
    88       </Item15>
    89       <Item16>
    9088        <Filename Value="WebServer/UWebPage.pas"/>
    9189        <HasRegisterProc Value="True"/>
    9290        <UnitName Value="UWebPage"/>
    93       </Item16>
    94       <Item17>
     91      </Item14>
     92      <Item15>
    9593        <Filename Value="WebServer/UWebApp.pas"/>
    9694        <HasRegisterProc Value="True"/>
    9795        <UnitName Value="UWebApp"/>
    98       </Item17>
    99       <Item18>
     96      </Item15>
     97      <Item16>
    10098        <Filename Value="LazIDEReg.pas"/>
    10199        <HasRegisterProc Value="True"/>
    102100        <UnitName Value="LazIDEReg"/>
    103       </Item18>
     101      </Item16>
    104102    </Files>
    105103    <Type Value="RunAndDesignTime"/>
  • Network/CoolWeb/CoolWeb.pas

    r254 r295  
    1010  UHTTPServer, UHTTPServerCGI, UHTTPServerTCP, UHTTPSessionFile,
    1111  UHTTPSessionMySQL, USqlDatabase, UTCPServer, UPageList, UUser, UHtmlClasses,
    12   UMemoryStreamEx, UMIMEType, UPool, UResetableThread, UXmlClasses, UWebPage,
    13   UWebApp, LazIDEReg, LazarusPackageIntf;
     12  UMemoryStreamEx, UMIMEType, UXmlClasses, UWebPage, UWebApp, LazIDEReg,
     13  LazarusPackageIntf;
    1414
    1515implementation
  • Network/CoolWeb/Network/UTCPServer.pas

    r94 r295  
    11unit UTCPServer;
    22
    3 {$mode objfpc}{$H+}
     3{$mode Delphi}{$H+}
    44
    55interface
     
    2323    Parent: TTCPServer;
    2424    Socket: TTCPBlockSocket;
    25     procedure Execute; override;
     25    procedure Execute;
    2626    constructor Create;
    2727    destructor Destroy; override;
     
    3030  { TClientThreadedPool }
    3131
    32   TClientThreadedPool = class(TThreadedPool)
     32  TClientThreadedPool = class(TThreadPool)
    3333  private
    3434    FActive: Boolean;
     
    152152begin
    153153  inherited;
     154  Method := Execute;
    154155  Socket := TTCPBlockSocket.Create;
    155156end;
     
    164165
    165166procedure TClientThreadedPool.SetActive(const AValue: Boolean);
    166 var
    167   I: Integer;
    168167begin
    169   if not FActive and AValue then begin
    170     for I := 0 to TotalCount - 1 do begin
    171       TThreadedPoolItem(Items[I]).Item := TTCPClientThread.Create;
    172     end;
    173   end else
    174   if FActive and not AValue then begin
    175 
    176   end;
    177168  FActive := AValue;
    178169end;
  • Network/CoolWeb/Persistence/USqlDatabase.pas

    r258 r295  
    3939    FHostName: string;
    4040    FPassword: string;
     41    FPort: Word;
    4142    FSession: PMYSQL;
    4243    FConnected: Boolean;
     
    8182    property UserName: string read FUserName write FUserName;
    8283    property Password: string read FPassword write FPassword;
     84    property Port: Word read FPort write FPort;
    8385    property Encoding: string read FEncoding write FEncoding;
    8486    property OnLogQuery: TLogEvent read FOnLogQuery write FOnLogQuery;
     
    184186//  FSession.charset := 'latin2';
    185187  NewSession := mysql_real_connect(FSession, PChar(HostName), PChar(UserName),
    186     PChar(Password), PChar(Database), 3306, nil, CLIENT_LONG_PASSWORD + CLIENT_CONNECT_WITH_DB);
     188    PChar(Password), PChar(Database), FPort, nil, CLIENT_LONG_PASSWORD + CLIENT_CONNECT_WITH_DB);
    187189  if Assigned(NewSession) then begin
    188190    FConnected := True;
     
    360362  FSession := nil;
    361363  Encoding := 'utf8';
     364  FPort := 3306;
    362365end;
    363366
Note: See TracChangeset for help on using the changeset viewer.