/*
* Copyright (c) 2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include
#include
#include
#include
#include "attachment_container.h"
#include "base_object.h"
#include "connector.h"
#include "container/object_container.h"
#include "container/object_flat_container.h"
#include "container_observer.h"
#include "engine/engine_input_property_manager.h"
#include "functions.h"
#include "loaders/class_content_loader.h"
#include "loaders/csv_string_resource_loader.h"
#include "loaders/json_content_loader.h"
#include "meta_object.h"
#include "model/composite_object_provider.h"
#include "model/container_data_model.h"
#include "model/content_loader_object_provider.h"
#include "model/instantiating_object_provider.h"
#include "number.h"
#include "object.h"
#include "object_context.h"
#include "object_hierarchy_observer.h"
#include "property/bind.h"
#include "proxy_object.h"
#include "serialization/backend/debug_output.h"
#include "serialization/backend/json_input.h"
#include "serialization/backend/json_output.h"
#include "serialization/exporter.h"
#include "serialization/importer.h"
#include "serialization/json_exporter.h"
#include "serialization/json_importer.h"
#include "serialization/ser_nodes.h"
#include "startable_object_controller.h"
META_BEGIN_NAMESPACE()
IObjectFactory::Ptr GetManualClockFactory();
IObjectFactory::Ptr GetSystemClockFactory();
namespace Internal {
IObjectFactory::Ptr GetPollingTaskQueueFactory();
IObjectFactory::Ptr GetThreadedTaskQueueFactory();
IObjectFactory::Ptr GetPromiseFactory();
IObjectFactory::Ptr GetContentObjectFactory();
static constexpr ObjectTypeInfo OBJECTS[] = { MetaObject::OBJECT_INFO, Object::OBJECT_INFO,
ObjectContainer::OBJECT_INFO, ObjectFlatContainer::OBJECT_INFO, ProxyObject::OBJECT_INFO,
ContainerObserver::OBJECT_INFO, SettableFunction::OBJECT_INFO, PropertyFunction::OBJECT_INFO,
ObjectContext::OBJECT_INFO, AttachmentContainer::OBJECT_INFO, ContainerDataModel::OBJECT_INFO,
CompositeObjectProvider::OBJECT_INFO, InstantiatingObjectProvider::OBJECT_INFO,
ContentLoaderObjectProvider::OBJECT_INFO, CsvStringResourceLoader::OBJECT_INFO, ClassContentLoader::OBJECT_INFO,
ObjectHierarchyObserver::OBJECT_INFO, StartableObjectController::OBJECT_INFO, Internal::Number::OBJECT_INFO,
Connector::OBJECT_INFO, JsonContentLoader::OBJECT_INFO, EngineValueManager::OBJECT_INFO,
EngineInputPropertyManager::OBJECT_INFO };
void RegisterBuiltInObjects(IObjectRegistry& registry)
{
registry.RegisterObjectType();
for (auto& t : OBJECTS) {
registry.RegisterObjectType(t.GetFactory());
}
registry.RegisterObjectType(GetManualClockFactory());
registry.RegisterObjectType(GetSystemClockFactory());
registry.RegisterObjectType(GetPollingTaskQueueFactory());
registry.RegisterObjectType(GetThreadedTaskQueueFactory());
registry.RegisterObjectType(GetPromiseFactory());
registry.RegisterObjectType(GetContentObjectFactory());
registry.RegisterObjectType();
registry.RegisterObjectType();
registry.RegisterObjectType();
registry.RegisterObjectType();
registry.RegisterObjectType();
registry.RegisterObjectType();
registry.RegisterObjectType();
registry.RegisterObjectType();
registry.RegisterObjectType();
registry.RegisterObjectType();
registry.RegisterObjectType();
registry.RegisterObjectType();
registry.RegisterObjectType();
registry.RegisterObjectType();
registry.RegisterObjectType();
registry.RegisterObjectType();
registry.RegisterObjectType();
registry.RegisterObjectType();
registry.RegisterObjectType();
}
void UnRegisterBuiltInObjects(IObjectRegistry& registry)
{
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType();
registry.UnregisterObjectType(GetContentObjectFactory());
registry.UnregisterObjectType(GetManualClockFactory());
registry.UnregisterObjectType(GetSystemClockFactory());
registry.UnregisterObjectType(GetPollingTaskQueueFactory());
registry.UnregisterObjectType(GetThreadedTaskQueueFactory());
registry.UnregisterObjectType(GetPromiseFactory());
for (auto& t : OBJECTS) {
registry.UnregisterObjectType(t.GetFactory());
}
registry.UnregisterObjectType();
}
} // namespace Internal
META_END_NAMESPACE()