⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uapublic.pas

📁 基于Midas 技术的多层应用开发包第二版(带开发文档)
💻 PAS
字号:
{******************************************************************************************}
{                                                                                          }
{       Universal Agent on demond SDK                                                      }
{                                                                                          }
{                                                                                          }
{ COPYRIGHT                                                                                }
{ =========                                                                                }
{ The UA SDK (software) is Copyright (C) 2001-2003, by vinson zeng(曾胡龙).                }
{ All rights reserved.                                                                     }
{ The authors - vinson zeng (曾胡龙),                                                      }
{ exclusively own all copyrights to the Advanced Application                               }
{ Controls (AppControls) and all other products distributed by Utilmind Solutions(R).      }
{                                                                                          }
{ LIABILITY DISCLAIMER                                                                     }
{ ====================                                                                     }
{ THIS SOFTWARE IS DISTRIBUTED "AS IS" AND WITHOUT WARRANTIES AS TO PERFORMANCE            }
{ OF MERCHANTABILITY OR ANY OTHER WARRANTIES WHETHER EXPRESSED OR IMPLIED.                 }
{ YOU USE IT AT YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS,                }
{ DAMAGES, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING OR MISUSING THIS SOFTWARE.}
{                                                                                          }
{ RESTRICTIONS                                                                             }
{ ============                                                                             }
{ You may not attempt to reverse compile, modify,                                          }
{ translate or disassemble the software in whole or in part.                               }
{ You may not remove or modify any copyright notice or the method by which                 }
{ it may be invoked.                                                                       }
{******************************************************************************************}


unit UAPublic;

interface
uses
  Windows, Messages, SysUtils, Classes,StdVcl,Variants,Forms,
  uaSrvObj,UAServiceObjectPool,UAUnits;


  procedure _InternalRequest(const SrvObjName, ServiceName: WideString;DataIn: OleVariant; var DataOut: OleVariant);
  procedure _InternalUpdate (const SrvObjName, ServiceName: WideString;DataIn: OleVariant; var DataOut: OleVariant);
  procedure _InternalExecute(const SrvObjName, ServiceName: WideString;DataIn: OleVariant; var DataOut: OleVariant);

implementation

procedure _InternalRequest(const SrvObjName, ServiceName: WideString;DataIn: OleVariant; var DataOut: OleVariant);
var

  sName: string;
  aPmObj: TPmObj;
  SrvObjMgr: TCustomPoolManager;
  aSrvObj: TUAServerObject;
  i: integer;
  dBegin:TDateTime;

begin

  dBegin := Now;
  sName := LowerCase(SrvObjName);

  for i:=0 to PoolManagerList.Count-1 do
  begin
    aPmObj := TPmObj(PoolManagerList[i]);
    if AnsiCompareText(SrvObjName,aPmObj.Name) = 0 then
    begin
      SrvObjMgr := TCustomPoolManager(aPmObj.aPm);
      aSrvObj := TUAServerObject(SrvObjMgr.LockInstance);
      try
        aSrvObj.Request(ServiceName,DataIn,DataOut);
        if VarIsArray(DataIn) then //2004-3-17 add by vinson zeng
          UADebugEx(ddRequest,dBegin,aSrvObj,'UA_SrvObj Name:'+SrvObjName +#13#10+'UA_Service Name:'+ServiceName +#13#10 +_GetBasicClientInfo(DataIn));
      except

      end;
      SrvObjMgr.UnlockInstance(TCustomPoolObject(aSrvObj));
      Break;
    end;
  end;

end;

procedure _InternalUpdate(const SrvObjName, ServiceName: WideString;DataIn: OleVariant; var DataOut: OleVariant);
var
  sName: string;
  aPmObj: TPmObj;
  SrvObjMgr: TCustomPoolManager;
  aSrvObj: TUAServerObject;
  i: integer;
  dBegin:TDateTime;

begin

  dBegin := Now;

  sName := LowerCase(SrvObjName);

  for i:=0 to PoolManagerList.Count-1 do
  begin
    aPmObj := TPmObj(PoolManagerList[i]);
    if AnsiCompareText(SrvObjName,aPmObj.Name) = 0 then
    begin
      SrvObjMgr := TCustomPoolManager(aPmObj.aPm);
      aSrvObj := TUAServerObject(SrvObjMgr.LockInstance);
      try
        aSrvObj.Update(ServiceName,DataIn,DataOut);
        if VarIsArray(DataIn) then //2004-3-17 add by vinson zeng
          UADebugEx(ddUpdate,dBegin,aSrvObj,'UA_SrvObj Name:'+SrvObjName +#13#10+'UA_Service Name:'+ServiceName +#13#10 +_GetBasicClientInfo(DataIn));
      except
      end;
      SrvObjMgr.UnlockInstance(TCustomPoolObject(aSrvObj));
      Break;
    end;
  end;

end;

procedure _InternalExecute(const SrvObjName, ServiceName: WideString;DataIn: OleVariant; var DataOut: OleVariant);
var
  sName: string;
  aPmObj: TPmObj;
  SrvObjMgr: TCustomPoolManager;
  aSrvObj: TUAServerObject;
  i: integer;
  dBegin:TDateTime;
begin

  dBegin := Now;
  sName := LowerCase(SrvObjName);

  for i:=0 to PoolManagerList.Count-1 do
  begin
    aPmObj := TPmObj(PoolManagerList[i]);
    if AnsiCompareText(SrvObjName,aPmObj.Name) = 0 then
    begin
      SrvObjMgr := TCustomPoolManager(aPmObj.aPm);
      aSrvObj := TUAServerObject(SrvObjMgr.LockInstance);
      try
        aSrvObj.Execute(ServiceName,DataIn,DataOut);
        if VarIsArray(DataIn) then //2004-3-17 add by vinson zeng
          UADebugEx(ddExecute,dBegin,aSrvObj,'UA_SrvObj Name:'+SrvObjName +#13#10+'UA_Service Name:'+ServiceName +#13#10 +_GetBasicClientInfo(DataIn));

      except
      end;
      SrvObjMgr.UnlockInstance(TCustomPoolObject(aSrvObj));
      Break;
    end;
  end;

end;


end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -