IdGenerater.cs 759 B

12345678910111213141516171819202122232425262728293031323334353637
  1. namespace KYFramework
  2. {
  3. public static class IdGenerater
  4. {
  5. private static long instanceIdGenerator;
  6. private static long appId;
  7. public static long AppId
  8. {
  9. set
  10. {
  11. appId = value;
  12. instanceIdGenerator = appId << 48;
  13. }
  14. }
  15. private static ushort value;
  16. public static long GenerateId()
  17. {
  18. long time = TimeHelper.ClientNow();
  19. return (appId << 48) + (time << 16) + ++value;
  20. }
  21. public static long GenerateInstanceId()
  22. {
  23. return ++instanceIdGenerator;
  24. }
  25. public static int GetAppId(long v)
  26. {
  27. return (int)(v >> 48);
  28. }
  29. }
  30. }