def get_hotel_details(self, controller, request, done): ht = request.name #print "In get_hotel_details! " + ht response = pb_test.hotel() ActuallyInit(response) # Sleeping to show asynchronous behavior on client end. # time.sleep(1) # We're done, call the run method of the done callback done.run(response)
import hotel_tag_pb2 as pb_test import hotel_service_imply """ needed coz PB dont initialize default values ! """ def ActuallyInit(obj): err = [] obj.IsInitialized(err) for field in err: attr = obj.__getattribute__(field) try: obj.__setattr__(field, attr) except: ActuallyInit(attr) # create and fill test message pb=pb_test.hotel() pb.hn = "The Royal Marigold Hotel" #print pb.hotel_url ActuallyInit(pb) #server = gorpc.server.SocketRpcServer(8090) server = gorpc.server.GreenStreamServer(8090) server.registerService(hotel_service_imply.hotel_service_impl()) server.run()
""" needed coz PB dont initialize default values ! """ def ActuallyInit(obj): err = [] obj.IsInitialized(err) for field in err: attr = obj.__getattribute__(field) try: obj.__setattr__(field, attr) except: ActuallyInit(attr) # create and fill test message pb=pb_test.hotel() pb.hn = "The Royal Marigold Hotel" #print pb.hotel_url ActuallyInit(pb) # convert it to JSON and back #pprint(pb.SerializeToString()) json_obj=protobuf_json.pb2json(pb) with open("tab.json","w+") as j_file: j_file.write(json.dumps(json_obj)) print "size of json : " + str(sys.getsizeof(json_obj)) pb2=protobuf_json.json2pb(pb_test.hotel(), json_obj) with open("tab.pb","w+") as p_file: p_file.write(pb2.SerializeToString()) print "size of pb : " + str(sys.getsizeof(pb2))