|
From: <ba...@us...> - 2007-02-09 01:31:14
|
Revision: 435
http://svn.sourceforge.net/omc/?rev=435&view=rev
Author: bartw
Date: 2007-02-08 17:31:11 -0800 (Thu, 08 Feb 2007)
Log Message:
-----------
Added CIMPLE provider for subclasses of CIM_LogicalFile
Modified Paths:
--------------
cmpibase/trunk/configure.ac
cmpibase/trunk/src/include/omc/Makefile.am
cmpibase/trunk/src/lib/omc/Makefile.am
cmpibase/trunk/src/providers/Makefile.am
Added Paths:
-----------
cmpibase/trunk/src/include/omc/fileTools.h
cmpibase/trunk/src/lib/omc/fileTools.c
cmpibase/trunk/src/providers/logical-file/
cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider.cpp
cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider.h
cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider_module.cpp
cmpibase/trunk/src/providers/logical-file/FilesCommon.cpp
cmpibase/trunk/src/providers/logical-file/FilesCommon.hpp
cmpibase/trunk/src/providers/logical-file/Makefile.am
cmpibase/trunk/src/providers/logical-file/OMC_LinuxDirectoryContainsFile_Provider.cpp
cmpibase/trunk/src/providers/logical-file/OMC_LinuxDirectoryContainsFile_Provider.h
cmpibase/trunk/src/providers/logical-file/OMC_LinuxDirectoryContainsFile_Provider_module.cpp
cmpibase/trunk/src/providers/logical-file/OMC_LinuxFileIdentity_Provider.cpp
cmpibase/trunk/src/providers/logical-file/OMC_LinuxFileIdentity_Provider.h
cmpibase/trunk/src/providers/logical-file/OMC_LinuxFileIdentity_Provider_module.cpp
cmpibase/trunk/src/providers/logical-file/OMC_LinuxFile_Provider.cpp
cmpibase/trunk/src/providers/logical-file/OMC_LinuxFile_Provider.h
cmpibase/trunk/src/providers/logical-file/OMC_LinuxFile_Provider_module.cpp
cmpibase/trunk/src/providers/logical-file/schema/
cmpibase/trunk/src/providers/logical-file/schema/CIM_Component.cpp
cmpibase/trunk/src/providers/logical-file/schema/CIM_Component.h
cmpibase/trunk/src/providers/logical-file/schema/CIM_DataFile.cpp
cmpibase/trunk/src/providers/logical-file/schema/CIM_DataFile.h
cmpibase/trunk/src/providers/logical-file/schema/CIM_DeviceFile.cpp
cmpibase/trunk/src/providers/logical-file/schema/CIM_DeviceFile.h
cmpibase/trunk/src/providers/logical-file/schema/CIM_Directory.cpp
cmpibase/trunk/src/providers/logical-file/schema/CIM_Directory.h
cmpibase/trunk/src/providers/logical-file/schema/CIM_DirectoryContainsFile.cpp
cmpibase/trunk/src/providers/logical-file/schema/CIM_DirectoryContainsFile.h
cmpibase/trunk/src/providers/logical-file/schema/CIM_FIFOPipeFile.cpp
cmpibase/trunk/src/providers/logical-file/schema/CIM_FIFOPipeFile.h
cmpibase/trunk/src/providers/logical-file/schema/CIM_FileIdentity.cpp
cmpibase/trunk/src/providers/logical-file/schema/CIM_FileIdentity.h
cmpibase/trunk/src/providers/logical-file/schema/CIM_LogicalElement.cpp
cmpibase/trunk/src/providers/logical-file/schema/CIM_LogicalElement.h
cmpibase/trunk/src/providers/logical-file/schema/CIM_LogicalFile.cpp
cmpibase/trunk/src/providers/logical-file/schema/CIM_LogicalFile.h
cmpibase/trunk/src/providers/logical-file/schema/CIM_LogicalIdentity.cpp
cmpibase/trunk/src/providers/logical-file/schema/CIM_LogicalIdentity.h
cmpibase/trunk/src/providers/logical-file/schema/CIM_ManagedElement.cpp
cmpibase/trunk/src/providers/logical-file/schema/CIM_ManagedElement.h
cmpibase/trunk/src/providers/logical-file/schema/CIM_ManagedSystemElement.cpp
cmpibase/trunk/src/providers/logical-file/schema/CIM_ManagedSystemElement.h
cmpibase/trunk/src/providers/logical-file/schema/CIM_SymbolicLink.cpp
cmpibase/trunk/src/providers/logical-file/schema/CIM_SymbolicLink.h
cmpibase/trunk/src/providers/logical-file/schema/CIM_UnixDeviceFile.cpp
cmpibase/trunk/src/providers/logical-file/schema/CIM_UnixDeviceFile.h
cmpibase/trunk/src/providers/logical-file/schema/CIM_UnixDirectory.cpp
cmpibase/trunk/src/providers/logical-file/schema/CIM_UnixDirectory.h
cmpibase/trunk/src/providers/logical-file/schema/CIM_UnixFile.cpp
cmpibase/trunk/src/providers/logical-file/schema/CIM_UnixFile.h
cmpibase/trunk/src/providers/logical-file/schema/Makefile.am
cmpibase/trunk/src/providers/logical-file/schema/OMC_DataFile.cpp
cmpibase/trunk/src/providers/logical-file/schema/OMC_DataFile.h
cmpibase/trunk/src/providers/logical-file/schema/OMC_DirectoryContainsFile.cpp
cmpibase/trunk/src/providers/logical-file/schema/OMC_DirectoryContainsFile.h
cmpibase/trunk/src/providers/logical-file/schema/OMC_FIFOPipeFile.cpp
cmpibase/trunk/src/providers/logical-file/schema/OMC_FIFOPipeFile.h
cmpibase/trunk/src/providers/logical-file/schema/OMC_FileIdentity.cpp
cmpibase/trunk/src/providers/logical-file/schema/OMC_FileIdentity.h
cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxDataFile.cpp
cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxDataFile.h
cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxDeviceFile.cpp
cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxDeviceFile.h
cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxDirectory.cpp
cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxDirectory.h
cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxDirectoryContainsFile.cpp
cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxDirectoryContainsFile.h
cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxFIFOPipeFile.cpp
cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxFIFOPipeFile.h
cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxFile.cpp
cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxFile.h
cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxFileIdentity.cpp
cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxFileIdentity.h
cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxSymbolicLink.cpp
cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxSymbolicLink.h
cmpibase/trunk/src/providers/logical-file/schema/OMC_SymbolicLink.cpp
cmpibase/trunk/src/providers/logical-file/schema/OMC_SymbolicLink.h
cmpibase/trunk/src/providers/logical-file/schema/OMC_UnixDeviceFile.cpp
cmpibase/trunk/src/providers/logical-file/schema/OMC_UnixDeviceFile.h
cmpibase/trunk/src/providers/logical-file/schema/OMC_UnixDirectory.cpp
cmpibase/trunk/src/providers/logical-file/schema/OMC_UnixDirectory.h
cmpibase/trunk/src/providers/logical-file/schema/OMC_UnixFile.cpp
cmpibase/trunk/src/providers/logical-file/schema/OMC_UnixFile.h
cmpibase/trunk/src/providers/logical-file/schema/repository.cpp
cmpibase/trunk/src/providers/logical-file/schema/repository.h
Removed Paths:
-------------
cmpibase/trunk/src/include/omc/Makefile.in
cmpibase/trunk/src/providers/time-service/Makefile.in
Property Changed:
----------------
cmpibase/trunk/
cmpibase/trunk/src/
cmpibase/trunk/src/include/
cmpibase/trunk/src/include/omc/
cmpibase/trunk/src/lib/
cmpibase/trunk/src/lib/omc/
cmpibase/trunk/src/providers/
cmpibase/trunk/src/providers/computer-system/
cmpibase/trunk/src/providers/operating-system/
cmpibase/trunk/src/providers/processes/
cmpibase/trunk/src/providers/time-service/
Property changes on: cmpibase/trunk
___________________________________________________________________
Name: svn:ignore
- Makefile.in
configure
aclocal.m4
Makefile
autom4te.cache
config.guess
config.log
config.status
config.sub
config.h.in
libtool
ltmain.sh
mybuild
*.vpj
config
depcomp
missing
*.vpw
*.vpwhistu
*.vtg
*.swp
+ stamp-h1
configure
Makefile.in
config.log
depcomp
config.guess
config.h
ltmain.sh
config.sub
Makefile
omccmpi-*.tar.gz
config.status
config.h.in
libtool
autom4te.cache
missing
aclocal.m4
Modified: cmpibase/trunk/configure.ac
===================================================================
--- cmpibase/trunk/configure.ac 2007-02-01 17:59:16 UTC (rev 434)
+++ cmpibase/trunk/configure.ac 2007-02-09 01:31:11 UTC (rev 435)
@@ -155,6 +155,15 @@
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h sys/time.h openssl/evp.h sys/param.h sys/vfs.h],,[AC_MSG_ERROR(Missing headers: likely won't compile)])
+AC_LANG_CPLUSPLUS
+AC_CHECK_HEADERS([cimple/cimple.h],[HAVE_CIMPLE="1"],[HAVE_CIMPLE="0"])
+AM_CONDITIONAL(DO_CIMPLE_PROVIDERS, test "$HAVE_CIMPLE" = 1)
+
+AC_CHECK_HEADERS([cimple/OpenWBEM_Adapter.h],[HAVE_CIMPLE_OW_ADAPTER="1"],[HAVE_CIMPLE_OW_ADAPTER="0"])
+AM_CONDITIONAL(USE_CIMPLE_OW_ADAPTER, test "$HAVE_CIMPLE_OW_ADAPTER" = 1)
+AC_LANG_C
+
+
# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_C_CONST
@@ -191,5 +200,7 @@
src/providers/computer-system/Makefile
src/providers/operating-system/Makefile
src/providers/time-service/Makefile
+ src/providers/logical-file/Makefile
+ src/providers/logical-file/schema/Makefile
])
AC_OUTPUT
Property changes on: cmpibase/trunk/src
___________________________________________________________________
Name: svn:ignore
- Makefile.in
+ Makefile
Makefile.in
Property changes on: cmpibase/trunk/src/include
___________________________________________________________________
Name: svn:ignore
- Makefile.in
+ Makefile.in
Makefile
Property changes on: cmpibase/trunk/src/include/omc
___________________________________________________________________
Name: svn:ignore
- Makefile.in
+ Makefile
Makefile.in
Modified: cmpibase/trunk/src/include/omc/Makefile.am
===================================================================
--- cmpibase/trunk/src/include/omc/Makefile.am 2007-02-01 17:59:16 UTC (rev 434)
+++ cmpibase/trunk/src/include/omc/Makefile.am 2007-02-09 01:31:11 UTC (rev 435)
@@ -6,6 +6,7 @@
exec.h \
ioUtils.h \
modifyFile.h \
+ fileTools.h \
string.h \
linuxProcUtils.h \
cmpiUtils.h \
Deleted: cmpibase/trunk/src/include/omc/Makefile.in
===================================================================
--- cmpibase/trunk/src/include/omc/Makefile.in 2007-02-01 17:59:16 UTC (rev 434)
+++ cmpibase/trunk/src/include/omc/Makefile.in 2007-02-09 01:31:11 UTC (rev 435)
@@ -1,406 +0,0 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-top_builddir = ../../..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src/include/omc
-DIST_COMMON = $(pkginclude_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-SOURCES =
-DIST_SOURCES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(pkgincludedir)"
-pkgincludeHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(pkginclude_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-pkgincludedir = $(includedir)/omccmpi
-ACLOCAL = @ACLOCAL@
-ALLOCA = @ALLOCA@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CP = @CP@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MV = @MV@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RM = @RM@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-YACC = @YACC@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
-am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-pkginclude_HEADERS = \
- base.h \
- exec.h \
- ioUtils.h \
- modifyFile.h \
- string.h \
- linuxProcUtils.h \
- cmpiUtils.h \
- cmpiSimpleAssoc.h \
- cmpiTimeServiceUtils.h \
- ntpServer.h
-
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/include/omc/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu src/include/omc/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
- -rm -f libtool
-uninstall-info-am:
-install-pkgincludeHEADERS: $(pkginclude_HEADERS)
- @$(NORMAL_INSTALL)
- test -z "$(pkgincludedir)" || $(mkdir_p) "$(DESTDIR)$(pkgincludedir)"
- @list='$(pkginclude_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(pkgincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgincludedir)/$$f'"; \
- $(pkgincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgincludedir)/$$f"; \
- done
-
-uninstall-pkgincludeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(pkginclude_HEADERS)'; for p in $$list; do \
- f=$(am__strip_dir) \
- echo " rm -f '$(DESTDIR)$(pkgincludedir)/$$f'"; \
- rm -f "$(DESTDIR)$(pkgincludedir)/$$f"; \
- done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(pkgincludedir)"; do \
- test -z "$$dir" || $(mkdir_p) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-libtool \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-pkgincludeHEADERS
-
-install-exec-am:
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-info-am uninstall-pkgincludeHEADERS
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool ctags distclean distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-exec install-exec-am install-info \
- install-info-am install-man install-pkgincludeHEADERS \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags uninstall uninstall-am uninstall-info-am \
- uninstall-pkgincludeHEADERS
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
Added: cmpibase/trunk/src/include/omc/fileTools.h
===================================================================
--- cmpibase/trunk/src/include/omc/fileTools.h (rev 0)
+++ cmpibase/trunk/src/include/omc/fileTools.h 2007-02-09 01:31:11 UTC (rev 435)
@@ -0,0 +1,104 @@
+/*******************************************************************************
+* Copyright (C) 2005, 2006 Novell, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* - Redistributions of source code must retain the above copyright notice,
+* this list of conditions and the following disclaimer.
+*
+* - Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following disclaimer in the documentation
+* and/or other materials provided with the distribution.
+*
+* - Neither the name of Novell, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived from this
+* software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL Novell, Inc. OR THE CONTRIBUTORS
+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*
+******************************************************************************/
+
+
+#ifndef OMCFILETOOLS_H_GUARD__
+#define OMCFILETOOLS_H_GUARD__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct stat;
+
+/**
+ * Return the name of the directory containing the file (or
+ * directory) referenced by path.
+ *
+ * @param path The path
+ *
+ * @return The directory containing the file. The caller is
+ * responsible to free the buffer returned.
+ */
+char* omc_dirname(const char* path);
+
+/**
+ * Struct containing the six keys of CIM file classes.
+ * (CIM_LogicalFile and children)
+ */
+typedef struct omcFileKeys_
+{
+ char * CSCreationClassName;
+ char * CSName;
+ char * CreationClassName;
+ char * FSCreationClassName;
+ char * FSName;
+ char * Name;
+} omcFileKeys;
+
+/**
+ * Free a omcFileKeys structure and the pointers contained
+ * therein.
+ *
+ * @param fk pointer to the omcFileKeys structure to be freed.
+ */
+void omcFileKeys_free(omcFileKeys* fk);
+
+/**
+ * Determine the keys for the CIM instance representing a given
+ * file.
+ * @param path The full path to the file
+ *
+ * @return A pointer to an omcFileKeys structure. The caller is
+ * responsible to free this with a call to
+ * omcFileKeys_free().
+ */
+omcFileKeys* omcGetKeysForFile(const char* path);
+
+/**
+ * Determine the keys for the CIM instance representing a given
+ * file. Use this version if you already have a stat for the
+ * file and wish to avoid an aditional stat.
+ *
+ * @param path The full path to the file
+ * @param st A stat structure for the file obtained from stat()
+ *
+ * @return A pointer to an omcFileKeys structure. The caller is
+ * responsible to free this with a call to
+ * omcFileKeys_free().
+ */
+omcFileKeys* omcGetKeysForFileStat(const char* path, struct stat* st);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
Property changes on: cmpibase/trunk/src/lib
___________________________________________________________________
Name: svn:ignore
- Makefile.in
+ Makefile
Makefile.in
Property changes on: cmpibase/trunk/src/lib/omc
___________________________________________________________________
Name: svn:ignore
- Makefile.in
+ .deps
.libs
Makefile.in
Makefile
Modified: cmpibase/trunk/src/lib/omc/Makefile.am
===================================================================
--- cmpibase/trunk/src/lib/omc/Makefile.am 2007-02-01 17:59:16 UTC (rev 434)
+++ cmpibase/trunk/src/lib/omc/Makefile.am 2007-02-09 01:31:11 UTC (rev 435)
@@ -15,6 +15,7 @@
exec.c \
ioUtils.c \
modifyFile.c \
+fileTools.c \
string.c \
linuxProcUtils.c \
ntpServer.c
Added: cmpibase/trunk/src/lib/omc/fileTools.c
===================================================================
--- cmpibase/trunk/src/lib/omc/fileTools.c (rev 0)
+++ cmpibase/trunk/src/lib/omc/fileTools.c 2007-02-09 01:31:11 UTC (rev 435)
@@ -0,0 +1,201 @@
+/*******************************************************************************
+* Copyright (C) 2005, 2006 Novell, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* - Redistributions of source code must retain the above copyright notice,
+* this list of conditions and the following disclaimer.
+*
+* - Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following disclaimer in the documentation
+* and/or other materials provided with the distribution.
+*
+* - Neither the name of Novell, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived from this
+* software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL Novell, Inc. OR THE CONTRIBUTORS
+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*
+******************************************************************************/
+
+
+#include "omc/fileTools.h"
+//#include "omccmpi/string.h"
+//#include "omccmpi/ioUtils.h"
+//#include "string.h"
+//#include "ioUtils.h"
+#include <libgen.h>
+#include "omc/string.h"
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+#include <stdlib.h>
+#include <stdio.h>
+
+char* omc_dirname(const char* path)
+{
+ char* tmp = strdup(path);
+ char* rv = dirname(tmp);
+ if (rv == NULL)
+ {
+ free(tmp);
+ }
+ return rv;
+}
+
+void omcFileKeys_free(omcFileKeys* fk)
+{
+ if (fk == NULL)
+ {
+ return;
+ }
+ //free(fk->CSCreationClassName); // not malloc'd
+ free(fk->CSName);
+ //free(fk->CreationClassName); // not malloc'd
+ free(fk->FSCreationClassName);
+ free(fk->FSName);
+ free(fk->Name);
+ free(fk);
+}
+
+omcFileKeys* omcGetKeysForFile(const char* path)
+{
+ struct stat st;
+ if (lstat(path, &st) != 0)
+ {
+ return NULL;
+ }
+ return omcGetKeysForFileStat(path, &st);
+}
+
+omcFileKeys* omcGetKeysForFileStat(const char* path, struct stat* st)
+{
+ omcFileKeys* rv = (omcFileKeys*)malloc(sizeof(omcFileKeys));
+ memset(rv, 0, sizeof(omcFileKeys));
+ if (S_ISREG(st->st_mode))
+ {
+ rv->CreationClassName = "OMC_LinuxDataFile";
+ } else if (S_ISDIR(st->st_mode))
+ {
+ rv->CreationClassName = "OMC_LinuxDirectory";
+ } else if (S_ISCHR(st->st_mode) || S_ISBLK(st->st_mode))
+ {
+ rv->CreationClassName = "OMC_LinuxDeviceFile";
+ } else if (S_ISFIFO(st->st_mode))
+ {
+ rv->CreationClassName = "OMC_LinuxFIFOPipeFile";
+ } else if (S_ISLNK(st->st_mode))
+ {
+ rv->CreationClassName = "OMC_LinuxSymbolicLink";
+ } else
+ {
+ free(rv);
+ return NULL;
+ }
+ rv->Name = strdup(path);
+ rv->CSCreationClassName = "OMC_LinuxUnitaryComputerSystem";
+ rv->CSName = (char*)malloc(256);
+ gethostname(rv->CSName, 256);
+ FILE* mounts = fopen("/proc/mounts", "r");
+ if (mounts == NULL)
+ {
+ omcFileKeys_free(rv);
+ return NULL;
+ }
+ char* line = NULL;
+ char* p = NULL;
+ size_t bfrLen = 0;
+ for(p = omcReadLine(mounts, &line,&bfrLen); p; p = omcReadLine(mounts, &line,&bfrLen ))
+ {
+ int count = omcStrTokenCount(line, " \t\r\n");
+ if (count != 6)
+ {
+ continue;
+ }
+ size_t numElems = 0;
+ char** strs = omcStrTokenize(line, " \t\r\n", &numElems);
+ if (strs == NULL)
+ {
+ continue;
+ }
+ if (strs[1][0] != '/')
+ {
+ free(strs);
+ continue;
+ }
+ if (strs[1][1] == 0 && strcmp(strs[0], "rootfs") == 0)
+ {
+ /* skip rootfs junk */
+ free(strs);
+ continue;
+ }
+ struct stat dst;
+ if (stat(strs[1], &dst) != 0)
+ {
+ free(strs);
+ continue;
+ }
+ if (st->st_dev == dst.st_dev)
+ {
+ rv->FSName = strdup(strs[0]);
+ char* fstype = strs[2];
+ if (strcmp(fstype, "ext2") == 0)
+ {
+ rv->FSCreationClassName = strdup("OMC_LinuxExt2FileSystem");
+ } else if (strcmp(fstype, "ext3") == 0)
+ {
+ rv->FSCreationClassName = strdup("OMC_LinuxExt3FileSystem");
+ } else if (strcmp(fstype, "reiserfs") == 0)
+ {
+ rv->FSCreationClassName = strdup("OMC_LinuxReiserFileSystem");
+ } else if (strcmp(fstype, "nfs") == 0)
+ {
+ rv->FSCreationClassName = strdup("OMC_LinuxNFS");
+ } else if (strcmp(fstype, "cifs") == 0)
+ {
+ rv->FSCreationClassName = strdup("OMC_LinuxCIFS"); /* TODO CIM class doesn't exist yet */
+ }
+ else
+ {
+ int len = snprintf(NULL, 0, "Unknown:%s", fstype);
+ if (len > 0)
+ {
+ rv->FSCreationClassName = (char*)malloc(len + 1);
+ snprintf(rv->FSCreationClassName, len+1, "Unknown:%s", fstype);
+ }
+ else
+ {
+ rv->FSCreationClassName = strdup("Unknown");
+ }
+ }
+ }
+ free(strs);
+ if (rv->FSName != NULL)
+ {
+ break;
+ }
+ }
+ if (line)
+ {
+ free(line);
+ }
+ fclose(mounts);
+ return rv;
+
+}
+
Property changes on: cmpibase/trunk/src/providers
___________________________________________________________________
Name: svn:ignore
- Makefile.in
+ Makefile.in
Makefile
Modified: cmpibase/trunk/src/providers/Makefile.am
===================================================================
--- cmpibase/trunk/src/providers/Makefile.am 2007-02-01 17:59:16 UTC (rev 434)
+++ cmpibase/trunk/src/providers/Makefile.am 2007-02-09 01:31:11 UTC (rev 435)
@@ -6,3 +6,7 @@
operating-system \
time-service
+if DO_CIMPLE_PROVIDERS
+SUBDIRS += logical-file
+endif
+
Property changes on: cmpibase/trunk/src/providers/computer-system
___________________________________________________________________
Name: svn:ignore
- Makefile.in
+ .deps
.libs
Makefile.in
Makefile
Property changes on: cmpibase/trunk/src/providers/logical-file
___________________________________________________________________
Name: svn:ignore
+ .deps
.libs
Makefile.in
Makefile
Added: cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider.cpp
===================================================================
--- cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider.cpp (rev 0)
+++ cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider.cpp 2007-02-09 01:31:11 UTC (rev 435)
@@ -0,0 +1,140 @@
+/*******************************************************************************
+* Copyright (C) 2005, 2006 Novell, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* - Redistributions of source code must retain the above copyright notice,
+* this list of conditions and the following disclaimer.
+*
+* - Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following disclaimer in the documentation
+* and/or other materials provided with the distribution.
+*
+* - Neither the name of Novell, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived from this
+* software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL Novell, Inc. OR THE CONTRIBUTORS
+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*
+******************************************************************************/
+
+#include "CIM_LogicalFile_Provider.h"
+#include "OMC_LinuxDirectoryContainsFile.h"
+#include "omc/fileTools.h"
+#include "FilesCommon.hpp"
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+CIMPLE_NAMESPACE_BEGIN
+
+CIM_LogicalFile_Provider::CIM_LogicalFile_Provider()
+{
+}
+
+CIM_LogicalFile_Provider::~CIM_LogicalFile_Provider()
+{
+}
+
+Load_Status CIM_LogicalFile_Provider::load()
+{
+ return LOAD_OK;
+}
+
+Unload_Status CIM_LogicalFile_Provider::unload()
+{
+ return UNLOAD_OK;
+}
+
+Get_Instance_Status CIM_LogicalFile_Provider::get_instance(
+ const CIM_LogicalFile* model,
+ CIM_LogicalFile*& instance)
+{
+ instance = getFile(model->Name.value.c_str());
+ return GET_INSTANCE_OK;
+}
+
+Enum_Instances_Status CIM_LogicalFile_Provider::enum_instances(
+ const CIM_LogicalFile* model,
+ Enum_Instances_Handler<CIM_LogicalFile>* handler)
+{
+ if (eqi(model->meta_class->name, "OMC_LinuxDirectory"))
+ {
+ struct stat st;
+ if (lstat("/", &st) != 0)
+ {
+ return ENUM_INSTANCES_FAILED;
+ }
+ omcFileKeys* keys = omcGetKeysForFileStat("/", &st);
+ if (keys == NULL)
+ {
+ return ENUM_INSTANCES_FAILED;
+ }
+ OMC_LinuxDirectory* dir = OMC_LinuxDirectory::create();
+ if (dir == NULL)
+ {
+ return ENUM_INSTANCES_FAILED;
+ }
+ dir->CreationClassName.value = keys->CreationClassName;
+ dir->CSCreationClassName.value = keys->CSCreationClassName;
+ dir->CSName.value = keys->CSName;
+ dir->Name.value = keys->Name;
+ dir->FSName.value = keys->FSName;
+ dir->FSCreationClassName.value = keys->FSCreationClassName;
+ omcFileKeys_free(keys);
+ handler->handle(cast<CIM_LogicalFile*>(dir));
+ }
+ return ENUM_INSTANCES_OK;
+}
+
+Create_Instance_Status CIM_LogicalFile_Provider::create_instance(
+ const CIM_LogicalFile* instance)
+{
+ return CREATE_INSTANCE_UNSUPPORTED;
+}
+
+Delete_Instance_Status CIM_LogicalFile_Provider::delete_instance(
+ const CIM_LogicalFile* instance)
+{
+ return DELETE_INSTANCE_UNSUPPORTED;
+}
+
+Modify_Instance_Status CIM_LogicalFile_Provider::modify_instance(
+ const CIM_LogicalFile* instance)
+{
+ return MODIFY_INSTANCE_UNSUPPORTED;
+}
+
+int CIM_LogicalFile_Provider::proc(
+ const Registration* registration,
+ int operation,
+ void* arg0,
+ void* arg1,
+ void* arg2,
+ void* arg3,
+ void* arg4,
+ void* arg5,
+ void* arg6,
+ void* arg7)
+{
+ // CAUTION: PLEASE DO NOT MODIFY THIS FUNCTION; IT WAS AUTOMATICALLY
+ // GENERATED.
+
+ typedef CIM_LogicalFile Class;
+ typedef CIM_LogicalFile_Provider Provider;
+ return Provider_Proc_T<Provider>::proc(registration,
+ operation, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+}
+
+CIMPLE_NAMESPACE_END
Added: cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider.h
===================================================================
--- cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider.h (rev 0)
+++ cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider.h 2007-02-09 01:31:11 UTC (rev 435)
@@ -0,0 +1,55 @@
+#ifndef _CIM_LogicalFile_Provider_h
+#define _CIM_LogicalFile_Provider_h
+
+#include <cimple/cimple.h>
+#include "CIM_LogicalFile.h"
+
+CIMPLE_NAMESPACE_BEGIN
+
+class CIM_LogicalFile_Provider
+{
+public:
+
+ typedef CIM_LogicalFile Class;
+
+ CIM_LogicalFile_Provider();
+
+ ~CIM_LogicalFile_Provider();
+
+ Load_Status load();
+
+ Unload_Status unload();
+
+ Get_Instance_Status get_instance(
+ const CIM_LogicalFile* model,
+ CIM_LogicalFile*& instance);
+
+ Enum_Instances_Status enum_instances(
+ const CIM_LogicalFile* model,
+ Enum_Instances_Handler<CIM_LogicalFile>* handler);
+
+ Create_Instance_Status create_instance(
+ const CIM_LogicalFile* instance);
+
+ Delete_Instance_Status delete_instance(
+ const CIM_LogicalFile* instance);
+
+ Modify_Instance_Status modify_instance(
+ const CIM_LogicalFile* instance);
+
+ static int proc(
+ const Registration* registration,
+ int operation,
+ void* arg0,
+ void* arg1,
+ void* arg2,
+ void* arg3,
+ void* arg4,
+ void* arg5,
+ void* arg6,
+ void* arg7);
+};
+
+CIMPLE_NAMESPACE_END
+
+#endif /* _CIM_LogicalFile_Provider_h */
Added: cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider_module.cpp
===================================================================
--- cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider_module.cpp (rev 0)
+++ cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider_module.cpp 2007-02-09 01:31:11 UTC (rev 435)
@@ -0,0 +1,16 @@
+
+#include "config.h"
+#include "CIM_LogicalFile_Provider.h"
+
+using namespace cimple;
+
+CIMPLE_MODULE(CIM_LogicalFile_Module);
+
+CIMPLE_PROVIDER(CIM_LogicalFile_Provider);
+CIMPLE_CMPI_INSTANCE_PROVIDER(CIM_LogicalFile_Provider);
+
+#ifdef HAVE_CIMPLE_OPENWBEM_ADAPTER_H
+ #include <cimple/OpenWBEM_Adapter.h>
+ CIMPLE_OPENWBEM_PROVIDER(CIM_LogicalFile_Provider);
+#endif
+
Added: cmpibase/trunk/src/providers/logical-file/FilesCommon.cpp
===================================================================
--- cmpibase/trunk/src/providers/logical-file/FilesCommon.cpp (rev 0)
+++ cmpibase/trunk/src/providers/logical-file/FilesCommon.cpp 2007-02-09 01:31:11 UTC (rev 435)
@@ -0,0 +1,226 @@
+/*******************************************************************************
+* Copyright (C) 2005, 2006 Novell, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* - Redistributions of source code must retain the above copyright notice,
+* this list of conditions and the following disclaimer.
+*
+* - Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following disclaimer in the documentation
+* and/or other materials provided with the distribution.
+*
+* - Neither the name of Novell, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived from this
+* software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL Novell, Inc. OR THE CONTRIBUTORS
+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*
+******************************************************************************/
+
+#include "OMC_LinuxDirectory.h"
+#include "OMC_LinuxDeviceFile.h"
+#include "OMC_LinuxDataFile.h"
+#include "OMC_LinuxFIFOPipeFile.h"
+#include "OMC_LinuxSymbolicLink.h"
+#include "OMC_LinuxFile.h"
+#include "FilesCommon.hpp"
+#include "omc/fileTools.h"
+
+#include <dirent.h>
+#include <sys/param.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/param.h>
+#include <unistd.h>
+#include <grp.h>
+#include <pwd.h>
+
+
+CIMPLE_NAMESPACE_BEGIN
+
+
+static
+cimple::String _getGroupFromGID(gid_t gid)
+{
+ String rval;
+ char buf[PWENT_GRPENT_BUF_SIZE];
+ struct group gr;
+ struct group* pgr;
+ int rv = getgrgid_r(gid, &gr, buf, PWENT_GRPENT_BUF_SIZE, &pgr);
+ if (rv == 0 && pgr)
+ {
+ rval = gr.gr_name;
+ } else
+ {
+ snprintf(buf, sizeof(buf), "%d", gid);
+ rval = buf;
+ }
+ return rval;
+}
+
+static
+cimple::String _getNameFromUID(uid_t uid)
+{
+ String rval;
+ char buf[PWENT_GRPENT_BUF_SIZE];
+ struct passwd pw;
+ struct passwd* ppw = 0;
+ int rv = getpwuid_r(uid, &pw, buf, PWENT_GRPENT_BUF_SIZE, &ppw);
+ if (rv == 0 && ppw)
+ {
+ //rval = strdup(pw.pw_name);
+ rval = pw.pw_name;
+ } else
+ {
+ snprintf(buf,sizeof(buf),"%d", uid);
+ rval = buf;
+ }
+ return rval;
+}
+
+OMC_LinuxFile* getLinuxFile(const char* path)
+{
+ struct stat st;
+ if (stat(path, &st) != 0)
+ {
+ return 0;
+ }
+ omcFileKeys* keys = omcGetKeysForFileStat(path, &st);
+ if (!keys)
+ {
+ return 0;
+ }
+
+ OMC_LinuxFile* instance = OMC_LinuxFile::create();
+ instance->LFName.value = keys->Name;
+ instance->FSCreationClassName.value = keys->FSCreationClassName;
+ instance->FSName.value = keys->FSName;
+ instance->LFCreationClassName.value = keys->CreationClassName;
+ instance->CSCreationClassName.value = keys->CSCreationClassName;
+ instance->CSName.value = keys->CSName;
+ omcFileKeys_free(keys);
+ instance->UserReadable.value = st.st_mode & S_IRUSR;
+ instance->UserWritable.value = st.st_mode & S_IWUSR;
+ instance->UserExecutable.value = st.st_mode & S_IXUSR;
+ instance->GroupReadable.value = st.st_mode & S_IRGRP;
+ instance->GroupWritable.value = st.st_mode & S_IWGRP;
+ instance->GroupExecutable.value = st.st_mode & S_IXGRP;
+ instance->WorldReadable.value = st.st_mode & S_IROTH;
+ instance->WorldWritable.value = st.st_mode & S_IWOTH;
+ instance->WorldExecutable.value = st.st_mode & S_IXOTH;
+ instance->UserID.value = _getNameFromUID(st.st_uid);
+ instance->GroupID.value = _getGroupFromGID(st.st_gid);
+ instance->SaveText.value = st.st_mode & S_ISVTX;
+ instance->LinkCount.value = st.st_nlink;
+ char buf[256];
+ snprintf(buf, 255, "%lld", uint64(st.st_ino));
+ instance->FileInodeNumber.value = buf;
+ instance->SetUid.value = st.st_mode & S_ISUID;
+ instance->SetGid.value = st.st_mode & S_ISGID;
+ instance->LastModifiedInode.value = Datetime(uint64(st.st_mtime)*1000000L, 0);
+ instance->NameMax.value = MAXNAMLEN;
+ instance->PathMax.value = MAXPATHLEN;
+ return instance;
+}
+
+CIM_LogicalFile* getFile(const char* path)
+{
+ struct stat st;
+ if (lstat(path, &st) != 0)
+ {
+ return NULL;
+ }
+ omcFileKeys* keys = omcGetKeysForFileStat(path, &st);
+ if (keys == NULL)
+ {
+ return NULL;
+ }
+
+ CIM_LogicalFile* rval = NULL;
+ if (S_ISREG(st.st_mode))
+ {
+ OMC_LinuxDataFile* df = OMC_LinuxDataFile::create();
+ rval = cast<CIM_LogicalFile*>(df);
+ } else if (S_ISDIR(st.st_mode))
+ {
+ OMC_LinuxDirectory* dir = OMC_LinuxDirectory::create();
+ //dir->FileSizeBits.value = ;
+ rval = cast<CIM_LogicalFile*>(dir);
+ } else if (S_ISCHR(st.st_mode) || S_ISBLK(st.st_mode))
+ {
+ OMC_LinuxDeviceFile* dev = OMC_LinuxDeviceFile::create();
+ if (S_ISCHR(st.st_mode))
+ {
+ dev->DeviceFileType.value = dev->DeviceFileType.enum_Character;
+ }
+ else
+ {
+ dev->DeviceFileType.value = dev->DeviceFileType.enum_Block;
+ }
+ //dev->DeviceDescription.value = ;
+ //dev->DeviceMinor.value = ;
+ //dev->DeviceMajor.value = ;
+ //dev->DeviceId.value = ;
+ //dev->OtherTypeDescription.value = ;
+ rval = cast<CIM_LogicalFile*>(dev);
+ } else if (S_ISFIFO(st.st_mode))
+ {
+ OMC_LinuxFIFOPipeFile* fifo = OMC_LinuxFIFOPipeFile::create();
+ rval = cast<CIM_LogicalFile*>(fifo);
+ } else if (S_ISLNK(st.st_mode))
+ {
+ OMC_LinuxSymbolicLink* link = OMC_LinuxSymbolicLink::create();
+ char buf[MAXPATHLEN];
+ int rrdlnk = readlink(keys->Name, buf, MAXPATHLEN);
+ if (rrdlnk != -1)
+ {
+ link->TargetFile.value = buf;
+ }
+ rval = cast<CIM_LogicalFile*>(link);
+ } else
+ {
+ return NULL;
+ }
+ rval->Name.value = keys->Name;
+ rval->CreationClassName.value = keys->CreationClassName;
+ rval->FSName.value = keys->FSName;
+ rval->FSCreationClassName.value = keys->FSCreationClassName;
+ rval->CSName.value = keys->CSName;
+ rval->CSCreationClassName.value = keys->CSCreationClassName;
+ omcFileKeys_free(keys);
+
+ rval->Writeable.value = st.st_mode & S_IWUSR;
+ rval->Executable.value = st.st_mode & S_IXUSR;
+ rval->Readable.value = st.st_mode & S_IRUSR;
+ rval->FileSize.value = st.st_size;
+ //rval->CompressionMethod.value = ;
+ rval->LastModified.value = Datetime(uint64(st.st_mtime)*1000000L, 0);
+ //rval->InUseCount.value = ;
+ //rval->EncryptionMethod.value = ;
+ rval->LastAccessed.value = Datetime(uint64(st.st_atime)*1000000L, 0);
+ //rval->HealthState.value = ;
+ //rval->StatusDescriptions.value = ;
+ //rval->OperationalStatus.value = ;
+ //rval->Description.value = ;
+ rval->InstallDate.value = Datetime(uint64(st.st_ctime)*1000000L, 0);
+
+ rval->ElementName.value = rval->Name.value;
+ //rval->Caption.value = ;
+
+ return rval;
+}
+
+CIMPLE_NAMESPACE_END
+
Added: cmpibase/trunk/src/providers/logical-file/FilesCommon.hpp
===================================================================
--- cmpibase/trunk/src/providers/logical-file/FilesCommon.hpp (rev 0)
+++ cmpibase/trunk/src/providers/logical-file/FilesCommon.hpp 2007-02-09 01:31:11 UTC (rev 435)
@@ -0,0 +1,16 @@
+#ifndef OMC_FilesCommon_hpp_include_guard__
+#define OMC_FilesCommon_hpp_include_guard__
+
+#include "CIM_LogicalFile.h"
+#include "OMC_LinuxFile.h"
+
+CIMPLE_NAMESPACE_BEGIN
+
+#define PWENT_GRPENT_BUF_SIZE 1024
+
+CIM_LogicalFile* getFile(const char* path);
+OMC_LinuxFile* getLinuxFile(const char* path);
+
+CIMPLE_NAMESPACE_END
+
+#endif // #ifndef OMC_FilesCommon_hpp_include_guard__
Added: cmpibase/trunk/src/providers/logical-file/Makefile.am
===================================================================
--- cmpibase/trunk/src/providers/logical-file/Makefile.am (rev 0)
+++ cmpibase/trunk/src/providers/logical-file/Makefile.am 2007-02-09 01:31:11 UTC (rev 435)
@@ -0,0 +1,76 @@
+SUBDIRS = schema
+
+lib_LTLIBRARIES = libOMC_FilesCommon.la
+
+provider_LTLIBRARIES = \
+ libCIM_LogicalFile_Provider.la \
+ libOMC_LinuxDirectoryContainsFile_Provider.la \
+ libOMC_LinuxFileIdentity_Provider.la \
+ libOMC_LinuxFile_Provider.la
+
+providerdir = ${libdir}/cmpi
+
+CIMPLE_ADAPTERS = -lcimplecmpiadap
+if USE_CIMPLE_OW_ADAPTER
+ CIMPLE_ADAPTERS += -lcimpleowadap
+endif
+
+libCIM_LogicalFile_Provider_la_LIBADD = \
+ libOMC_FilesCommon.la \
+ ${CIMPLE_ADAPTERS} \
+ schema/libOMC_File_Schema.la
+libOMC_LinuxFile_Provider_la_LIBADD = \
+ libOMC_FilesCommon.la \
+ ${CIMPLE_ADAPTERS} \
+ schema/libOMC_File_Schema.la
+libOMC_LinuxFileIdentity_Provider_la_LIBADD = \
+ libOMC_FilesCommon.la \
+ ${CIMPLE_ADAPTERS} \
+ schema/libOMC_File_Schema.la
+libOMC_LinuxDirectoryContainsFile_Provider_la_LIBADD = \
+ libOMC_FilesCommon.la \
+ ${CIMPLE_ADAPTERS} \
+ schema/libOMC_File_Schema.la
+
+libOMC_FilesCommon_la_LIBADD = \
+ schema/libOMC_File_Schema.la \
+ ${top_builddir}/src/lib/omc/libomc_cbase.la
+
+
+INCLUDES = -I${srcdir}/schema -I${top_srcdir}/src/include -I${top_srcdir}
+
+libOMC_FilesCommon_la_SOURCES = \
+FilesCommon.cpp \
+FilesCommon.hpp
+
+libOMC_LinuxFile_Provider_la_SOURCES = \
+OMC_LinuxFile_Provider.cpp \
+OMC_LinuxFile_Provider.h \
+OMC_LinuxFile_Provider_module.cpp
+
+libOMC_LinuxDirectoryContainsFile_Provider_la_SOURCES = \
+OMC_LinuxDirectoryContainsFile_Provider.cpp \
+OMC_LinuxDirectoryContainsFile_Provider.h \
+OMC_LinuxDirectoryContainsFile_Provider_module.cpp
+
+libOMC_LinuxFileIdentity_Provider_la_SOURCES = \
+OMC_LinuxFileIdentity_Provider.cpp \
+OMC_LinuxFileIdentity_Provider.h \
+OMC_LinuxFileIdentity_Provider_module.cpp
+
+libCIM_LogicalFile_Provider_la_SOURCES = \
+CIM_LogicalFile_Provider.cpp \
+CIM_LogicalFile_Provider.h \
+CIM_LogicalFile_Provider_module.cpp
+
+stubs : classes
+ export CIMPLE_MOF_PATH=/usr/share/mof/cim-current && \
+ genprov -M omc-logical-file.mof -m CIM_LogicalFile && \
+ mv module.cpp CIM_LogicalFile_Provider_module.cpp && \
+ genprov -M omc-logical-file.mof -m OMC_LinuxDirectoryContainsFile && \
+ mv module.cpp OMC_LinuxDirectoryContainsFile_Provider_module.cpp && \
+ genprov -M omc-logical-file.mof -m OMC_LinuxFileIdentity && \
+ mv module.cpp OMC_LinuxFileIdentity_Provider_module.cpp && \
+ genprov -M omc-logical-file.mof -m OMC_LinuxFile && \
+ mv module.cpp OMC_LinuxFile_Provider_module.cpp
+
Added: cmpibase/trunk/src/providers/logical-file/OMC_LinuxDirectoryContainsFile_Provider.cpp
===================================================================
--- cmpibase/trunk/src/providers/logical-file/OMC_LinuxDirectoryContainsFile_Provider.cpp (rev 0)
+++ cmpibase/trunk/src/providers/logical-file/OMC_LinuxDirectoryContainsFile_Provider.cpp 2007-02-09 01:31:11 UTC (rev 435)
@@ -0,0 +1,256 @@
+/*******************************************************************************
+* Copyright (C) 2005, 2006 Novell, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*
+* - Redistributions of source code must retain the above copyright notice,
+* this list of conditions and the following disclaimer.
+*
+* - Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following disclaimer in the documentation
+* and/or other materials provided with the distribution.
+*
+* - Neither the name of Novell, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived from this
+* software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL Novell, Inc. OR THE CONTRIBUTORS
+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+* POSSIBILITY OF SUCH DAMAGE.
+*
+******************************************************************************/
+#include "OMC_LinuxDirectoryContainsFile_Provider.h"
+#include "OMC_LinuxDirectory.h"
+#include "CIM_LogicalFile.h"
+#include "omc/fileTools.h"
+#include "FilesCommon.hpp"
+#include <sys/types.h>
+#include <dirent.h>
+
+CIMPLE_NAMESPACE_BEGIN
+
+#if 0
+# define TRACE CIMPLE_TRACE
+#else
+# define TRACE
+#endif
+
+OMC_LinuxDirectoryContainsFile_Provider::OMC_LinuxDirectoryContainsFile_Provider()
+{
+}
+
+OMC_LinuxDirectoryContainsFile_Provider::~OMC_LinuxDirectoryContainsFile_Provider()
+{
+}
+
+Load_Status OMC_LinuxDirectoryContainsFile_Provider::load()
+{
+ return LOAD_OK;
+}
+
+Unload_Status OMC_LinuxDirectoryContainsFile_Provider::unload()
+{
+ return UNLOAD_OK;
+}
+
+Get_Instance_Status OMC_LinuxDirectoryContainsFile_Provider::get_instance(
+ const OMC_LinuxDirectoryContainsFile* model,
+ OMC_LinuxDirectoryContainsFile*& instance)
+{
+ instance = model->clone();
+ return GET_INSTANCE_OK;
+}
+
+Enum_Instances_Status OMC_LinuxDirectoryContainsFile_Provider::enum_instances(
+ const OMC_LinuxDirectoryContainsFile* model,
+ Enum_Instances_Handler<OMC_LinuxDirectoryContainsFile>* handler)
+{
+ return ENUM_INSTANCES_OK;
+}
+
+Create_Instance_Status OMC_LinuxDirectoryContainsFile_Provider::create_instance(
+ const OMC_LinuxDirectoryContainsFile* instance)
+{
+ return CREATE_INSTANCE_UNSUPPORTED;
+}
+
+Delete_Instance_Status OMC_LinuxDirectoryContainsFile_Provider::delete_instance(
+ const OMC_LinuxDirectoryContainsFile* instance)
+{
+ return DELETE_INSTANCE_UNSUPPORTED;
+}
+
+Modify_Instance_Status OMC_LinuxDirectoryContainsFile_Provider::modify_instance(
+ const OMC_LinuxDirectoryContainsFile* instance)
+{
+ return MODIFY_INSTANCE_UNSUPPORTED;
+}
+
+Enum_Associator_Names_Status OMC_LinuxDirectoryContainsFile_Provider::enum_associator_names(
+ const Instance* instance,
+ const String& result_class,
+ const String& role,
+ const String& result_role,
+ Enum_Associator_Names_Handler<Instance>* handler)
+{
+ if (eqi(role, "PartComponent")
+ || eqi(result_role, "GroupComponent")
+ || (role.empty() && result_role.empty()))
+ {
+ TRACE;
+ CIM_LogicalFile* clf = cast<CIM_LogicalFile*>(instance);
+ char* parentPath = omc_dirname(clf->Name.value.c_str());
+ CIM_LogicalFile* parentc = getFile(parentPath);
+ free(parentPath);
+ OMC_LinuxDirectory* parent = cast<OMC_LinuxDirectory*>(parentc);
+ handler->handle(parent);
+ }
+ if (eqi(role, "GroupComponent")
+ || eqi(result_role, "PartComponent")
+ || (role.empty() && result_role.empty()))
+ {
+ TRACE;
+ CIM_LogicalFile* dirc = cast<CIM_LogicalFile*>(instance);
+ TRACE;
+ dirc = getFile(dirc->Name.value.c_str());
+ Ref<Instance> dirc_d(dirc);
+ TRACE;
+ if (eqi(dirc->CreationClassName.value, "OMC_LinuxDirectory"))
+ {
+ struct dirent* pDent;
+ DIR* pDir;
+ pDir = opendir(dirc->Name.value.c_str());
+ if (pDir != 0)
+ {
+ String prefix = dirc->Name.value;
+ TRACE;
+ if (prefix[prefix.size()-1] != '/')
+ {
+ TRACE;
+ prefix.append('/');
+ }
+ TRACE;
+ for (pDent = readdir(pDir); pDent != 0; pDent = readdir(pDir))
+ {
+ String curName = pDent->d_name;
+ if (curName.equal(".") or curName.equal(".."))
+ {
+ continue;
+ }
+ String fullName = prefix;
+ fullName.append(curName);
+ CIM_LogicalFile* fileInDir = getFile(fullName.c_str());
+ if (fileInDir)
+ {
+ TRACE;
+ handler->handle(fileInDir);
+ }
+ }
+ }
+ closedir(pDir);
+ }
+ }
+ return ENUM_ASSOCIATOR_NAMES_OK;
+}
+
+Enum_References_Status OMC_LinuxDirectoryContainsFile_Provider::enum_references(
+ const Instance* instance,
+ const OMC_LinuxDirectoryContainsFile* model,
+ const String& role,
+ Enum_References_Handler<OMC_LinuxDirectoryContainsFile>* handler)
+{
+ TRACE;
+ if (eqi(role, "PartComponent") || role.empty())
+ {
+ TRACE;
+ CIM_LogicalFile* clf = cast<CIM_LogicalFile*>(instance);
+ char* parentPath = omc_dirname(clf->Name.value.c_str());
+ CIM_LogicalFile* parentc = getFile(parentPath);
+ free(parentPath);
+ OMC_LinuxDirectory* parent = cast<OMC_LinuxDirectory*>(parentc);
+ OMC_LinuxDirectoryContainsFile* assoc = OMC_LinuxDirectoryContainsFile::create();
+ assoc->PartComponent = clf->clone();
+ assoc->GroupComponent = parent;
+ handler->handle(assoc);
+ }
+ if (eqi(role, "GroupComponent") || role.empty())
+ {
+ TRACE;
+ CIM_LogicalFile* dirc = cast<CIM_LogicalFile*>(instance);
+ TRACE;
+ dirc = getFile(dirc->Name.value.c_str());
+ Ref<Instance> dirc_d(dirc);
+ TRACE;
+ if (eqi(dirc->CreationClassName.value, "OMC_LinuxDirectory"))
+ {
+ struct dirent* pDent;
+ DIR* pDir;
+ pDir = opendir(dirc->Name.value.c_str());
+ if (pDir != 0)
+ {
+ String prefix = dirc->Name.value;
+ TRACE;
+ if (prefix[prefix.size()-1] != '/')
+ {
+ TRACE;
+ prefix.append('/');
+ }
+ TRACE;
+ for (pDent = readdir(pDir); pDent != 0; pDent = readdir(pDir))
+ {
+ String curName = pDent->d_name;
+ if (curName.equal(".") or curName.equal(".."))
+ {
+ continue;
+ }
+ String fullName = prefix;
+ fullName.append(curName);
+ CIM_LogicalFile* fileInDir = getFile(fullName.c_str());
+ if (fileInDir)
+ {
+ TRACE;
+ OMC_LinuxDirectoryContainsFile* assoc = OMC_LinuxDirectoryContainsFile::create();
+ OMC_LinuxDirectory* old = cast<OMC_LinuxDirectory*>(dirc);
+ assoc->GroupComponent = old->clone();
+ assoc->PartComponent = fileInDir;
+ handler->handle(assoc);
+ }
+ }
+ }
+ closedir(pDir);
+ }
+ }
+ return ENUM_REFERENCES_OK;
+}
+
+int OMC_LinuxDirectoryContainsFile_Provider::proc(
+ const Registration* registration,
+ int operation,
+ void* arg0,
+ void* arg1,
+ void* arg2,
+ void* arg3,
+ void* arg4,
+ void* arg5,
+ void* arg6,
+ void* arg7)
+{
+ // CAUTION: PLEASE DO NOT MODIFY THIS FUNCTION; IT WAS AUTOMATICALLY
+ // GENERATED.
+
+ typedef OMC_LinuxDirectoryContainsFile Class;
+ typedef OMC_LinuxDirectoryContainsFile_Provider Provider;
+ return Association_Provider_Proc_T<Provider>::proc(registration,
+ operation, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+}
+
+CIMPLE_NAMESPACE_END
Added...
[truncated message content] |