Пример #1
0
 private static void Registered(long managedDriverId, NativeArray *frameworkId, NativeArray *masterInfo)
 {
     CallScheduler(managedDriverId,
                   (driver, executor) => executor.Registered(driver,
                                                             ProtoBufHelper.Deserialize <FrameworkID>(frameworkId),
                                                             ProtoBufHelper.Deserialize <MasterInfo>(masterInfo)));
 }
Пример #2
0
 private static void Registered(long managedDriverId, NativeArray *executorInfo, NativeArray *frameworkInfo, NativeArray *slaveInfo)
 {
     CallExecutor(managedDriverId,
                  (driver, executor) => executor.Registered(driver,
                                                            ProtoBufHelper.Deserialize <ExecutorInfo>(executorInfo),
                                                            ProtoBufHelper.Deserialize <FrameworkInfo>(frameworkInfo),
                                                            ProtoBufHelper.Deserialize <SlaveInfo>(slaveInfo)));
 }
Пример #3
0
 private static void FrameworkMessage(long managedDriverId, NativeArray *executorId, NativeArray *slaveId, NativeArray *data)
 {
     CallScheduler(managedDriverId,
                   (driver, executor) => executor.FrameworkMessage(driver,
                                                                   ProtoBufHelper.Deserialize <ExecutorID>(executorId),
                                                                   ProtoBufHelper.Deserialize <SlaveID>(slaveId),
                                                                   MarshalHelper.ToMangedByteArray(data)));
 }
Пример #4
0
 private static void ExecutorLost(long managedDriverId, NativeArray *executorId, NativeArray *slaveId, int status)
 {
     CallScheduler(managedDriverId,
                   (driver, executor) => executor.ExecutorLost(driver,
                                                               ProtoBufHelper.Deserialize <ExecutorID>(executorId),
                                                               ProtoBufHelper.Deserialize <SlaveID>(slaveId),
                                                               status));
 }
Пример #5
0
        public static unsafe byte[] ToMangedByteArray(NativeArray *bytes)
        {
            var length = (*bytes).Length;
            var data   = (*bytes).Items;

            var result = new byte[length];

            Marshal.Copy(data, result, 0, length);

            return(result);
        }
Пример #6
0
        public static unsafe IEnumerable <TItem> DeserializeCollection <TItem>(NativeArray *collection)
            where TItem : IExtensible
        {
            var length = (*collection).Length;
            var items  = (NativeArray **)(*collection).Items;

            var result = new List <TItem>();

            for (var i = 0; i < length; i++)
            {
                result.Add(Deserialize <TItem>(items[i]));
            }

            return(result);
        }
Пример #7
0
        public static unsafe T Deserialize <T>(NativeArray *bytes)
            where T : IExtensible
        {
            var length = (*bytes).Length;
            var data   = (*bytes).Items;

            if (length == 0 || data == IntPtr.Zero)
            {
                return(default(T));
            }

            using (var ms = new UnmanagedMemoryStream((byte *)data.ToPointer(), length))
            {
                return(Serializer.Deserialize <T>(ms));
            }
        }
Пример #8
0
 private static void FrameworkMessage(long managedDriverId, NativeArray *data)
 {
     CallExecutor(managedDriverId,
                  (driver, executor) => executor.FrameworkMessage(driver,
                                                                  MarshalHelper.ToMangedByteArray(data)));
 }
Пример #9
0
 private static void KillTask(long managedDriverId, NativeArray *taskId)
 {
     CallExecutor(managedDriverId,
                  (driver, executor) => executor.KillTask(driver,
                                                          ProtoBufHelper.Deserialize <TaskID>(taskId)));
 }
Пример #10
0
 private static void LaunchTask(long managedDriverId, NativeArray *taskInfo)
 {
     CallExecutor(managedDriverId,
                  (driver, executor) => executor.LaunchTask(driver,
                                                            ProtoBufHelper.Deserialize <TaskInfo>(taskInfo)));
 }
Пример #11
0
 private static void SlaveLost(long managedDriverId, NativeArray *slaveId)
 {
     CallScheduler(managedDriverId,
                   (driver, executor) => executor.SlaveLost(driver,
                                                            ProtoBufHelper.Deserialize <SlaveID>(slaveId)));
 }
Пример #12
0
 private static void StatusUpdate(long managedDriverId, NativeArray *status)
 {
     CallScheduler(managedDriverId,
                   (driver, executor) => executor.StatusUpdate(driver,
                                                               ProtoBufHelper.Deserialize <TaskStatus>(status)));
 }
Пример #13
0
 private static void OfferRescinded(long managedDriverId, NativeArray *offerId)
 {
     CallScheduler(managedDriverId,
                   (driver, executor) => executor.OfferRescinded(driver,
                                                                 ProtoBufHelper.Deserialize <OfferID>(offerId)));
 }
Пример #14
0
 private static void ResourceOffers(long managedDriverId, NativeArray *offers)
 {
     CallScheduler(managedDriverId,
                   (driver, executor) => executor.ResourceOffers(driver,
                                                                 ProtoBufHelper.DeserializeCollection <Offer>(offers)));
 }
Пример #15
0
 internal unsafe ObjectArrayField(NativeArray *array)
 {
     Array = array;
 }