ActorDescriptorPtr StoreDelegateRddActor::generateActorDescriptor() { static std::shared_ptr<ActorDescriptorWrapper> descriptor; if (descriptor) return descriptor; descriptor = generateBaseActorDescriptor(STORE_DELEGATE_RDD_ACTOR); // in operation ActorOperationDescriporWrapper inCreateDelegateRdd; inCreateDelegateRdd.setName(CREATE_STORE_DELEGATE_RDD); inCreateDelegateRdd.setDescription("Create store delegate RDD."); inCreateDelegateRdd.setPayloadType("idgs.rdd.pb.CreateDelegateRddRequest"); descriptor->setInOperation(inCreateDelegateRdd.getName(), inCreateDelegateRdd); // out operation // out operation for CREATE_STORE_DELEGATE_RDD ActorOperationDescriporWrapper inCreateDelegatePartition; inCreateDelegatePartition.setName(CREATE_DELEGATE_PARTITION); inCreateDelegatePartition.setDescription("Out for create store delegate RDD, to create delegate partition."); inCreateDelegatePartition.setPayloadType("idgs.rdd.pb.CreateDelegatePartitionRequest"); descriptor->setOutOperation(inCreateDelegatePartition.getName(), inCreateDelegatePartition); // out descriptor for message RDD_TRANSFORM, RDD_READY ActorOperationDescriporWrapper outRddPartitionProcess; outRddPartitionProcess.setName(RDD_PARTITION_PROCESS); outRddPartitionProcess.setDescription("out message for RDD_TRANSFORM, RDD_READY"); outRddPartitionProcess.setPayloadType("idgs.rdd.pb.CreateDelegateRddRequest"); descriptor->setOutOperation(outRddPartitionProcess.getName(), outRddPartitionProcess); StoreDelegateRddActor::descriptor = descriptor; return descriptor; }
ActorDescriptorPtr PairStoreDelegateRddPartition::generateActorDescriptor() { static shared_ptr<ActorDescriptorWrapper> descriptor; if (descriptor) { return descriptor; } descriptor = std::make_shared<ActorDescriptorWrapper>(); descriptor->setName(PAIR_STORE_DELEGATE_RDD_PARTITION); descriptor->setDescription("Partition of store Delegate RDD"); descriptor->setType(AT_STATEFUL); // in operation ActorOperationDescriporWrapper rddTransform; rddTransform.setName(RDD_TRANSFORM); rddTransform.setDescription("Handle transform for current RDD partition."); rddTransform.setPayloadType("idgs.rdd.pb.RddRequest"); descriptor->setInOperation(rddTransform.getName(), rddTransform); ActorOperationDescriporWrapper actionRequest; actionRequest.setName(RDD_ACTION_REQUEST); actionRequest.setDescription("Handle action."); actionRequest.setPayloadType("idgs.rdd.pb.ActionRequest"); descriptor->setInOperation(actionRequest.getName(), actionRequest); ActorOperationDescriporWrapper rddStoreListener; rddStoreListener.setName(RDD_STORE_LISTENER); rddStoreListener.setDescription("Handle listener from store when insert data."); rddStoreListener.setPayloadType("idgs.rdd.pb.RddRequest"); descriptor->setInOperation(rddStoreListener.getName(), rddStoreListener); // out operation // no out descriptor for STORE_DELEGATE_RDD_PARTITION // out descriptor for RDD_TRANSFORM ActorOperationDescriporWrapper transComplete; transComplete.setName(PARTITION_TRANSFORM_COMPLETE); transComplete.setDescription("Send transform complete to RDD"); transComplete.setPayloadType("idgs.rdd.pb.RddResponse"); descriptor->setOutOperation(transComplete.getName(), transComplete); // out descriptor for RDD_ACTION_REQUEST ActorOperationDescriporWrapper actionResponse; actionResponse.setName(RDD_ACTION_RESPONSE); actionResponse.setDescription("Response when action done."); actionResponse.setPayloadType("idgs.rdd.pb.RddResponse"); descriptor->setOutOperation(actionResponse.getName(), actionResponse); PairStoreDelegateRddPartition::descriptor = descriptor; return descriptor; }
ActorDescriptorPtr DataAggregatorActor::generateActorDescriptor() { static std::shared_ptr<ActorDescriptorWrapper> descriptor; if (descriptor) { return descriptor; } descriptor = make_shared<ActorDescriptorWrapper>(); descriptor->setName(DATA_AGGREGATOR_ACTOR); descriptor->setDescription("Data CRUD aggregator for replicated store."); descriptor->setType(AT_STATEFUL); // insert ActorOperationDescriporWrapper internalInsert; internalInsert.setName(OP_INTERNAL_INSERT); internalInsert.setDescription("Receive the sync insert data request"); internalInsert.setPayloadType("idgs.store.pb.InsertRequest"); descriptor->setInOperation(internalInsert.getName(), internalInsert); descriptor->setOutOperation(internalInsert.getName(), internalInsert); ActorOperationDescriporWrapper insertResponse; insertResponse.setName(OP_INSERT_RESPONSE); insertResponse.setDescription("Receive insert response of one member, when received all members response, response to client."); insertResponse.setPayloadType("idgs.store.pb.InsertResponse"); descriptor->setInOperation(insertResponse.getName(), insertResponse); descriptor->setOutOperation(insertResponse.getName(), insertResponse); // update ActorOperationDescriporWrapper internalUpdate; internalUpdate.setName(OP_INTERNAL_UPDATE); internalUpdate.setDescription("Receive the sync update data request"); internalUpdate.setPayloadType("idgs.store.pb.UpdateRequest"); descriptor->setInOperation(internalUpdate.getName(), internalUpdate); descriptor->setOutOperation(internalUpdate.getName(), internalUpdate); ActorOperationDescriporWrapper updateResponse; updateResponse.setName(OP_UPDATE_RESPONSE); updateResponse.setDescription("Receive update response of one member, when received all members response, response to client."); updateResponse.setPayloadType("idgs.store.pb.UpdateResponse"); descriptor->setInOperation(updateResponse.getName(), updateResponse); descriptor->setOutOperation(updateResponse.getName(), updateResponse); // delete ActorOperationDescriporWrapper internalDelete; internalDelete.setName(OP_INTERNAL_DELETE); internalDelete.setDescription("Receive the sync delete data request"); internalDelete.setPayloadType("idgs.store.pb.DeleteRequest"); descriptor->setInOperation(internalDelete.getName(), internalDelete); descriptor->setOutOperation(internalDelete.getName(), internalDelete); ActorOperationDescriporWrapper deleteResponse; deleteResponse.setName(OP_DELETE_RESPONSE); deleteResponse.setDescription("Receive delete response of one member, when received all members response, response to client."); deleteResponse.setPayloadType("idgs.store.pb.DeleteResponse"); descriptor->setInOperation(deleteResponse.getName(), deleteResponse); descriptor->setOutOperation(deleteResponse.getName(), deleteResponse); // truncate ActorOperationDescriporWrapper internalTruncate; internalTruncate.setName(OP_INTERNAL_TRUNCATE); internalTruncate.setDescription("Handle truncate store request message"); internalTruncate.setPayloadType("idgs.store.pb.TruncateRequest"); descriptor->setInOperation(internalTruncate.getName(), internalTruncate); descriptor->setOutOperation(internalTruncate.getName(), internalTruncate); ActorOperationDescriporWrapper truncateResponse; truncateResponse.setName(OP_TRUNCATE_RESPONSE); truncateResponse.setDescription("Aggregate truncate store response. and send result to client"); truncateResponse.setPayloadType("idgs.store.pb.TruncateResponse"); descriptor->setInOperation(truncateResponse.getName(), truncateResponse); descriptor->setOutOperation(truncateResponse.getName(), truncateResponse); // count ActorOperationDescriporWrapper internalCount; internalCount.setName(OP_INTERNAL_COUNT); internalCount.setDescription("Receive count store size request"); internalCount.setPayloadType("idgs.store.pb.SizeRequest"); descriptor->setInOperation(internalCount.getName(), internalCount); descriptor->setOutOperation(internalCount.getName(), internalCount); ActorOperationDescriporWrapper countReponse; countReponse.setName(OP_COUNT_RESPONSE); countReponse.setDescription("Collect count store size response, make the total size and response to client."); countReponse.setPayloadType("idgs.store.pb.SizeResponse"); descriptor->setInOperation(countReponse.getName(), countReponse); descriptor->setOutOperation(countReponse.getName(), countReponse); // local access descriptor DataAggregatorActor::descriptor = descriptor; return descriptor; }