PacketAnalizer.h 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #pragma once
  2. #include "CommanDefine.h"
  3. using namespace DIOS::Dev;
  4. class PacketAnalizer
  5. {
  6. public:
  7. PacketAnalizer(void);
  8. virtual ~PacketAnalizer(void);
  9. static DWORD GetPacketIdx(ResDataObject *pObj);
  10. static PACKET_TYPE GetPacketType(ResDataObject *pObj);
  11. static PACKET_CMD GetPacketCmd(ResDataObject *pObj);
  12. static string GetPacketKey(ResDataObject *pObj);
  13. static ResDataObject* GetPacketKeysRes(ResDataObject *pObj);
  14. static bool GetPacketHandleExistance(ResDataObject *pPacket);
  15. static bool GetPacketHandle(ResDataObject *pPacket,ResDataObject &Handle);
  16. static bool GetPacketHandleBusId(ResDataObject *pPacket, string &BusId,bool dev);//dev == false , Owner:Device
  17. static bool GetPacketHandleMachineId(ResDataObject *pPacket, string &MachineId, bool dev);
  18. static bool GetPacketHandleProcId(ResDataObject *pPacket, UINT64 &ProcId, bool dev);
  19. static bool GetPacketHandleAddr(ResDataObject *pPacket, UINT64 &Addr, bool dev);
  20. static bool GetDestinationMachineId(ResDataObject &packet, string &machineId);
  21. static bool GetDestinationBusId(ResDataObject &packet, string &busId);
  22. static bool GetDestinationProcId(ResDataObject &packet, UINT64 &procId);
  23. static bool GetPacketHandleCrc(ResDataObject *pPacket, UINT64 &Crc);
  24. static bool MakePacketContextExistance(ResDataObject *pPacket);
  25. static bool GetPacketRoute(ResDataObject *pPacket, DIOS_PACKET_ROUTE &Route);
  26. static bool GetPacketContext(ResDataObject *pPacket,ResDataObject &Context);
  27. static bool GetPacketRetCode(ResDataObject *pPacket,RET_STATUS &retcode);
  28. static bool GetPacketMsgInfo(ResDataObject *pPacket,string &Info);
  29. static bool CloneResponse(ResDataObject &Obj, ResDataObject *pReq);
  30. static DWORD MakePacketIdx();
  31. static ACTION_SYNC_MODE GetPacketSyncMode(ResDataObject *pObj);
  32. static void MakeRetCode(RET_STATUS retcode,ResDataObject *pObj,const char *pMsg = NULL);
  33. static bool MakeResponseByReq(ResDataObject &Response, ResDataObject &Req, RET_STATUS ret, const char* pInfo = NULL);
  34. static void MakeNotify(ResDataObject &Obj, PACKET_CMD cmd, ResDataObject &Key, const ResDataObject &Context);
  35. static void MakeNotify(ResDataObject &Obj, PACKET_CMD cmd, const char *pKey, const ResDataObject &Context);
  36. static void MakeNotify(ResDataObject &Obj,PACKET_CMD cmd,const char *pKey,const char *pContext);
  37. static void MakeNotifyP2P(ResDataObject &Obj, PACKET_CMD cmd, ResDataObject *pReq, const char *pKey, const char *pContext);
  38. //static DWORD MakeActionRequest(ResDataObject &Obj,DiosDevFileHandle &handle,const char *pActionName,ResDataObject &ReqParams,ACTION_SYNC_MODE mode = ACTION_SYNC);
  39. //static DWORD MakeOpenRequest(ResDataObject &Obj,DiosDevFileHandle &handle,const char *pFilePath);
  40. static bool MakeOpenResponse(ResDataObject &Req, ResDataObject &Res, ResDataObject &DevResource);
  41. static bool MakeCloseNotifyByRes(ResDataObject &Response, ResDataObject &Req);
  42. static bool MakeCloseRequestByRes(ResDataObject &Response, ResDataObject &Req);
  43. //static bool MakeCloseRequest(ResDataObject &Obj, DiosDevFileHandle &handle, PACKET_TYPE Type = PACKET_TYPE_REQ);
  44. static bool MakeCloseResponse(ResDataObject &Req, ResDataObject &Res);
  45. static bool UpdatePacketRoute(ResDataObject &Obj, DIOS_PACKET_ROUTE Route);
  46. static bool UpdateOpenRequest(ResDataObject &Req, ResDataObject &MachineId, ResDataObject &busId, UINT64 ProcId, UINT64 Addr);
  47. //static bool UpdateNotifyHandle(ResDataObject &Obj, DiosDevFileHandle &handle);
  48. //static bool UpdateDeviceNotifyResponse(ResDataObject &Req, ResDataObject &MachineId, ResDataObject &busId, UINT64 ProcId, UINT64 Addr);
  49. static bool UpdatePacketContext(ResDataObject &packet, ResDataObject &Context);
  50. static bool GetParam(ResDataObject *pReq, unsigned int ParamIdx, ResDataObject &value);
  51. static bool AddParam(ResDataObject *pRes, unsigned int ParamIdx, ResDataObject &value);
  52. static bool UpdateParam(ResDataObject *pRes, unsigned int ParamIdx, ResDataObject &value);
  53. };