blob: 588e4cce40c36e2f61c9ca4b54eb2f9d3713eb8e [file] [log] [blame]
/**
*Licensed to the Apache Software Foundation (ASF) under one
*or more contributor license agreements. See the NOTICE file
*distributed with this work for additional information
*regarding copyright ownership. The ASF licenses this file
*to you 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.
*/
/*
* bundle.h
*
* \date Mar 23, 2010
* \author <a href="mailto:dev@celix.apache.org">Apache Celix Project Team</a>
* \copyright Apache License, Version 2.0
*/
#ifndef BUNDLE_H_
#define BUNDLE_H_
typedef struct bundle * bundle_pt;
#include "celix_errno.h"
#include "bundle_state.h"
#include "bundle_archive.h"
#include "framework.h"
#include "wire.h"
#include "module.h"
#include "service_reference.h"
#include "bundle_context.h"
#include "celix_log.h"
#include "celix_threads.h"
FRAMEWORK_EXPORT celix_status_t bundle_create(bundle_pt * bundle);
FRAMEWORK_EXPORT celix_status_t bundle_createFromArchive(bundle_pt * bundle, framework_pt framework, bundle_archive_pt archive);
FRAMEWORK_EXPORT celix_status_t bundle_destroy(bundle_pt bundle);
FRAMEWORK_EXPORT celix_status_t bundle_isSystemBundle(bundle_pt bundle, bool *systemBundle);
FRAMEWORK_EXPORT celix_status_t bundle_getArchive(bundle_pt bundle, bundle_archive_pt *archive);
FRAMEWORK_EXPORT celix_status_t bundle_getCurrentModule(bundle_pt bundle, module_pt *module);
FRAMEWORK_EXPORT array_list_pt bundle_getModules(bundle_pt bundle);
FRAMEWORK_EXPORT void * bundle_getHandle(bundle_pt bundle);
FRAMEWORK_EXPORT void bundle_setHandle(bundle_pt bundle, void * handle);
FRAMEWORK_EXPORT activator_pt bundle_getActivator(bundle_pt bundle);
FRAMEWORK_EXPORT celix_status_t bundle_setActivator(bundle_pt bundle, activator_pt activator);
FRAMEWORK_EXPORT celix_status_t bundle_getContext(bundle_pt bundle, bundle_context_pt *context);
FRAMEWORK_EXPORT celix_status_t bundle_setContext(bundle_pt bundle, bundle_context_pt context);
FRAMEWORK_EXPORT celix_status_t bundle_getEntry(bundle_pt bundle, char * name, char **entry);
FRAMEWORK_EXPORT celix_status_t bundle_start(bundle_pt bundle);
FRAMEWORK_EXPORT celix_status_t bundle_startWithOptions(bundle_pt bundle, int options);
FRAMEWORK_EXPORT celix_status_t bundle_update(bundle_pt bundle, char *inputFile);
FRAMEWORK_EXPORT celix_status_t bundle_stop(bundle_pt bundle);
FRAMEWORK_EXPORT celix_status_t bundle_stopWithOptions(bundle_pt bundle, int options);
FRAMEWORK_EXPORT celix_status_t bundle_uninstall(bundle_pt bundle);
FRAMEWORK_EXPORT celix_status_t bundle_setState(bundle_pt bundle, bundle_state_e state);
FRAMEWORK_EXPORT celix_status_t bundle_setPersistentStateInactive(bundle_pt bundle);
FRAMEWORK_EXPORT celix_status_t bundle_setPersistentStateUninstalled(bundle_pt bundle);
FRAMEWORK_EXPORT void uninstallBundle(bundle_pt bundle);
FRAMEWORK_EXPORT celix_status_t bundle_revise(bundle_pt bundle, char * location, char *inputFile);
FRAMEWORK_EXPORT celix_status_t bundle_addModule(bundle_pt bundle, module_pt module);
FRAMEWORK_EXPORT celix_status_t bundle_closeModules(bundle_pt bundle);
// Service Reference Functions
FRAMEWORK_EXPORT array_list_pt getUsingBundles(service_reference_pt reference);
FRAMEWORK_EXPORT int compareTo(service_reference_pt a, service_reference_pt b);
FRAMEWORK_EXPORT celix_status_t bundle_getState(bundle_pt bundle, bundle_state_e *state);
FRAMEWORK_EXPORT celix_status_t bundle_isLockable(bundle_pt bundle, bool *lockable);
FRAMEWORK_EXPORT celix_status_t bundle_getLockingThread(bundle_pt bundle, celix_thread_t *thread);
FRAMEWORK_EXPORT celix_status_t bundle_lock(bundle_pt bundle, bool *locked);
FRAMEWORK_EXPORT celix_status_t bundle_unlock(bundle_pt bundle, bool *unlocked);
FRAMEWORK_EXPORT celix_status_t bundle_closeAndDelete(bundle_pt bundle);
FRAMEWORK_EXPORT celix_status_t bundle_close(bundle_pt bundle);
FRAMEWORK_EXPORT celix_status_t bundle_refresh(bundle_pt bundle);
FRAMEWORK_EXPORT celix_status_t bundle_getBundleId(bundle_pt bundle, long *id);
FRAMEWORK_EXPORT celix_status_t bundle_getRegisteredServices(bundle_pt bundle, array_list_pt *list);
FRAMEWORK_EXPORT celix_status_t bundle_getServicesInUse(bundle_pt bundle, array_list_pt *list);
FRAMEWORK_EXPORT celix_status_t bundle_setFramework(bundle_pt bundle, framework_pt framework);
FRAMEWORK_EXPORT celix_status_t bundle_getFramework(bundle_pt bundle, framework_pt *framework);
FRAMEWORK_EXPORT celix_status_t bundle_getBundleLocation(bundle_pt bundle, char **location);
#endif /* BUNDLE_H_ */