예제 #1
0
        ///   <summary>
        ///
        ///   </summary>
        ///   <param name="states"></param>
        ///  <param name="simulator_configuration"></param>
        /// <param name="serialise_indidual_observables"></param>
        /// <param name="do_serialise_unobservables"></param>
        /// <param name="api_version"></param>
        ///  <returns></returns>
        public static byte[] serialise_states(
            EnvironmentState[] states,
            SimulatorConfigurationMessage simulator_configuration = null,
            bool serialise_indidual_observables = false,
            bool do_serialise_unobservables     = false,
            string api_version = "")
        {
            var b             = new FlatBufferBuilder(1);
            var state_offsets = new Offset <FState> [states.Length];
            var i             = 0;

            foreach (var state in states)
            {
                state_offsets[i++] = serialise_state(
                    b,
                    state,
                    serialise_indidual_observables,
                    do_serialise_unobservables);
            }

            var states_vector_offset = FStates.CreateStatesVector(b, state_offsets);

            var api_version_offset = b.CreateString(api_version);

            FStates.StartFStates(b);
            FStates.AddStates(b, states_vector_offset);
            FStates.AddApiVersion(b, api_version_offset);
            FStates.AddSimulatorConfiguration(b, serialise_simulator_configuration(b, simulator_configuration));
            var states_offset = FStates.EndFStates(b);

            FStates.FinishFStatesBuffer(b, states_offset);

            return(b.SizedByteArray());
        }
예제 #2
0
 public static FStates GetRootAsFStates(ByteBuffer _bb, FStates obj)
 {
     return(obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb));
 }