NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

campaigndefinition_serialization.py (1397B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\campaigns\client\v1\data_model\flatbuffer\campaigndefinition_serialization.py
      2 import campaigns.client.v1.data_model.flatbuffer.campaigndefinition_generated as fb_campaign
      3 from campaigns.client.v1.data_model.campaign import Campaign
      4 from flatbuffers import Builder
      5 
      6 def serialize_campaigns_list_to_flatbuffer(campaign_list):
      7     builder = Builder()
      8     serialized_campaigns = []
      9     for campaign in campaign_list:
     10         serialized_campaigns.append(campaign.to_flatbuffer(builder))
     11 
     12     fb_campaign.CampaignListStartCampaignsVector(builder, len(serialized_campaigns))
     13     for serialized_campaign in reversed(serialized_campaigns):
     14         builder.PrependUOffsetTRelative(serialized_campaign)
     15 
     16     campaigns_fb = builder.EndVector()
     17     fb_campaign.CampaignListStart(builder)
     18     fb_campaign.CampaignListAddCampaigns(builder, campaigns_fb)
     19     campaign_list_fb = fb_campaign.CampaignListEnd(builder)
     20     builder.Finish(campaign_list_fb)
     21     return builder.Output()
     22 
     23 
     24 def deserialize_flatbuffer_to_campaigns_list(flatbuffer_data):
     25     campaign_list = fb_campaign.CampaignList.GetRootAs(flatbuffer_data)
     26     definitions = []
     27     for i in range(campaign_list.CampaignsLength()):
     28         definition = Campaign.from_flatbuffer(campaign_list.Campaigns(i))
     29         definitions.append(definition)
     30 
     31     return definitions