コード例 #1
0
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;
}
コード例 #3
0
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;
}