Beispiel #1
0
        private void Obj_RegisterEventListener(string _serializationID, IRuntimeSerializationEventListener _newListener)
        {
            if (string.IsNullOrEmpty(_serializationID))
            {
                Debug.LogError("[RS] Failed to register. Serialization identifier cant be null / empty.");
                return;
            }

            if (_newListener == null)
            {
                Debug.LogError("[RS] Failed to register. Listener instance cant be null.");
                return;
            }

            // Get list of callbacks registered for this identifier
            List <IRuntimeSerializationEventListener> _eventListeners = GetEventListeners(_serializationID);

            if (_eventListeners == null)
            {
                _eventListeners = new List <IRuntimeSerializationEventListener>();
                m_serializationListeners[_serializationID] = _eventListeners;
            }

            // Make sure we dont have duplicates
            if (!_eventListeners.Contains(_newListener))
            {
                _eventListeners.Add(_newListener);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Unregister object from receiving serialization events.
        /// </summary>
        /// <param name="_serializationID">Identifier associated with serialization data.</param>
        /// <param name="_callback">Target object to be unregistered from serialization callbacks.</param>
        public static void UnRegisterEventListener(string _serializationID, IRuntimeSerializationEventListener _listener)
        {
            if (Instance == null)
            {
                Debug.LogError("[RS] RSManager instance not found.");
                return;
            }

            Instance.Obj_UnRegisterEventListener(_serializationID, _listener);
        }
Beispiel #3
0
        private void OnDeserializationFinished(string _serializationID, object _deserializedObject)
        {
            // Get callback list associated with this identifier
            List <IRuntimeSerializationEventListener> _eventListeners = GetEventListeners(_serializationID);

            if (_eventListeners == null)
            {
                return;
            }

            for (int _iter = 0; _iter < _eventListeners.Count; _iter++)
            {
                IRuntimeSerializationEventListener _listener = _eventListeners[_iter];

                if (_listener != null)
                {
                    _listener.OnAfterRuntimeDeserialize(_serializationID, _deserializedObject);
                }
            }
        }
Beispiel #4
0
        private void Obj_UnRegisterEventListener(string _serializationID, IRuntimeSerializationEventListener _listener)
        {
            if (string.IsNullOrEmpty(_serializationID))
            {
                Debug.LogError("[RS] Failed to unregister. Serialization identifier cant be null / empty.");
                return;
            }

            if (_listener == null)
            {
                Debug.LogError("[RS] Failed to unregister. Listener instance cant be null.");
                return;
            }

            // Get list of callbacks registered for this identifier
            List <IRuntimeSerializationEventListener> _eventListeners = GetEventListeners(_serializationID);

            // Remove target callback from the callback list
            if (_eventListeners != null)
            {
                _eventListeners.Remove(_listener);
            }
        }