summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorkarl <karl>2006-01-27 05:47:23 +0000
committerkarl <karl>2006-01-27 05:47:23 +0000
commitf8c957e5954d977ba755f60ebd2fd50459aed4d0 (patch)
treee1a127dfafd19ea5fc4683636a21ebfe69b55d3f /doc
parentb16b40af96e37d913f39794e277ce7a413e42088 (diff)
downloadtog-pegasus-f8c957e5954d977ba755f60ebd2fd50459aed4d0.zip
tog-pegasus-f8c957e5954d977ba755f60ebd2fd50459aed4d0.tar.gz
tog-pegasus-f8c957e5954d977ba755f60ebd2fd50459aed4d0.tar.xz
BUG#: 4706
TITLE: Delete files not longer desired in doc directory DESCRIPTION: Deleted the files listed in the bug
Diffstat (limited to 'doc')
-rw-r--r--doc/CIM_Questions.txt11
-rw-r--r--doc/HOWTOCOMPILER.txt84
-rw-r--r--doc/MakeCodeNicer.dsm894
-rw-r--r--doc/NOTES58
-rw-r--r--doc/Servlet/Pegasus_Servlet_Design.pdfbin272533 -> 0 bytes
-rw-r--r--doc/Servlet/cimservlet.properties7
-rw-r--r--doc/Servlet/readme.txt169
-rw-r--r--doc/Servlet/web.xml776
-rw-r--r--doc/Tru64BuildNotes.txt47
-rw-r--r--doc/changelog.txt1631
-rw-r--r--doc/irc_logs/02052002_irc.txt216
-rw-r--r--doc/irc_logs/02132002_irc.txt223
-rw-r--r--doc/irc_logs/02_062002_irc.txt389
-rw-r--r--doc/iterator_example.txt47
-rw-r--r--doc/questions.txt10
-rw-r--r--doc/tidbits.txt7
-rw-r--r--doc/todo.txt262
17 files changed, 0 insertions, 4831 deletions
diff --git a/doc/CIM_Questions.txt b/doc/CIM_Questions.txt
deleted file mode 100644
index 829df85..0000000
--- a/doc/CIM_Questions.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
- 1. Is NULL distinct from a value of zero for integer properites?
-
- 2. Is NULL distinct from an empty string value for string?
-
- 3. How are property lists encoded in CIM?
-
- 4. Figure out whether it's okay to delete an instance when it is
- still involed in one or more associations.
-
diff --git a/doc/HOWTOCOMPILER.txt b/doc/HOWTOCOMPILER.txt
deleted file mode 100644
index 2960885..0000000
--- a/doc/HOWTOCOMPILER.txt
+++ /dev/null
@@ -1,84 +0,0 @@
-
-HOWTO - Pegasus comiler usage
-
-K. Schopmeyer (15 Feb 2002)
-
-The Pegasus MOF compiler is a command line utility that compiles MOF files
-(using the MOF format defined by the DMTF CIM Specification) into a Pegasus
-repository. It allows compiling from strucutures of MOF files using the
-include pragma and can either compile into a Pegasus repository or simply
-perform a syntax check on the MOF files.
-
-In the syntax check mode, it checks each class independently and does not do
-semantic checks between classes (ex. check for super-classes, etc.). When
-compiling into a Pegasus repository, the compiler uses Pegasus to install the
-classes and instances into the repository and uses the semantic checking built
-into Pegasus.
-
-The compiler operates standalone in the syntax checking mode but requires the
-Pegasus libraries when compiling into a Pegasus respository.
-
-The compiler requires that the input MOF files be in the current directory
-or that a fully qualified path be given. MOF files included using
-#pragma include must be in the current directory or in a directory specified
-by a -I command line switch.
-
-The compiler assumes that the file extension is .mof if it is not specified.
-(This feature is not yet implemented.)
-
-The actual configuration and type of repository created depends on the
-characteristics of the repository implemented in Pegasus.
-See the description of the Pegasus repositories for more information.
-
-There are actually two compiler executable files.
-
-cimof.exe - This file operates through the client interface and acts as a
-remote compiler against an active CIM Repository
-cimmofl.exe - This file operates locally and directly against the repository.
-
- cimmof -w -Rtestrepository -I./MOF MOF/CIMSchema25.mof
- cimmofl -w -Rtestrepository -I./MOF MOF/CIMSchema25.mof
-
-
-Compile the mof file defined in the directory MOF with the name CIMSchema25.mof
-and with include pragmas for other MOF files also in that directory and create
-the repository testrepository
-
-
-NAME
-
- cimmof - Compile DMTF CIM MOF
-
-SYNOPSIS
- cimmof [OPTION]... [FILE]...
-
-DESCRIPTION
-
-The MOF compiler TBD
-
-OPTIONS
--h, --help Print out usage message with command line definitions.
-
--E Perform only a syntax check on the input and creates no repository. Inthis mode, the compiler does not do the sematic checks that are done when a CIM object is\
- ded to a repository
-
--w Suppresses warning messages.
-
--R<path> - Specifies the path to the repository to be written. This is an
- alternative to the PEGASUS_HOME environment variable. If
- PEGASUS_HOME is set the repository gets written to
- $PEGASUS_HOME/repository. The -R flag one the command line
- overrides this with <path> specified in the directive.
- Specify an absolute or relative path.
-
---CIMRepository=<path>
-
--I<path> Specifies the path to included MOF files. If the inputmof file
- has include pragmas and the included files do not reside in
- the current directory, the -I directive must be used to specify
- a path to them on the compiler command line. Do this with
- the -I flag.
-
- cimmof -I~/testfiles ~/testfiles/main.mof
-
-The path may be relative or absolute.
diff --git a/doc/MakeCodeNicer.dsm b/doc/MakeCodeNicer.dsm
deleted file mode 100644
index f9ce441..0000000
--- a/doc/MakeCodeNicer.dsm
+++ /dev/null
@@ -1,894 +0,0 @@
-Option Explicit
-
-'------------------------------------------------------------------------------
-'FILE DESCRIPTION: Routines to reformat C/C++ code.
-'------------------------------------------------------------------------------
-
-Sub MakeCodeNicer()
-'DESCRIPTION: Reformats the source code to look nicer, the way I like it.
-' Written by Alvaro Mendez on 06/10/1999
-' Taken from http://www.codeguru.com/devstudio_macros/MakeCodeNicer.shtml
-
- ' Check that the current document can be changed
- if ActiveDocument.ReadOnly then
-
- ' If we're connected to SourceSafe, let it prompt for check out
- ActiveDocument.Selection = "a"
- ActiveDocument.Undo
-
- if ActiveDocument.ReadOnly then ' check again
- MsgBox "This macro cannot be executed on a read-only file.", _
- vbExclamation
- exit sub
- end if
- end if
-
- ' Save current line so we can return to it at the end
- dim nLine
- nLine = ActiveDocument.Selection.CurrentLine
-
- ' Add spaces in a few places and get rid of it in others
- Replace "\:b+;", ";"
- Replace "\:b+::\:b+", "::"
- Replace "\:b+(", "("
- Replace "if(", "if ("
- Replace "for(", "for ("
- Replace "while(", "while ("
- Replace "switch(", "switch ("
- Replace "catch(", "catch ("
- Replace "return(", "return ("
- Replace "(\:b+", "("
- Replace "\:b+)", ")"
- Replace ";)", "; )"
- Replace ";;\:b+)", ";;)"
- Replace "\[\:b+", "["
- Replace "\:b+\]", "]"
- Replace "\:b+\[", "["
-
- ' Make sure these statements don't end on the same line they started.
- BreakSingleLiners "if ("
- BreakSingleLiners "for ("
- BreakSingleLiners "switch ("
-
- ' Break up any lines containing multiple statements
- BreakLinesWithMultipleStatements
-
- ' Make sure braces are on lines by themselves (unless followed by comments)
- IsolateOnLeft "{"
- IsolateOnRight "{"
- IsolateOnRight "}"
- IsolateOnLeft "}"
-
- ' Break up case statements appearing on single lines
- IsolateOnRight "case .+: "
- IsolateOnLeft "break;"
-
- ' Add a space between these operators
- FixOperator "=", 1
- FixOperator "==", 2
- FixOperator "!=", 2
- FixOperator "\+=", 2
- FixOperator "-=", 2
- FixOperator "\*=", 2
- FixOperator "/=", 2
- FixOperator "\+", 1
- FixOperator "-", 1
- FixOperator "<=", 2
- FixOperator ">=", 2
- FixOperator "<<", 2
- FixOperator ">>", 2
- FixOperator "&&", 2
- FixOperator "||", 2
- FixOperator "|", 1
- FixLessThanOperator
- FixExponents
-
- ' Append a space after these
- AppendSpace ","
- AppendSpace ";"
-
- ' Make sure C++ comments (followed by words) have a space after them
- while ActiveDocument.Selection.FindText("//[A-Z,a-z,0-9]", dsMatchRegExp)
- ActiveDocument.Selection.CharRight
- ActiveDocument.Selection.CharLeft
- ActiveDocument.Selection = " "
- wend
-
- ' Replace all the trailing whitespace (thanks to Paul Bludov)
- ActiveDocument.Selection.ReplaceText "\:b+\($\)", "\1", dsMatchRegExp
-
- ' Fix tabs within code surrounded by braces
- TabifyMatchingBraces
-
- ' Remove any lines that are considered extraneous (ie. extra blank lines)
- RemoveExtraneousLines
-
- ' Indent every "case" inside switch statements (thanks to Jim Cooper)
- IndentSwitchBody
-
- ' Go back to where we were at the beginning
- ActiveDocument.Selection.GoToLine nLine
-
-End Sub
-
-' Is the cursor currently within a quoted string (or character)
-function IsWithinQuotes
- dim nCurrentLine, nCurrentColumn, iPos, strBuffer, nCount
-
- nCurrentLine = ActiveDocument.Selection.CurrentLine
- nCurrentColumn = ActiveDocument.Selection.CurrentColumn
-
- ActiveDocument.Selection.Cancel
- ActiveDocument.Selection.StartOfLine dsFirstText, dsExtend
-
- nCount = 0
- iPos = 0
- strBuffer = ActiveDocument.Selection
-
- ' Count all occurrences of a double quote which apply to quoted strings
- do while true
- iPos = InStr(iPos + 1, strBuffer, """", vbTextCompare)
- if not (iPos > 0) then
- exit do
- end if
-
- if iPos = 1 then ' if it's the first character, then it's valid
- nCount = nCount + 1
- else
- ' Make sure it's not preceded by a \ or a \\
- if Mid(strBuffer, iPos - 1, 1) <> "\" then
- nCount = nCount + 1
- elseif (iPos > 2) and (Mid(strBuffer, iPos - 2, 1) = "\") then
- nCount = nCount + 1
- end if
- end if
- loop
-
- ' If number of quotes is odd, we must be inside a quoted string!
- IsWithinQuotes = ((nCount > 0) and ((nCount Mod 2) <> 0))
-
- ActiveDocument.Selection.MoveTo nCurrentLine, nCurrentColumn
-
- ' If we're not inside a quoted string, check for a quoted character
- if not IsWithinQuotes then
- ActiveDocument.Selection.CharLeft dsExtend
-
- ' If we find a quoted character left of us, check for one on the right
- if ActiveDocument.Selection = "'" then
- ActiveDocument.Selection.CharRight
- ActiveDocument.Selection.CharRight dsExtend
- if ActiveDocument.Selection = "\" then
- ActiveDocument.Selection.CharRight
- ActiveDocument.Selection.CharRight dsExtend
- end if
- ActiveDocument.Selection.CharRight
- ActiveDocument.Selection.CharRight dsExtend
-
- if ActiveDocument.Selection = "'" then
- IsWithinQuotes = true
- end if
- end if
- ActiveDocument.Selection.MoveTo nCurrentLine, nCurrentColumn
- end if
-
- ' If we're inside quotes, proceed from the next character
- if IsWithinQuotes then
- ActiveDocument.Selection.CharRight
- end if
-
-end function
-
-' Is current selection preceded by a C++ comment? ("//")
-function IsWithinComment
- dim nCurrentLine, nCurrentColumn
-
- nCurrentLine = ActiveDocument.Selection.CurrentLine
- nCurrentColumn = ActiveDocument.Selection.CurrentColumn
-
- ActiveDocument.Selection.Cancel
- ActiveDocument.Selection.StartOfLine dsFirstText, dsExtend
-
- IsWithinComment = false
- if (InStr(1, ActiveDocument.Selection, "//", vbTextCompare) > 0) then
- IsWithinComment = true ' since it's commented out
- nCurrentLine = nCurrentLine + 1 ' we proceed from the next line
- end if
-
- ActiveDocument.Selection.MoveTo nCurrentLine, 1
-
-end function
-
-' Should the current selection be ignored?
-' (ie., is it within a comment or between quotes?)
-function ShouldIgnore
-
- ShouldIgnore = false
-
- if IsWithinQuotes then
- ShouldIgnore = true
- exit function
- end if
-
- if IsWithinComment then
- ShouldIgnore = true
- end if
-
-end function
-
-' Put the cursor at the top of the document and return "" to be passed
-' initially to GetCurrenPosition
-function InitializePosition
- ActiveDocument.Selection.StartOfDocument
- InitializePosition = ""
-end function
-
-' Retrieve the current position and return true if it's greater than the
-' last one. This is used to ensure that the file is only searched once
-' (provided the search is started from the top)
-function GetCurrentPosition(strPos)
- dim nLastLine, nLastColumn, nCurrentLine, nCurrentColumn, iPos, ch
-
- nLastLine = -1
- nLastColumn = -1
-
- nCurrentLine = ActiveDocument.Selection.CurrentLine
- nCurrentColumn = ActiveDocument.Selection.CurrentColumn
-
- ' Parse the last position and extract the line and column
- for iPos = 1 to Len(strPos)
- ch = Mid(strPos, iPos, 1)
- if ch = "," then
- nLastLine = Int(Mid(strPos, 1, iPos))
- nLastColumn = Int(Mid(strPos, iPos + 1))
- exit for
- end if
- next
-
- ' Return true if we're currently past the last position
- strPos = nCurrentLine & "," & nCurrentColumn
- GetCurrentPosition = (nCurrentLine > nLastLine) or _
- ((nLastLine = nCurrentLine) and (nCurrentColumn > nLastColumn))
-
-end function
-
-' Move by a certain number of columns
-sub MoveByColumns(nBy)
- ActiveDocument.Selection.MoveTo ActiveDocument.Selection.CurrentLine, _
- ActiveDocument.Selection.CurrentColumn + nBy
-end sub
-
-' Replace the given strFrom with strTo case sensitively
-sub Replace(strFrom, strTo)
- dim strLastPos, bContinue
-
- strLastPos = InitializePosition
- do while ActiveDocument.Selection.FindText(strFrom, _
- dsMatchCase + dsMatchRegExp)
-
- bContinue = GetCurrentPosition(strLastPos)
-
- ' Check if we're inside a comment or between quotes
- if not ShouldIgnore then
-
- ' Repeat the search since ShouldIgnore puts the cursor at
- ' the beginning of the line
- ActiveDocument.Selection.FindText strFrom, _
- dsMatchCase + dsMatchRegExp
- ActiveDocument.Selection = strTo
-
- elseif not bContinue then
- exit do
- end if
- loop
-
-end sub
-
-' Break the given str ending in (, so that instead of this:
-' if (a) return b;
-' it looks like this:
-' if (a)
-' return b;
-sub BreakSingleLiners(str)
- dim strLastPos, strFound, nCol, bBreak, strAfterFound
-
- ' Verify str ends in (, the beginning parenthesis
- if Right(str, 1) <> "(" then
- exit sub
- end if
-
- strLastPos = InitializePosition
-
- while ActiveDocument.Selection.FindText(str, dsMatchCase) and _
- GetCurrentPosition(strLastPos)
-
- ' Check if we're inside a comment or between quotes
- if not ShouldIgnore then
-
- ' Repeat the search since ShouldIgnore puts the cursor at the
- ' beginning of the line
- ActiveDocument.Selection.FindText str, dsMatchCase
-
- ' Find the matching brace and go to the end of the line
- ActiveDocument.Selection.CharRight
- ActiveDocument.Selection.CharLeft
- ExecuteCommand "GoToMatchBrace"
- ActiveDocument.Selection.CharRight
- nCol = ActiveDocument.Selection.CurrentColumn
- ActiveDocument.Selection.EndOfLine dsExtend
- strFound = LTrimTabs(ActiveDocument.Selection)
-
- ' If there's anything after the brace that isn't a comment, move
- ' it to the next line
- if (Len(strFound) > 0) and (Left(strFound, 1) <> "/") then
- bBreak = false
-
- ' Check if there's a "{" after the statement which should
- ' also be broken into multiple lines
- if (Mid(strFound, 1, 1) = "{") and (Len(strFound) > 1) then
- strAfterFound = LTrimTabs(Mid(strFound, 2))
- if strAfterFound <> "" then
- ActiveDocument.Selection = "{" + strAfterFound
- ActiveDocument.Selection.MoveTo _
- ActiveDocument.Selection.CurrentLine, nCol
- ActiveDocument.Selection.NewLine
- ActiveDocument.Selection.CharRight
- ActiveDocument.Selection.NewLine
-
- bBreak = true ' primitive but it works
- end if
- end if
-
- if not bBreak then
- ActiveDocument.Selection = strFound
- ActiveDocument.Selection.MoveTo _
- ActiveDocument.Selection.CurrentLine, nCol
- ActiveDocument.Selection.NewLine
- end if
- end if
- end if
- wend
-
-end sub
-
-' Trim blanks AND tabs from the left side
-function LTrimTabs(str)
- dim iPos, ch
-
- for iPos = 1 to Len(str)
- ch = Mid(str, iPos, 1)
- if ch <> " " and ch <> vbTab then
- exit for
- end if
- next
-
- LTrimTabs = Mid(str, iPos)
-
-end function
-
-' Isolate the given str on a new line with nothing left of it
-sub IsolateOnLeft(str)
- dim strLastPos, nLen, bContinue, nCurrentLine, nCurrentColumn
-
- strLastPos = InitializePosition
-
- while ActiveDocument.Selection.FindText("^.*" & str, dsMatchRegExp) and _
- GetCurrentPosition(strLastPos)
-
- ' Check if we're inside a comment or between quotes
- if not ShouldIgnore then
-
- ' Repeat the search since ShouldIgnore puts the cursor at the
- ' beginning of the line
- ActiveDocument.Selection.FindText "^.*" & str, dsMatchRegExp
-
- ' Get the length of the found string
- ' (which may have been a regular expression)
- ActiveDocument.Selection.CharRight
- ActiveDocument.Selection.FindText str, _
- dsMatchBackward + dsMatchRegExp
- nLen = Len(ActiveDocument.Selection)
-
- ActiveDocument.Selection.CharLeft
- if not ShouldIgnore then
-
- ' Now that we have the length, we need to redo
- ' the search and go on
- ActiveDocument.Selection.StartOfLine
- ActiveDocument.Selection.FindText "^.*" & str, dsMatchRegExp
-
- bContinue = false
-
- ' If we're isolating a brace, make sure its matching brace
- ' isn't on the same line
- if (str = "{") or (str = "}") then
- ActiveDocument.Selection.CharRight
- nCurrentLine = ActiveDocument.Selection.CurrentLine
- nCurrentColumn = ActiveDocument.Selection.CurrentColumn
- ActiveDocument.Selection.CharLeft
-
- ExecuteCommand "GoToMatchBrace"
- if ActiveDocument.Selection.CurrentLine = nCurrentLine then
- ActiveDocument.Selection.MoveTo _
- nCurrentLine, nCurrentColumn
- bContinue = true ' we found it so move to the next match
- else
- ActiveDocument.Selection.MoveTo nCurrentLine, 1
- ActiveDocument.Selection.FindText "^.*" & str, _
- dsMatchRegExp
- end if
- end if
-
-
- if LTrimTabs(ActiveDocument.Selection) <> str and _
- not bContinue then
- ActiveDocument.Selection.CharRight
- MoveByColumns -nLen
- ActiveDocument.Selection.NewLine
- MoveByColumns nLen
- end if
-
- GetCurrentPosition strLastPos
- end if
- end if
-
- wend
-
-end sub
-
-' Isolate the given str so that everything after it is placed on the next line
-sub IsolateOnRight(str)
- dim strLastPos, strRight, nCurrentLine, nCurrentColumn, nLen
-
- strLastPos = InitializePosition
-
- while ActiveDocument.Selection.FindText(str & ".+$", dsMatchRegExp) and _
- GetCurrentPosition(strLastPos)
-
- ' Check if we're inside a comment or between quotes
- ActiveDocument.Selection.CharLeft
- if not ShouldIgnore then
-
- ' Repeat the search since ShouldIgnore puts the cursor at the
- ' beginning of the line
- ActiveDocument.Selection.FindText str & ".+$", dsMatchRegExp
-
- ' Get the length of the found string
- ' (which may have been a regular expression)
- ActiveDocument.Selection.CharLeft
- ActiveDocument.Selection.FindText str, dsMatchRegExp
- nLen = Len(ActiveDocument.Selection)
-
- ' Now that we have the length, we need to redo the search and go on
- ActiveDocument.Selection.CharLeft
- ActiveDocument.Selection.FindText str & ".+$", dsMatchRegExp
-
- strRight = LTrimTabs(Mid(ActiveDocument.Selection, nLen + 1))
-
- ' Handle braces a bit differently
- if (str = "{") or (str = "}") then
-
- ' If it's a closing brace, and the code after it contains
- ' a semicolon, leave it alone (ie. variable definition).
- if (str = "}") then
- ActiveDocument.Selection.EndOfLine dsExtend
- if (InStr(1, ActiveDocument.Selection, ";", vbTextCompare) _
- > 0) then
- strRight = "" ' we found it so move on to the next match
- end if
- ActiveDocument.Selection.CharLeft
- end if
-
- ' If we're isolating a brace make sure the matching brace
- ' isn't on the same line
- if (strRight <> "") then
- ActiveDocument.Selection.CharLeft
- nCurrentLine = ActiveDocument.Selection.CurrentLine
- nCurrentColumn = ActiveDocument.Selection.CurrentColumn
-
- ExecuteCommand "GoToMatchBrace"
- if ActiveDocument.Selection.CurrentLine = nCurrentLine then
- ActiveDocument.Selection.MoveTo _
- nCurrentLine, nCurrentColumn + 1
- strRight = "" ' we found it so move on to the next match
- else
- ActiveDocument.Selection.MoveTo _
- nCurrentLine, nCurrentColumn
- ActiveDocument.Selection.FindText _
- str & ".+$", dsMatchRegExp
- end if
- end if
- end if
-
- if (strRight <> "") and _
- (Left(strRight, 1) <> "/") and _
- (strRight <> ",") and _
- (strRight <> ";") and _
- (strRight <> "\") then
- ActiveDocument.Selection.CharLeft
- MoveByColumns nLen
- ActiveDocument.Selection.NewLine
- end if
-
- end if
- wend
-
-end sub
-
-' Place the given strOperator (of nLen REAL characters)
-' between spaces (if needed)
-sub FixOperator(strOperator, nLen)
- dim strLastPos, strFind
-
- strLastPos = InitializePosition
-
- ' Add one space between the operator
- while ActiveDocument.Selection.FindText("[A-Z,a-z,0-9,\),_,\]]" & _
- strOperator & "[A-Z,a-z,0-9,\(,_,\*,"",',&]", dsMatchRegExp) and _
- GetCurrentPosition(strLastPos)
-
- ' Check if we're inside a comment or between quotes
- ActiveDocument.Selection.CharLeft
- if not ShouldIgnore then
-
- ' Repeat the search since ShouldIgnore puts the cursor at the
- ' beginning of the line
- ActiveDocument.Selection.FindText "[A-Z,a-z,0-9,\),_,\]]" & _
- strOperator & "[A-Z,a-z,0-9,\(,_,\*,"",',&]", dsMatchRegExp
-
- ActiveDocument.Selection.CharLeft
- ActiveDocument.Selection.CharRight
- ActiveDocument.Selection = " "
- MoveByColumns nLen
- ActiveDocument.Selection = " "
-
- end if
- wend
-
- strLastPos = InitializePosition
-
- ' Fix any C++ "operator" member functions which were broken above
- while ActiveDocument.Selection.FindText("operator " & strOperator & " ", _
- dsMatchRegExp) and GetCurrentPosition(strLastPos)
-
- ' Check if we're inside a comment or between quotes
- if not ShouldIgnore then
-
- ' Repeat the search since ShouldIgnore puts the cursor at the
- ' beginning of the line
- ActiveDocument.Selection.FindText "operator " & strOperator & " ", _
- dsMatchRegExp
- ActiveDocument.Selection.CharRight
- ActiveDocument.Selection.Backspace
- MoveByColumns -nLen
- ActiveDocument.Selection.Backspace
-
- end if
- wend
-
-end sub
-
-' Fix < operator without altering template<T> code and operator <<
-function FixLessThanOperator()
- dim strLastPos, strFound, strTemplate
-
- strLastPos = InitializePosition
-
- while ActiveDocument.Selection.FindText("^.*[^ <]<.", dsMatchRegExp) and _
- GetCurrentPosition(strLastPos)
-
- ' Check if we're inside a comment or between quotes
- if not ShouldIgnore then
-
- ' Repeat the search since ShouldIgnore puts the cursor at the
- ' beginning of the line
- ActiveDocument.Selection.FindText "^.*[^ <]<.", dsMatchRegExp
-
- strFound = ActiveDocument.Selection
-
- ' Fix the left side
- strFound = Left(strFound, Len(strFound) - 2) & " " & _
- Right(strFound, 2)
- ActiveDocument.Selection = strFound
-
- ' Fix the right side
- strTemplate = Right(strFound, 11)
- if (Left(strTemplate, 8) <> "template") and _
- (Right(strFound, 1) <> " ") and _
- (Right(strFound, 1) <> "=") and _
- (Right(strFound, 1) <> "<") and _
- (Right(strFound, 1) <> ">")then
- ActiveDocument.Selection.CharLeft
- ActiveDocument.Selection = " "
- end if
-
- end if
- wend
-
-end function
-
-' Append a space after the given strOperator (if it needs it)
-sub AppendSpace(strOperator)
- dim strLastPos
-
- strLastPos = InitializePosition
-
- while ActiveDocument.Selection.FindText(strOperator & _
- "[A-Z,a-z,0-9,\(,\-,_,\*,"",',&]", dsMatchRegExp) and _
- GetCurrentPosition(strLastPos)
-
- ' Check if we're inside a comment or between quotes
- ActiveDocument.Selection.CharLeft
- if not ShouldIgnore then
-
- ActiveDocument.Selection.FindText strOperator & _
- "[A-Z,a-z,0-9,\(,\-,_,\*,"",',&]", dsMatchRegExp
-
- ActiveDocument.Selection.CharLeft
- MoveByColumns Len(strOperator)
- ActiveDocument.Selection = " "
-
- end if
- wend
-
-end sub
-
-' Fix tabbing within function blocks (surrounded by braces)
-function TabifyMatchingBraces()
- dim strLastPos, cBeforeBrace
-
- strLastPos = InitializePosition
-
- while ActiveDocument.Selection.FindText("{") and _
- GetCurrentPosition(strLastPos)
-
- ' Check if we're inside a comment or between quotes
- if not ShouldIgnore then
-
- ' Repeat the action since ShouldIgnore puts the cursor at the
- ' beginning of the line
- ActiveDocument.Selection.FindText "{"
-
- ' Go to matching brace and reformat tabs
- ExecuteCommand "GoToMatchBraceExtend"
- ActiveDocument.Selection.SmartFormat
-
- cBeforeBrace = Mid(ActiveDocument.Selection, _
- Len(ActiveDocument.Selection) - 1, 1)
-
- ' If SmartFormat indents the block (by mistake), unindent it
- if (cBeforeBrace = vbTab or cBeforeBrace = " ") then
- ActiveDocument.Selection.Unindent
- end if
- end if
- wend
-
-end function
-
-' Since Microsoft's "SmartFormat" is not smart enough to indent case
-' statements inside the switch body, we'll do it here.
-' (Thanks to Jim Cooper)
-function IndentSwitchBody()
- dim nSwitchLine, nFirstLine, nLastLine, strLastPos, iLine
-
- strLastPos = InitializePosition
-
- while ActiveDocument.Selection.FindText("switch", _
- dsMatchWord + dsMatchCase) and GetCurrentPosition(strLastPos)
-
- ' Check if we're inside a comment or between quotes
- if not ShouldIgnore then
-
- nSwitchLine = ActiveDocument.Selection.CurrentLine
-
- ' Now find the opening brace and make sure it's on the next line
- if ActiveDocument.Selection.FindText("{") and _
- not ShouldIgnore and _
- (ActiveDocument.Selection.CurrentLine = nSwitchLine + 1) then
-
- ' Repeat the action since ShouldIgnore puts the cursor at the
- ' beginning of the line
- ActiveDocument.Selection.FindText "{"
-
- ' Find next line in file, since earlier code put '{' on
- ' a line by itself
- nFirstLine = ActiveDocument.Selection.CurrentLine + 1
-
- ' Go to matching brace and reformat tabs
- ExecuteCommand "GoToMatchBrace"
-
- ' Find previous line in file, since earlier code put '}' on
- ' line by itself
- nLastLine = ActiveDocument.Selection.CurrentLine
-
- ' Move to the line after the opening brace
- ActiveDocument.Selection.GoToLine nFirstLine, 1
-
- ' Select everything between the braces and indent it
- for iLine = nFirstLine to nLastLine - 1
- ActiveDocument.Selection.LineDown dsExtend
- next
- ActiveDocument.Selection.Indent
- end if
- end if
- wend
-end function
-
-' Remove any lines that are considered extraneous (usually blank ones).
-function RemoveExtraneousLines()
- dim strLastPos, nCurrentLine, nCurrentColumn
-
- strLastPos = InitializePosition
-
- ' Remove any blank lines that fall below any open braces ("{")
- while ActiveDocument.Selection.FindText("{") and _
- GetCurrentPosition(strLastPos)
-
- ' Check if we're inside a comment or between quotes
- if not ShouldIgnore then
- ' Repeat the action since ShouldIgnore puts the cursor at the
- ' beginning of the line
- ActiveDocument.Selection.FindText "{"
-
- nCurrentLine = ActiveDocument.Selection.CurrentLine
- nCurrentColumn = ActiveDocument.Selection.CurrentColumn
-
- ActiveDocument.Selection.LineDown
-
- ' Cut any blank lines below the {
- do while true
- ActiveDocument.Selection.StartOfLine
- ActiveDocument.Selection.EndOfLine dsExtend
-
- if LTrimTabs(ActiveDocument.Selection) <> "" then
- exit do
- end if
- ExecuteCommand "LineCut"
-
- ' Make sure we haven't hit the bottom of the file
- ActiveDocument.Selection.EndOfDocument
- if ActiveDocument.Selection.CurrentLine = nCurrentLine + 1 then
- exit do
- end if
- ActiveDocument.Selection.MoveTo nCurrentLine + 1, 1
- loop
-
- ActiveDocument.Selection.MoveTo nCurrentLine, nCurrentColumn
- end if
- wend
-
- strLastPos = InitializePosition
-
- ' Remove any blank lines right above any closing braces ("}")
- while ActiveDocument.Selection.FindText("}") and _
- GetCurrentPosition(strLastPos)
-
- ' Check if we're inside a comment or between quotes
- if not ShouldIgnore then
- ' Repeat the action since ShouldIgnore puts the cursor at the
- ' beginning of the line
- ActiveDocument.Selection.FindText "}"
- ActiveDocument.Selection.CharLeft
-
- ' Cut blank lines above the }
- do while true
- ActiveDocument.Selection.LineUp
- ActiveDocument.Selection.StartOfLine
- ActiveDocument.Selection.EndOfLine dsExtend
-
- if LTrimTabs(ActiveDocument.Selection) <> "" then
-
- if ActiveDocument.Selection.CurrentLine > 1 then
- ActiveDocument.Selection.LineDown
- end if
-
- ActiveDocument.Selection.StartOfLine
- ActiveDocument.Selection.FindText "}"
- strLastPos = ActiveDocument.Selection.CurrentLine & "," & _
- ActiveDocument.Selection.CurrentColumn
-
- ActiveDocument.Selection.LineDown
- ActiveDocument.Selection.StartOfLine
- exit do
- end if
- ExecuteCommand "LineCut"
- loop
- end if
- wend
-
-end function
-
-' Remove all spaces and tabs found in the current selection
-function RemoveSpacesInSelection
- dim iPos, ch, strNoSpaces
-
- for iPos = 1 to Len(ActiveDocument.Selection)
- ch = Mid(ActiveDocument.Selection, iPos, 1)
- if ch <> " " and ch <> vbTab then
- strNoSpaces = strNoSpaces + ch
- end if
- next
-
- ActiveDocument.Selection = strNoSpaces
-end function
-
-' Fix any code with exponential notation (ie. 3.4e-2) which was
-' broken when the + and - operators were fixed above (by FixOperator).
-function FixExponents
-
- while ActiveDocument.Selection.FindText("[0-9,\.]e [\+\!\-] [0-9]", _
- dsMatchRegExp)
- RemoveSpacesInSelection
- wend
-
-end function
-
-' Break any lines containing multiple statements (separated by semicolons)
-function BreakLinesWithMultipleStatements()
- dim strLastPos, nCurrentLine
-
- strLastPos = InitializePosition
-
- ' Search for multiple semicolons on the same line
- while ActiveDocument.Selection.FindText(";.+;", dsMatchRegExp) and _
- GetCurrentPosition(strLastPos)
-
- ' Check if we're inside a comment or between quotes
- if not ShouldIgnore then
- ' Repeat the action since ShouldIgnore puts the cursor at the
- ' beginning of the line
- ActiveDocument.Selection.FindText ";.+;", dsMatchRegExp
-
- nCurrentLine = ActiveDocument.Selection.CurrentLine
- ActiveDocument.Selection.CharLeft
- ActiveDocument.Selection.StartOfLine dsFirstText, dsExtend
-
- ' If found, check that the semicolons don't belong to a for loop
- if (InStr(1, ActiveDocument.Selection, "for (", _
- vbTextCompare) > 0) then
- ActiveDocument.Selection.MoveTo nCurrentLine + 1, 1
- else
- ActiveDocument.Selection.CharRight
- ActiveDocument.Selection.CharRight
- ActiveDocument.Selection.NewLine
- end if
- end if
- wend
-
-end function
-
-
-
-Sub MakeSelectedCodeNicer()
-'DESCRIPTION: Reformats the currently selected source code to look nicer.
-' Written by Alvaro Mendez on 07/15/1999
-
- ' Check if there's a valid selection
- if ActiveDocument.Selection = "" then
- exit sub
- end if
-
- ' Copy the selection to the clipboard
- ActiveDocument.Selection.Copy
-
- ' Open a new document and changed its language to C/C++
- ' This is required for SmartIndent to work.
- Documents.Add "Text"
- ExecuteCommand "Properties"
- ActiveDocument.Language = "C/C++"
-
- ' Paste the selection into the document and run the macro
- ActiveDocument.Selection.Paste
- ExecuteCommand "MakeCodeNicer"
-
- ' Select the resulting code and copy it to the clipboard
- ActiveDocument.Selection.SelectAll
- ActiveDocument.Selection.Copy
-
- ' Close the new document (without saving it)
- ActiveWindow.Close dsSaveChangesNo
-
- ' Paste the reformatted code back over the original selection
- ActiveDocument.Selection.Paste
-
-End Sub
-
diff --git a/doc/NOTES b/doc/NOTES
deleted file mode 100644
index 92de3b6..0000000
--- a/doc/NOTES
+++ /dev/null
@@ -1,58 +0,0 @@
-
-Notes from San Jose Meeting (February 8 - 9, 2001):
-===================================================
-
-Ideas:
-
- * Write "The Pegasus Data Object" paper.
-
- * Tony might be able to help with GUI (will talk
- to Management).
-
- * Use MOF compiler to generate CreateInstance()
- functions.
-
- * See about porting to Tandem (see if BMC has a
- Tandem box).
-
- * Take a look at HTTPerf for beautiful code.
-
- * Implement process provider.
-
- * Take a look at UDG (Unix Design Guide); It proposed
- common Unix OS intrumentation.
-
- * What about dynmaic invocation of MOF?
-
- * Can we remove ACE earlier than planned?
-
- * Enumerate for Comapaq what level-1 SQL involves.
-
- * Client authentication.
-
- * We need a Java client.
-
- * Perform interoperability testing between "Sun WBEM
- Services" client and Pegasus server.
-
- * Need a whole Java discussion.
-
- * Provider writer's guide (start from writing provider,
- compiling MOF, and accessing it from a client).
-
- * DevCon: Paris in April.
-
- * DevCon: San Jose in June.
-
- * Compaq may contribute providers.
-
- * Installation using Install Shield.
-
-Compaq Priorities:
-
- * Get ACE going on Tandem.
-
- * Finalizing provider interface.
-
- * Query (Need SQL Parser).
-
diff --git a/doc/Servlet/Pegasus_Servlet_Design.pdf b/doc/Servlet/Pegasus_Servlet_Design.pdf
deleted file mode 100644
index 6c69b64..0000000
--- a/doc/Servlet/Pegasus_Servlet_Design.pdf
+++ /dev/null
Binary files differ
diff --git a/doc/Servlet/cimservlet.properties b/doc/Servlet/cimservlet.properties
deleted file mode 100644
index 396c56b..0000000
--- a/doc/Servlet/cimservlet.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-port=5988
-logDir=/var/pegasus/logs/
-servletLog=true
-servletLogFileName=PegasusServlet.log
-servletTrace=true
-servletTraceFileName=PegasusServlet.trace
-localAuthentication=false
diff --git a/doc/Servlet/readme.txt b/doc/Servlet/readme.txt
deleted file mode 100644
index 8b4886a..0000000
--- a/doc/Servlet/readme.txt
+++ /dev/null
@@ -1,169 +0,0 @@
-//%2005////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
-// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
-// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
-// IBM Corp.; EMC Corporation, The Open Group.
-// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
-// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
-// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
-// EMC Corporation; VERITAS Software Corporation; The Open Group.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to
-// deal in the Software without restriction, including without limitation the
-// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-// sell copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
-// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
-// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
-// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
-// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-//==============================================================================
-//
-// Author: Bapu Patil, Hewlett-Packard Company
-// (bapu_patil@hp.com)
-//
-// Modified By:
-// Warren Otsuka, Hewlett-Packard Company
-// (warren_otsuka@hp.com)
-//
-//%/////////////////////////////////////////////////////////////////////////////
-
-Configuring CIMServlet with Apache and Tomcat
-=============================================
-
-The CIMServlet interface provides a way for CIM client applications to access
-CIM information via a Web Server running on the system. CIM clients who wish to
-communicate with CIMServer running in conjunction with a Web Server may send
-xmlCIM data over HTTP to the CIMServlet without changing their current
-code. This allows TCP port 80 to be used for both HTTP and xmlCIM requests.
-
-Please note that there may be other ways of doing the setup. This a simple
-example of how to do the configuration.
-
-1. To enable servlet input
---------------------------
-In order to enable CIMServer to process the servlet requests the following may
-be set in cimservlet.properties:
-
-port=5988
- This is the default TCP port used by CIMServer to receive xmlCIM requests.
-
-logDir=/var/pegasus/logs/
- This is the directory for both logging and tracing.
-
-servletLog=true
- Setting to true enables logging.
-
-servletLogFileName=PegasusServlet.log
- File name for the logging file.
-
-servletTrace=true
- Setting to true enables tracing.
-
-servletTraceFileName=PegasusServlet.trace
- File name for the tracing file.
-
-localAuthentication=false
- Setting to true enables local authentication for the servlet.
-
-2. Configuring CIMServlet in Tomcat
------------------------------------
-
-There are two configuration files that need to be configured in order for
-CIMServlet to communicate with CIMServer.
-
-Use of either the servlet interface or the Pegasus HTTP server interface for
-xmlCIM requests should be transparent to the CIM client. In order to
-forward all /CIMOM HTTP requests to CIMServlet, the following should be done:
-
-
-tomcat.conf - tomcat configuration file
-------------------------------------------
-
-Add the following entry into tomcat.conf:
-
-############ Context mapping for CIMOM
-#
-ApJServMount /cimom /examples
-
-
-This makes the /cimom directory the 'ROOT' directory for the CIM
-servlet. All the requests that come into /cimom shoud be forwarded
-to TOMCAT.
-
-web.xml - tomcat configuration file
----------------------------------------
-
-Add the following entry into the file web.xml to set an alias to
-CIMServlet:
-
-<web-app>
- <servlet>
- <servlet-name>cimom</servlet-name>
- <servlet-class> org.opengroup.pegasus.servlet.CIMServlet </servlet-class>
- <load-on-startup> -2147483646 </load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>cimom</servlet-name>
- <url-pattern> /cimom </url-pattern>
- </servlet-mapping>
-</web-app>
-
-
-3. To turn on DEBUG Tracing in CIMServlet
-------------------------------
-
-If you would like to turn on debug logging in CIMServlet, you will need specify
-the cimservlet.properties file location. The following properties
-should be set to the appropriate values in cimservlet.properties:
-
-logDir=/var/pegasus/logs/
-servletTrace=true
-servletTraceFileName=PegasusServlet.trace
-
-The following should be added to web.xml file:
-
-<web-app>
- <servlet>
- <servlet-name>cimom</servlet-name>
- <servlet-class> org.opengroup.pegasus.servlet.CIMServlet
- </servlet-class>
- <init-param>
- <param-name>cimconfigfile</param-name>
- <param-value> /var/pegasus/conf/cimservlet.properties
- </param-value>
- </init-param>
- <load-on-startup> -2147483646 </load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>cimom</servlet-name>
- <url-pattern> /cimom </url-pattern>
- </servlet-mapping>
- </web-app>
-
-Where
-<param-value>Absolute Path of cimservlet.properties file</param-value>
-
-
-4. Set CLASSPATH to CIMServlet class
-------------------------------------
-Make sure that TOMCAT knows where the CIMServlet class is located before
-starting Tomcat.
-
-5. Stop and Restart Tomcat
---------------------------
- Stop Tomcat by running $TOMCAT_HOME/bin/shutdown.sh
- Start Tomcat by running $TOMCAT_HOME/bin/startup.sh
-
-
-For additional documentation on the Apache Web Server and Tomcat see
-http://www.apache.org/.
-
diff --git a/doc/Servlet/web.xml b/doc/Servlet/web.xml
deleted file mode 100644
index 59d0faa..0000000
--- a/doc/Servlet/web.xml
+++ /dev/null
@@ -1,776 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<!DOCTYPE web-app
- PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
- "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">
-
-<web-app>
- <servlet>
- <servlet-name>
- default
- </servlet-name>
- <servlet-class>
- org.apache.tomcat.servlets.DefaultServlet
- </servlet-class>
- <init-param>
- <param-name>
- caseSensitive
- </param-name>
- <param-value>
- true
- </param-value>
- <description>
- Set to true for case-sensitive filename comparisons,
- even on non-case-sensitive platforms such as Windows.
- </description>
- </init-param>
- <load-on-startup>
- -2147483646
- </load-on-startup>
- </servlet>
- <servlet>
- <servlet-name>
- invoker
- </servlet-name>
-<!--
- org.apache.tomcat.servlets.NoInvokerServlet
--->
- <servlet-class>
- org.apache.tomcat.servlets.InvokerServlet
- </servlet-class>
- </servlet>
-<!--
- CIM servlet
--->
- <servlet>
- <servlet-name>cimom</servlet-name>
- <servlet-class> org.opengroup.pegasus.servlet.CIMServlet </servlet-class>
- <init-param>
- <param-name>cimconfigfile</param-name>
- <param-value>/var/pegasus/conf/cimservlet.properties</param-value>
- </init-param>
- <load-on-startup> -2147483646 </load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>cimom</servlet-name>
- <url-pattern> /cimom </url-pattern>
- </servlet-mapping>
-
- <servlet>
- <servlet-name>
- jsp
- </servlet-name>
- <servlet-class>
- org.apache.jasper.runtime.JspServlet
- </servlet-class>
-
-<!-- uncomment the following to use Jikes for JSP compilation
-
- <init-param>
- <param-name>jspCompilerPlugin</param-name>
- <param-value>org.apache.jasper.compiler.JikesJavaCompiler</param-value>
- </init-param>
-
--->
-
- <load-on-startup>
- -2147483646
- </load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>
- invoker
- </servlet-name>
- <url-pattern>
- /servlet/*
- </url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>
- jsp
- </servlet-name>
- <url-pattern>
- *.jsp
- </url-pattern>
- </servlet-mapping>
- <session-config>
- <session-timeout>
- 30
- </session-timeout>
- </session-config>
- <mime-mapping>
- <extension>
- txt
- </extension>
- <mime-type>
- text/plain
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- html
- </extension>
- <mime-type>
- text/html
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- htm
- </extension>
- <mime-type>
- text/html
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- gif
- </extension>
- <mime-type>
- image/gif
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- jpg
- </extension>
- <mime-type>
- image/jpeg
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- jpe
- </extension>
- <mime-type>
- image/jpeg
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- jpeg
- </extension>
- <mime-type>
- image/jpeg
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- java
- </extension>
- <mime-type>
- text/plain
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- body
- </extension>
- <mime-type>
- text/html
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- rtx
- </extension>
- <mime-type>
- text/richtext
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- tsv
- </extension>
- <mime-type>
- text/tab-separated-values
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- etx
- </extension>
- <mime-type>
- text/x-setext
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- ps
- </extension>
- <mime-type>
- application/x-postscript
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- class
- </extension>
- <mime-type>
- application/java
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- csh
- </extension>
- <mime-type>
- application/x-csh
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- sh
- </extension>
- <mime-type>
- application/x-sh
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- tcl
- </extension>
- <mime-type>
- application/x-tcl
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- tex
- </extension>
- <mime-type>
- application/x-tex
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- texinfo
- </extension>
- <mime-type>
- application/x-texinfo
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- texi
- </extension>
- <mime-type>
- application/x-texinfo
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- t
- </extension>
- <mime-type>
- application/x-troff
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- tr
- </extension>
- <mime-type>
- application/x-troff
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- roff
- </extension>
- <mime-type>
- application/x-troff
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- man
- </extension>
- <mime-type>
- application/x-troff-man
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- me
- </extension>
- <mime-type>
- application/x-troff-me
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- ms
- </extension>
- <mime-type>
- application/x-wais-source
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- src
- </extension>
- <mime-type>
- application/x-wais-source
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- zip
- </extension>
- <mime-type>
- application/zip
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- bcpio
- </extension>
- <mime-type>
- application/x-bcpio
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- cpio
- </extension>
- <mime-type>
- application/x-cpio
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- gtar
- </extension>
- <mime-type>
- application/x-gtar
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- shar
- </extension>
- <mime-type>
- application/x-shar
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- sv4cpio
- </extension>
- <mime-type>
- application/x-sv4cpio
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- sv4crc
- </extension>
- <mime-type>
- application/x-sv4crc
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- tar
- </extension>
- <mime-type>
- application/x-tar
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- ustar
- </extension>
- <mime-type>
- application/x-ustar
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- dvi
- </extension>
- <mime-type>
- application/x-dvi
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- hdf
- </extension>
- <mime-type>
- application/x-hdf
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- latex
- </extension>
- <mime-type>
- application/x-latex
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- bin
- </extension>
- <mime-type>
- application/octet-stream
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- oda
- </extension>
- <mime-type>
- application/oda
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- pdf
- </extension>
- <mime-type>
- application/pdf
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- ps
- </extension>
- <mime-type>
- application/postscript
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- eps
- </extension>
- <mime-type>
- application/postscript
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- ai
- </extension>
- <mime-type>
- application/postscript
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- rtf
- </extension>
- <mime-type>
- application/rtf
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- nc
- </extension>
- <mime-type>
- application/x-netcdf
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- cdf
- </extension>
- <mime-type>
- application/x-netcdf
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- cer
- </extension>
- <mime-type>
- application/x-x509-ca-cert
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- exe
- </extension>
- <mime-type>
- application/octet-stream
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- gz
- </extension>
- <mime-type>
- application/x-gzip
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- Z
- </extension>
- <mime-type>
- application/x-compress
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- z
- </extension>
- <mime-type>
- application/x-compress
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- hqx
- </extension>
- <mime-type>
- application/mac-binhex40
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- mif
- </extension>
- <mime-type>
- application/x-mif
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- ief
- </extension>
- <mime-type>
- image/ief
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- tiff
- </extension>
- <mime-type>
- image/tiff
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- tif
- </extension>
- <mime-type>
- image/tiff
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- ras
- </extension>
- <mime-type>
- image/x-cmu-raster
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- pnm
- </extension>
- <mime-type>
- image/x-portable-anymap
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- pbm
- </extension>
- <mime-type>
- image/x-portable-bitmap
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- pgm
- </extension>
- <mime-type>
- image/x-portable-graymap
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- ppm
- </extension>
- <mime-type>
- image/x-portable-pixmap
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- rgb
- </extension>
- <mime-type>
- image/x-rgb
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- xbm
- </extension>
- <mime-type>
- image/x-xbitmap
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- xpm
- </extension>
- <mime-type>
- image/x-xpixmap
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- xwd
- </extension>
- <mime-type>
- image/x-xwindowdump
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- au
- </extension>
- <mime-type>
- audio/basic
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- snd
- </extension>
- <mime-type>
- audio/basic
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- aif
- </extension>
- <mime-type>
- audio/x-aiff
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- aiff
- </extension>
- <mime-type>
- audio/x-aiff
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- aifc
- </extension>
- <mime-type>
- audio/x-aiff
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- wav
- </extension>
- <mime-type>
- audio/x-wav
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- mpeg
- </extension>
- <mime-type>
- video/mpeg
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- mpg
- </extension>
- <mime-type>
- video/mpeg
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- mpe
- </extension>
- <mime-type>
- video/mpeg
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- qt
- </extension>
- <mime-type>
- video/quicktime
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- mov
- </extension>
- <mime-type>
- video/quicktime
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- avi
- </extension>
- <mime-type>
- video/x-msvideo
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- movie
- </extension>
- <mime-type>
- video/x-sgi-movie
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- avx
- </extension>
- <mime-type>
- video/x-rad-screenplay
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- wrl
- </extension>
- <mime-type>
- x-world/x-vrml
- </mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>
- mpv2
- </extension>
- <mime-type>
- video/mpeg2
- </mime-type>
- </mime-mapping>
- <welcome-file-list>
- <welcome-file>
- index.jsp
- </welcome-file>
- <welcome-file>
- index.html
- </welcome-file>
- <welcome-file>
- index.htm
- </welcome-file>
- </welcome-file-list>
-</web-app>
diff --git a/doc/Tru64BuildNotes.txt b/doc/Tru64BuildNotes.txt
deleted file mode 100644
index c705c08..0000000
--- a/doc/Tru64BuildNotes.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-
-Ported to what?
-===============
-
-We ported to a platform using the DEC C++ compiler (whose program name
-is cxx). Here is what "uname -a" had to say about our platform):
-
-% uname -a
-OSF1 hodtbd01.bmc.com V4.0 1229 alpha
-
-Notes on building for TRU64:
-============================
-
-1. Define these environment variables:
-
- PEGASUS_PLATFORM <- TRU64_ALPHA_DECCXX
- PEGASUS_OS_TYPE <- unix
- PEGASUS_HOME <- $HOME/pegasus_home
-
-2. Be sure GNU make is on your path before the ordinary make (name it
- "make").
-
-3. Make an install mu (only necessary to get proper source dependencies
- working). Just change to peagsus/src/utils/mu and type "make". Then
- install it (put mu executable on your path someplace).
-
-4. Install flex and bison (you can also change the makefiles to use lex
- and yacc).
-
-5. Be sure to put PEGASUS_HOME/bin on your PATH
-
-6. Be sure to put PEGASUS_HOME/lib on your LD_LIBRARY_PATH
-
-7. If this fails, e-mail mbrasher@bmc.com
-
-Unresolved problems:
-====================
-
-1. Template instantiation is done locally (using the -tlocal option) so
- binaries will be a bit larger for now. The largest library is around
- 600K at present (this is expected to shrink later).
-
-2. Some unreachable code warnings exist in code generated by bison
- (we can't do anything about these unfortunately but they are harmless).
-
-3. There is a harmless warning from the file <sys/select.h> (not much we
- can do about this one).
diff --git a/doc/changelog.txt b/doc/changelog.txt
deleted file mode 100644
index 72be39f..0000000
--- a/doc/changelog.txt
+++ /dev/null
@@ -1,1631 +0,0 @@
-CHANGE LOG FOR PEGASUS
-
-Version 1.10 - Started 8 June 2002
-
-Code Freeze in Preperation for V2 Release
-From here forward, We are fixing bugs.
-TAG: Version_1_10
-
-
-1. 10 June 2002 (KS) - Add new test function to use command line for
- many commands. The command is CLI. Right now it has no documentation.
-
-2. (Ramnath Ravindran - HP) 10 June 2002 - Commented out" #define
- PEGASUS_HAVE_TEMPLATE_SPECIALIZATION" in Platform_TRU64_ALPHA_DECCXX.h.
-
-3. (Carol Ann Krug Graves - HP) 17 July 2002 -
-Modified test source and Makefiles to make it possible to run the test suite
-specifying a location in which all temporary files (e.g. output files,
-repository files, etc.) are created. This ability can be useful if you would
-like, for example, on a test system, to nfs-mount the pegasus directory
-without write access, and run the test suite.
-
-The new functionality uses the PEGASUS_TMP environment variable. The TMP_DIR
-variable is set from the PEGASUS_TMP environment variable, and used in the
-Makefiles. If PEGASUS_TMP is not set, TMP_DIR defaults to ".", and the
-behavior is the same as previously (creates files in the current directory).
-Test programs use the value of the PEGASUS_TMP environment variable (or "." if
-not set) to construct the path of a file or directory to be created.
-
-When new tests are added that need to create files, directories, repository,
-etc., please use the TMP_DIR variable in the Makefile, and the value of the
-PEGASUS_TMP environment variable in the test program source file. For examples,
-see the current test programs (e.g. pegasus/src/Pegasus/Repository/tests/*).
-
-4. (Roger Kumpf - HP) 30 July 2002 - Changes from the Pegasus API review:
-
- - Updated the CIMName class to a data type class
- - Added CIMNamespaceName as a data type class
- - Updated the client, provider, and common (CIM*) classes to use CIMName
- and CIMNamespaceName in place of String when handing CIM names (class,
- property, qualifier, method, and parameter names)
- - Changed the CIMClass constructor to take a CIMName for the class name
- instead of a CIMObjectPath
- - Changed the CIMName::equal method to be non-static
-
-5. (Ramnath Ravindran - HP) 15 August 2002 - Added the Tru64 platform to an existing ifdef in suballoc.cpp to prevent compilation errors.
-
------------------------------------------------------------------
-Version 1.09 - Started 5 April 2002
-TAG: Version_1_09.
-
-1. 5 April 2002 (KS) Update version to 1.09. TAG, and took snapshot.
-
-2. (Roger Kumpf - HP) 5 Apr 2002 - Modified the CIMOperationResponseMessage
- class and its subclasses to contain a CIMException instead of a
- CIMStatusCode and String description. This allows extra information in
- a CIMException, such as file name and line number, to be carried
- internally throughout the system.
-
- This change creates a single place where CIMExceptions are converted
- to an error code and description to be written out in XML. This
- single place controls the ability to tune what gets included in the
- error description, as well as providing a convenient place to trace
- errors that get returned to clients. In particular, client applications
- currently see messages that contain redundant error code information,
- such as:
-
- CIM_ERR_INVALID_PARAMETER: One or more parameter values passed
- to the method were invalid: "CIM_ERR_INVALID_PARAMETER: One
- or more parameter values passed to the method were invalid:
- "Unrecognized parameter "Bogus"""
-
- The CIMOperationResponseMessage change will allow the redundant
- information to be eliminated from the messages.
-
-3. (KS) 7 April 2002- Minor really bad hack to systemwindows.cpp getcurrenttime
- after roger fixed timevalue.
-
-4. (DME) 7 April 2002 Added support for HPUX running on IA64 hardware.
-
-5. (DME) 7 April 2002 Update master result file for MOF Compiler CLI tests.
- Update master result file of wbemexec CLI tests.
-
-6. (Ramnath Ravindran - Compaq) 8 Apr 2002 - Modified a libraries.mak file in the src/Pegasus/Security/Authentication/tests directory in order to fix the
- build on Tru64.
-
-7. (Roger Kumpf - HP) 8 Apr 2002 - The RETURNVALUE and IRETURNVALUE elements
- of the XML encoding of operation responses had been treated as mandatory.
- The client response decoder has been updated to make those elements
- optional for operations that do not require a return value. The server
- response encoder has been updated not to include those elements when the
- request does not include a return value.
-
-8. (Roger Kumpf - HP) 9 Apr 2002 - Updated the Instance, Association, and
- Class provider interfaces to use CIMPropertyList instead of Array<String>
- for the propertyList parameters. All providers that implement a method
- with a propertyList parameter must be modified in accordance with this
- change. All providers linked into the Pegasus build have been updated.
-
-9. (Roger Kumpf - HP) 11 Apr 2002 - Defined an HTTP error message to be
- returned to the CIMClient when an HTTP error response is returned.
- Added a method to parse the status line of an HTTP response.
-
-10. (Roger Kumpf - HP) 11 Apr 2002 - Changed the MessageQueue::getQueueName()
- method from virtual to non-virtual, and removed that method definition
- from all the subclasses. To make sure that the MessageQueue class gets
- the queue name value, the default value for the queue name parameter to
- the MessageQueue constructor was removed. Constants were defined in
- Constants.h for all the queue names currently used in Pegasus. The
- places where those queue names were being used for lookup were also
- changed to use the constants.
-
-11. (Roger Kumpf - HP) 12 Apr 2002 - Defined an HTTPError exception to
- report non-200-OK HTTP responses back to client applications. Added
- an HTTPErrorMessage class to hold information about an HTTP error
- response. Added support in the CIMOperationResponseDecoder to
- process HTTP error responses and turn them into HTTPErrorMessages.
- Added support in CIMClient to process HTTPErrorMessages and throw an
- HTTP error. This functionality required fundamental changes in the
- way CIMClient processes messages. It can no longer search its queue
- for a message of the expected type. Instead, is assumes that no
- messages should be on its queue unless it has sent a request to the
- encoder. In that case, it assumes that any message on its queue is
- the response to that request.
-
-12. (Denise Eckstein - HP) 12 Apr 2002 - Extended versioning strategy
- to allow platform-specific version strings.
-
-13. (Denise Eckstein - HP) 14 Apr 2002 - Renamed shared library for
- ManagedSystem/OperatingSystem provider so that it would not
- conflict with library name of generic/OperatingSystem provider.
-
-14. (Denise Eckstein - HP) 14 Apr 2002 - Added compile flags _REENTRANT and RWSTD_MULTI_THREAD flags for platform_HPUX_PARISC_ACC.
-
-
-15. (Nag Boranna - HP) 15 Feb 2002 - HP-Nag: Added PAM based user
- authentication module. The implementation is available only on Unix
- platforms. The PAM module is optional and it can be built by setting
- the environment variable PEGASUS_PAM_AUTHENTICATION."
-
-16. (Sushma Fernandes - HP) 15 Apr 2002 - Implemented static methods
- Uint64 getDifference(CIMDateTime, CIMDateTime), to get the difference
- between two CIMDateTimes and CIMDateTime getCurrentDateTime(), to return
- the current date time as CIMDateTime in the CIMDateTime class. Also added
- method Boolean isInterval(), to check if the CIMDateTime object is an
- interval.
-
-17. (Nitin Upasani - HP) 15 Apr 2002 - Improved Consumer interface with
- indications. Now indications can be displayed using sample
- DisplayConsumer. To test, create Handler with destination as
- localhost:5988/logicalname. Create a file consumer_list.dat in your
- PEGASUS_HOME directory and then ass entry as follows:
- logicalname = DisplayConsumer
- This will help ConsumerTable to load the DisplayConsumer to consume
- the indication passed through ExportServer (CIMExportRequestDispathcer).
-
-18. (Yi Zhou - HP) 15 Apr 2002 - Implemented sending message of provider
- registration notification to subscription service.
-
-19. (Roger Kumpf - HP) 16 Apr 2002 - Defined an exception hierarchy for
- CIMClient API users. All exceptions thrown by CIMClient are now
- subclasses of CIMClientException. The CIMClient methods are defined
- as throwing CIMClientException, which will allow the actual exceptions
- thrown to change without changing the method signatures. It also makes
- it more clear to the client application which exceptions need to be
- handled.
-
- A new message type, ClientExceptionMessage has been defined as well.
- This message is used to communicate client exceptions from the CIM
- operation response decoder to the CIMClient. Previously, several
- classes of exceptions were being dropped in the decoder. New
- CIMClientException subclasses have been defined to model these
- exceptions. These changes allow decoding exceptions to be passed
- back to the client application. Examples are unparsable HTTP
- responses, malformed XML, and mismatched CIM responses (message ID,
- message type).
-
- The CIM clients that are linked into the Pegasus build have been
- updated to catch CIMClientException instead of CIMException.
-
-20. (KS) 18 Apr 2002 -Incorporated tomof client into the build. Includes
- usage and help.
- This program outputs mof or xml from repository either as a client
- or direct to the repository.
-
-21. (KS) 18 Apr 2002 - Changed all FIXME, etc. in compiler to ATTN with
- priorities.
-
-22. (MM) 18 Apr 2002 - Associator provider handling
-
-23. (MM) 18 Apr 2002 - HiRes pegasus_gettimeofday() for Windows needed
- for performance statistics.
-
-24. (Roger Kumpf - HP) 18 Apr 2002 - Removed the "match" code in the
- String class which had a dependency on the TCL license. Where this
- code was being used to match HTTP headers, I replaced the call to
- String::matchNoCase() with specific logic to check for the namespace
- in an HTTP extension header. For example, if the allowNamespacePrefix
- argument is true and the search tag is "Tag", HTTPMessage::lookupHeader
- will match "Tag" and "45-Tag", but not "abcTag". This behavior more
- closely models the intent of the String match in this case and is
- therefore more correct.
-
-25. (Denise Eckstein - HP) 20 Apr 2002 - Added an instance of
- PegasusVersion.h to each product component. This was done
- to support component level version tracking.
-
-26. (MM) 22 Apr 2002 - Performance Measurement Implementation
-
-27. (Susan Campbell - HP) 22 Apr 2002 - Various enhancements and bug fixes
- to the Managed System OS provider. Rolled in the Linux support from
- the Linux-specific OS provider and added properties to the HP-UX and
- Windows OS providers.
-
-28. (Roger Kumpf - HP) 24 Apr 2002 - Overhauled the configuration property
- "unset" functionality. cimconfig now uses modifyInstance with a
- property list to specify whether the current or planned value (or both)
- are to be updated. It uses a "null" value to indicate that the value
- should be unset (reset to default).
-
-29. (Roger Kumpf - HP) 24 Apr 2002 - Restructured the configuration
- property owners to remove redundant code.
-
-30. (Warren Otsuka - HP) 26 Apr 2002 - Reimplement wbemexec to use a
- new WbemExecClient interface based on HTTPConnection instead of the
- obsolete Channel code. Also add SSL option to wbemexec.
-
-31. (Roger Kumpf - HP) 26 Apr 2002 - Added copy constructors to the
- CIMMessage subclasses.
-
-32. (Denise Eckstein - HP) 27 Apr 2002 - Fixed several defects
- in MOF compiler associated with the handling the initialization
- of array values.
-
-33. (KS) 30 April 2002 - Added Namespace Control Provider. Note that it is
- not completely tested today and only enumeratenames is guaranteed.
-
-34. (Roger Kumpf - HP) 6 May 2002 - Reworked the String class. Fixed the
- places where StrLen() was reading off the end of arrays. Removed the
- Cat() functions. Moved Open(), OpenAppend(), and GetLine() functions
- to the FileSystem module. Removed the EmptyStringArray() method.
- Moved method implementations from header file to source file. Marked
- the _CString class for internal use only.
-
-35. (Sushma Fernandes - HP) 9 May 2002 - Updated the Logger to log to
- syslog on the HP-UX platform.
-
-36. (Sushma Fernandes - HP) 9 May 2002 - Fixed the method
- CIMDateTime::getCurrentDateTime() to return local time instead of UTC.
- Updated the CIMDateTime::getDifference() method to compute the difference
- between two local times. Also updated the getDifference to compute the
- difference between two intervals.
-
-37. (Mary Hinton) 10 May 2002 - Fixed the problem in the new version of
- pegasus_gettimeofday(struct timeval *tv)function for the Windows
- platform. The new implementation was implemented for higher resolution
- for performance statistics. However, it was causing an intermittent
- hang in the ThreadPool test on the Windows platform.When (long int)
- is changed to (__int64), the tv_usec variable of timeval struct has
- the correct value.
-
-38. (Roger Kumpf - HP) 13 May 2002 - To eliminate the possibility of
- collisions (and subsequent corruption) when different threads
- concurrently update the ArrayRep reference count, I added a Mutex
- to the ArrayRep structure. This Mutex gets locked in the inc()
- and dec() methods that manage the reference count.
-
- After adding the Mutex, the "mysterious" memory problems seemed to clear
- up. This seems like a very good thing. However, note that the addition
- of the Mutex adversely affects performance (nearly 2:1). I tried using
- an AtomicInt for the reference count, but that seemed to yield even worse
- performance on my system.
-
- Anyone should feel free to optimize the performance of the locking in
- the ArrayRep structure. Since I believe this locking is required for
- proper operation, I've added the Mutex for all platforms. Note that I
- had to comment out the assert statements in internal_dq.h to avoid a
- circular header file dependency (Array.h->IPC.h->internal_dq.h->
- Exception.h->String.h->Array.h).
-
-39. (Roger Kumpf - HP) 13 May 2002 - Removed operator int() methods from
- all CIM* classes. These methods had been causing a number of difficult
- to find defects, including the use of the wrong versions of the methods
- in Memory.h by the Array template (leading to major memory leaks).
-
- In general, it is dangerous to define a casting operator method that
- loses so much information, because the compiler will apply the cast
- at will in an effort to match types. I've replaced all instances of
- the int cast operator with isNull() methods.
-
-40. (Nag Boranna - HP) 14 May 2002 - HP-Nag: Added SSL Certificate verification
- code in TLS.cpp, created a new class CertificateInfo to pass certificate
- information to the client's call back function. Modified CIMServer.cpp and
- the Command lines that are using SSLContext to pass a call back function.
- Fixed few display messages in CIMConfigCommand.cpp to show meaningfule
- messages when CIM server is not running.
-
-41. (Roger Kumpf - HP) 15 May 2002 - Moved CIM*::toXml() methods to
- XmlWriter::append*Element(). Moved CIM*::print() methods to
- XmlWriter::print*Element(). Putting this function in XmlWriter
- instead of the CIM* classes keeps those internal methods out of
- the published client and provider APIs.
-
-42. (Roger Kumpf - HP) 15 May 2002 - Moved CIM*::toMof() methods to
- a new MofWriter class as MofWriter::append*Element(). Moved
- CIM*::printMof() methods to MofWriter::print*Element().
-
-43. (Nag Boranna - HP) 16 May 2002 - Implemented SSL handling in
- CIMClient.cpp for local connection and modified the CLIs to not to pass
- SSLContext to the client api.
-
-44. (Roger Kumpf - HP) 16 May 2002 - Reworked the Array template so that
- each array has its own ArrayRep copy rather than Arrays sharing
- ArrayReps and reference counting.
-
-45. (Nag Boranna - HP) 17 May 2002 - Moved SSLContext class out of
- TLS files, created SSLContextRep to hide members from the users of
- SSLContext. Also included CertificateInfo in SSLContext files and
- removed the CertificateInfo files, so that the client SDK can only
- need to include SSLContext.h for the client apps to use.
-
-46. (Sushma Fernandes - HP) 17 May 2002 - Fixed the CIMInstanceRep::resolve
- method to return the correct class origin. Fixed SecurityPropertyOwner to
- disallow passwordFilePath="".
-
-47. (Nag Boranna - HP) 20 May 2002 - Modified CIM Server and Client
- API to lookup port number from services. CIM Server uses default port
- number (5988 for HTTP or 5989 for HTTPS) if no port number is configured
- and no port is specified in the configuration file. CIMClient's connectLocal()
- method is modified to try and connect to HTTP port, if failed then try and
- connect to HTTPS port.
-
-48. (Sushma Fernandes - HP) 21 May 2002: Fixed a problem in repository related
- to rollback failure.
-
-49. (MM) 23 May 2002 - Added ProviderAdapter support
- The ProviderAdapterManager loads an additional Adapter library in
- case of a non-default interfaceName. This Adapter library has to offer a
- factory callback PegasusCreateProviderAdapter() in analogy to the
- CIMBaseProvider - an example, the AdapterSkeleton, can be found in
- src/Providers/generic/CMPIAdapter/
-
-50. (MM) 23 May 2002 - New AtomicInt implementation using pthread_spinlocks.
-
-51. (Nag Boranna - HP) 23 May 2002 - Added config properties
- 'enableHttpConnection' and 'enableHttpsConnection'. Renamed
- 'requireAuthentication' to 'enableAuthentication' and 'requireAuthorization'
- to 'enableNamespaceAuthorization'. Removed few ATTN's in Authentication code.
-
-52. (Roger Kumpf - HP) 28 May 2002 - Reworked the Array template so that
- the implementation is hidden from clients and providers. This was
- accomplished by using explicit instantiation of the array template for
- each array type that is supported in the client and provider APIs.
- The array template implementation is still available for use within
- the Pegasus core, allowing implicit instantiation of additional array
- types used internally.
-
-53. KS 28 May 2002 - Added heiarchial subclass search of subclasses to
- enumerateinstancenames and enumerateinstances. There is a problem
- however with trashing of the requests messages so there is a
- flag LIMIT_ENUM_TO_ONE_LEVEL in CIMOperationDispatcher.cpp that
- causes it to go through all the motions except to request instances
- only for the current level.
-
-54. (Sushma Fernandes - HP) 28 May 2002 - Replaced getenv("PEGASUS_TRACE")
- with Tracer calls. Fixed UserAuthProvider and ConfigSettingProvider to
- check for user credentials. UserAuthProvider checks whether the user
- is a privileged user for all operations. ConfigSettingProvider checks
- whether the user is a privileged user only for write operations.
-
-55. (Carol Ann Krug Graves - HP) 30 May 2002 -
- Removed the CIMNamedInstance and CIMObjectWithPath classes. The CIMObject
- and CIMInstance classes now include a setPath (CIMObjectPath) method.
- These changes will affect Clients and Providers. A call to the
- CIMNamedInstance constructor with a CIMObjectPath and a CIMInstance should
- be replaced with a call to the setPath () method on the CIMInstance,
- passing the same CIMObjectPath. A call to the CIMNamedInstance
- getInstance () method should be replaced with the CIMInstance, and a call
- to the CIMNamedInstance getInstanceName () method should be replaced with a
- call to the getPath () method on the CIMInstance. A call to the
- CIMObjectWithPath constructor with a CIMObjectPath and a CIMObject, should
- be replaced with a call the setPath () method on the CIMObject, passing the
- same CIMObjectPath. A call to the CIMObjectWithPath getObject () method
- should be replaced with the CIMObject, and a call to the CIMObjectWithPath
- getReference () method should be replaced with a call to the CIMObject
- getPath () method.
-
-56. (Jenny Yu - HP) 31 May 2002 - Implemented a cimserver_kill() method
- to kill the CIMServer process if the CIM Server is still running after
- the shutdown timeout has expired during shutdown. The CIMServer process
- Id is saved in a file after CIMServer starts up. This file is removed
- after CIMServer terminates normally. Only added code for the HPUX
- platform.
-
-57. (Jenny Yu - HP) 03 Jun 2002 - Removed all cimserver command line options
- except for: -v (version), -h (help), -D (home), -s (shutdown), and
- -install and -remove (for Windows only). All other options can be set
- using the <configProperty=value> command line syntax.
-========================================================================
-
-Version 1.08 working towards 1.1 - Started 27 March 2002
-TAG: Version_1_08. Note that the tagging was not all simultaneous because
-of problems with the CVS repository
-
-1. KS 27 March 2002 - Updaded pegasus version to 1.08. Took snapshot.
- Tagged CVS 1_08.
-
-2. KS 2 April 2002 -Add better qualifier testfunctions to cimclass,
- qualifierlist, etc. and start to add specific qualifier tests on creates.
-========================================================================
-
-Version 1.07 working towards 1.1 - Started 4 Feb 2002
-Started just before cutover to the new dispatcher, etc.
-TAG: VERSION_1_07
-
-1. KS - Updated pegsusversion to 1.07 and tagged file.
-
-2. (Markus Mueller) 05 Feb 2002 - AIX support.
-
-3. (Sushma Fernandes - HP) 13 Feb 2002 Implemented FileSystemPropertyOwner
- class to support PEGASUS_HOME dependent properties like Repository
- location, Provider location and Consumer location.
- The default location for these properties continue to be the same
- as before. Added support to the Config Manager to own the
- Pegasus Home variable and implemented method (getHomedPath) to
- return absolute paths based from Pegasus Home.
-
- For more information look in to the following files:
- pegasus/src/Pegasus/Config/ConfigManager.h
- pegasus/src/Pegasus/Config/ConfigManager.cpp
- pegasus/src/Pegasus/Config/FileSystemPropertyOwner.h
- pegasus/src/Pegasus/Config/FileSystemPropertyOwner.cpp
-
-4. KS - 18 Feb 02 Add changes to test for and set the NULL value for CIMValues.
- This forces new CIMValues to have a NULL attributes that is only
- reset when a value is "set" or copied into them. the XML and MOF
- also deliver a NULL value back when the state of the CIMValue is NULL.
- There is a remaining addition to put an exception on CIMValue gets when
- the NULL attribute is set that we will install later.
-
-5. KS - 19 Feb 2002 Extended testclient slightly and cleaned up numerous bugs.
-
-6. KS - 19 Feb 2002 - Add workpaper in doc/workpaper defining the Pegasus Qualifiers.
- Note that this version of the paper still needs work.
-
-7. (Nag Boranna - HP) 20 Feb 2002 - Modified HTTPAcceptor to optionally bind to
-loopback host. Modified CIMClient to connect to loopback host when connectLocal()
-method is used. Added a new method lookupPort() in System.h to return the system
-configured wbem port number. Modified cimuser, cimauth and cimconfig CLI's to use
-modified CIMClient connectLocal() interface.
-
-8. (KS- 21 Feb 2002) - Modified Makefile for repository load so located in
-schema directory. The one in src/pegasus/compiler/load is deprecated and
-will be deleted.
-
-9. KS-21 Feb 2002 - Added new constructor to CIMValue and associated tests
-
-10. RK-20 Feb 2002 - Add Array reference to CIMValue and added tests
-
-11. (Sushma Fernandes - HP, Nag Boranna - HP) 22 Feb 2002 Implemented
- checks for privileged user when performing authorization.
- Added a configuration property enableRemotePrivilegedUserAccess.
- This property needs to be set to true to enable privileged user access
- for remote clients.
-
-12. (Roger Kumpf - HP) 22 Feb 2002 - Added type information to extrinsic
- method (InvokeMethod) operations. This change involves the addition
- of PARAMTYPE attributes to PARAMVALUE and RETURNVALUE tags. This tag
- allows the server to determine the type of a parameter value without
- having to look up the method definition in the schema. It also allows
- the client API to do the same for output parameters as well as return
- values.
-
- PROVIDER IMPLICATIONS:
-
- Method providers ARE affected by this change. Previously, all input
- parameters to invokeMethod were sent to the provider as String type
- regardless of what the client actually specified or how the method
- was defined. With this change, providers will now receive input
- parameters of the type that was actually specified by the client
- application (regardless of how the method was defined in the schema).
-
- However, parameters coming from clients other than the Pegasus client
- API may omit the PARAMTYPE attribute. In this case, the operation
- processor (currently dispatcher) will find these "typeless" parameters
- and convert them to the correct type based on the method definition.
- The result is that if the client specifies the parameter type in the
- XML encoding (as the Pegasus client API does), the method provider
- will receive the type specified by the client; if the client does not
- specify the parameter type, the method provider will see the type
- specified in the method definition.
-
- CLIENT IMPLICATIONS:
-
- Clients ARE affected by this change. Any output parameters that are
- returned from Pegasus (or other CIM servers using the PARAMTYPE
- attribute) will now be received by Pegasus clients as the same type
- sent by the server. Previously, they would have always been of
- String type. In addition, the return value will be received as the
- correct type rather than as a String.
-
- Parameters coming from servers other than Pegasus may omit the
- PARAMTYPE attribute. In this case, the client will see a
- CIMParamValue with type==CIMType::NONE, with a CIMValue of type
- String. Similarly, return values coming from other servers that omit
- PARAMTYPE will be seen by the client as String type. These return
- values will NOT have the CIMType::NONE hint that parameters get,
- because they are CIMValues rather than CIMParamValues.
-
- This behavior will remain for the forseeable future (through
- Pegasus version 2), as it is not possible to require that other
- implementations use the PARAMTYPE attribute.
-
- SIDE EFFECTS:
-
- In the process of implementing this functionality, I discovered
- that there was no way to set a CIMValue to be an array of
- CIMReferences. This appeared to be an oversight, since method
- parameters are permitted to be arrays of CIMReferences. I've
- added the necessary functionality to the CIMValue class.
-
- I also found that the CIMParamValue class needed significant
- clean-up, which I completed.
-
- SETPROPERTY CHANGES:
-
- A similar problem in SetProperty operations was addressed by
- "typing" the specified property value in the operation processor
- (currently dispatcher). This is achieved by looking up the
- relevant schema to get the property definition, and then converting
- the specified value to that property's type.
-
- The SetProperty operation encoding has not changed to accomodate
- inclusion of type information that would obviate the need for this
- extra processing. However, clients can avoid this overhead by using
- ModifyInstance operations (with a property list) instead of SetProperty.
-
- The GetProperty operation also has NOT been updated with type
- information. Client applications using the Pegasus client API will
- always receive String or reference values when calling GetProperty
- against any server (Pegasus or not). Clients that require properties
- to be returned as the correct type must use GetInstance (perhaps with
- a property list) rather than GetProperty.
-
-13. (Roger Kumpf - HP) 22 Feb 2002 - Reworked the CIMParamValue class.
- Instead of being composed of a CIMParameter and a CIMValue, this
- class is now composed of a String (parameter name) and a CIMValue.
- This change removes the redundancy of having the type, isArray,
- and arraySize members in both the CIMParameter and the CIMValue.
- The new CIMParamValue definition is more consistent with the XML
- encoding of parameter values.
-
- An isTyped member was also added to CIMParamValue to support the
- behavior outlined in item 12 above. Clients should use the isTyped()
- method to determine whether the output parameters returned from
- InvokeMethod operations are of the correct type, or whether they
- have defaulted to String type.
-
-14. (KS) 4 March 2002 - Corrections for NULL value and the XML code.
- Corrections to compiler for Null values input (parser and valuectory)
-
-15. (Nag Boranna - HP) 04 March 2002 - Modified CIMClient API to accept
- username and password as parameters to connect() method, added a new
- method diconnect() that closes the open connection with the server
- and added code to handle HTTP Basic authentication challenges from
- the server.
-
-16 (KS) 4 March 2002 - Correct problem with array constants not picking up
- all of the entires in the array. Bugzilla bug # 6.
-
-17. (Yi Zhou - HP) 4 March 2002 - Implemented provider registration manager
- to perform efficient lookup of instance provider, method provider, and
- indication provider. Also, implemented provider registration instances
- operations.
-
- Modified registration provider to use latest provider registration schema.
-
-18 (KS) 6 March 2002 - Implemented changes to compiler and flavors to correct the
- definition of CIMFlavors.
-
-
-19. (Roger Kumpf - HP) 1 Mar 2002 - Reworked the XmlWriter class to
- eliminate many of the redundant memory copies that resulted from the
- nested method call structure. Now, instead of having a method at
- each level that adds a begin tag, contents, and an end tag, there
- are separate methods to add the begin and end tags. At the top
- level, each of the begin tag methods are called, then the message
- "body" is added, followed by calls to the end tag methods.
-
- The message body is currently still copied twice, once into the XML
- payload and then again when the HTTP header is added. (Since the
- HTTP header contains a content length field, the header cannot be
- constructed until the payload is complete.) It is possible to
- remove these extra copies as well, but that would require additional
- changes elsewhere in the code. For example, the HTTPMessage class
- would need to hold the headers and payload separately rather than in
- a single buffer.
-
- Along with these changes, I did a lot of cleanup. Much of the XML
- formatting code has been moved from CIMReference to XmlWriter. Also,
- error message formatting has been consolidated in XmlWriter from the
- various encoders and decoders, etc.
-
-20. (Roger Kumpf - HP) 5 Mar 2002 - Added checks in the
- CIMOperationRequestDecoder and CIMExportRequestDecoder to validate
- that the information in the HTTP headers of a request is consistent
- with what is encoded in the XML request itself.
-
- Specifically, the CIMOperation, CIMProtocolVersion, CIMMethod,
- CIMObject, CIMBatch, CIMExport, and CIMExportBatch headers are
- validated.
-
-21. (KS) 7 March 2002 - Correct error in qualifier propagation processing in
- qualifierlist.resolve. Temporarily remove the DEFAULT setup on the
- Compiler qualifier generation. Add tests for resolve processing.
-
-22. (Roger Kumpf - HP) 8 Mar 2002 - Simplified CIMClient API construction.
- Previously, the client application constructed a client API using:
-
- Monitor* monitor = new Monitor;
- HTTPConnector* connector;
- connector = new HTTPConnector(monitor);
- Uint32 timeoutMillis = 60 * 1000; // optional
-
- CIMClient client(monitor, connector, timeoutMillis);
-
- With this change, the client application now looks like:
-
- Uint32 timeoutMillis = 60 * 1000; // optional
-
- CIMClient client(timeoutMillis);
-
- The old style allowed an SSL context to be specified in the HTTPConnector
- constructor. It seems that the SSL context is really a property of a
- connection rather than of the client API. So instead of adding an SSL
- context parameter to the CIMClient constructor, I added it to the CIMClient
- connect() method. There are now forms of the connect() method with and
- without an SSL context. Similar changes were made in the HTTPConnector
- class to allow specification of an SSL context in the connect() method
- rather than in the constructor.
-
- NOTE: Client applications are affected and must be updated with this
- change. I've already updated all the clients that are checked in and
- included in the Pegasus build.
-
-23. (KS) 8 March 2002 - Correct error in compiler that caused length field
- of fixed length arrays to be lost.
-
-24. (Jenny Yu - HP) 8 March 2002 - Modified the CIMException class to NOT
- include the source filename and line number in the exception message.
- However, for anyone who wishes to include such information in the
- CIM Exception message, a compile option DEBUG_CIMEXCEPTION can be used
- for that purpose.
-
- A couple of changes have been made to the Tracer class:
-
- - CIMException messages can now be put in a trace file using the Tracer.
- A new interface has been added to the Tracer to accept a CIMException
- as input and writes the exception message in the CIMException to the
- trace file. This message will include the source filename and the
- line number of the CIMException originator.
-
- Tracer::traceCIMException(traceComponent, traceLevel, cimException);
-
- - Strings can now be traced using the Tracer class:
- A new interface has been added to the Tracer to accept a String as
- input and writes the String to the trace file.
-
- (ex.)
- You can issue the following method call:
- Tracer::trace(TRC_CONFIG, Tracer::LEVEL2, "Operation Failed.");
-
- or use the following new macro:
- PEG_TRACE_STRING(TRC_CONFIG, Tracer::LEVEL2, "Operation Failed.");
-
-25. (Ramnath Ravindran - Compaq) 11 March 2002 - added IPCTru64.h and modified
- several files so that Pegasus could build and run on Tru64 unix. Added
- one macro in ConfigUnix and ConfigWindows (PEGASUS_OR_IOS_BINARY) in
- the case where std::ios::binary is present with a bitwise OR operator.
- This macro only works when the std::ios::binary is NOT the first
- operator to be "OR"ed.
-
-26. (Ramnath Ravindran - Compaq) 12 March 2002 - modified more files so that
- Pegasus could build and run on Tru64 unix. Finished replacing instances
- of ios::binary with the macros PEGASUS_IOS_BINARY and
- PEGASUS_OR_IOS_BINARY. Also modified some code that dealt with file
- streams. Tru64 does not support the use of the " != " operator on a
- fstream object. Instances of such were either modified or an ifdef
- block detecting a build on Tru64 was used. Added cstdarg and ctime in
- pegasus/src/stdcxx/cwrappers/ directory.
-
-27. (Mary Hinton) 16 March 2002 - fixed the CIMServer so that it could once
- again be installed as a Windows service. The repositoryRootPath could
- not be found, because the pegasusHome variable was not being set properly
- in the Windows service work thread.
-
-28. (Bob Blair by KS) 17 March 2002 - Modified repository so there is both a
- local repository (cimmofl) and a client interface repository (cimmof)
- executable
-
-29. (KS ) 18 March 2002 - Modified schema makefiles to use the cimomfl respository
- executable.
-
-30. (Roger Kumpf - HP) 19 Mar 2002 - Added range checking for Uint* and
- Sint* values in XmlReader.cpp. Previously, values that were out of
- range were simply truncated to fit the given integer size. An
- exception is now thrown when the given string can not be parsed into
- an integer of the specified size.
-
-31. (Roger Kumpf - HP) 20 Mar 2002 - Added support for hexadecimal integers
- in XmlReader.cpp.
-
-32. (Nag Boranna - HP) 21 March 2002 - Implemented server side Basic
- Authentication handling code and cleaned up ATTN's in the authentication
- releated files. Implemented a new AuthenticationInfoRep class and modified
- the related files. Added more test cases to test the authentication classes.
-
-33. (Ramnath Ravindran - Compaq) 21 March 2002 - replaced instances of "| ios::binary"
- with PEGASUS_OR_IOS_BINARY in 3 files: System.cpp, InstanceIndexFile.cpp, and
- InstanceDataFile.cpp
-
-34. (KS) 25 March 2002 - Extended qualifier resolution to correctly handle Flavors nad
- enabled the scope and flavors testing. Had been pretty much blocked before.
-
-35. (Roger Kumpf - HP) 26 Mar 2002 - Created a class to map CIM operation
- request messages to provider API calls. Cleaned up the dispatcher and
- added the ability to pass requests to control providers through the
- ModuleController. Integrated the ConfigSettingProvider with the
- ModuleController and set up the structure for getting the control
- providers working. Moved the ConfigSettingProvider from the
- Providers tree to the Pegasus tree, since it really is statically
- linked into the server.
-
-36. (Roger Kumpf - HP) 27 Mar 2002 - Integrated the UserAuthProvider with
- the ModuleController as a control provider. Moved the UserAuthProvider
- from the Providers tree to the Pegasus tree.
-
-37. (Roger Kumpf - HP) 27 Mar 2002 - Integrated the
- ProviderRegistrationProvider with the ModuleController as a control
- provider. Moved the ProviderRegistrationProvider to the Pegasus
- ControlProviders directory. Obsoleted and removed the
- Server/ConfigurationManager class and files.
-
-38. (KS) 27 march 2002 - Modifications to common functions and the compiler to
- extend the processing of class creation and correct the flavors and their
- use. This allows flavors to be inherited with rules for override, etc.
-
-
--------------------------------------------------------------------
-Version 1.06 working towards 1.1 Started 13 December 2001
-
-1. Merged back to Main branch. All general development will be in main branch
- in the future with releases in side branches. Special side developments
- may temporarily be in side branches.
- Changed cimversion to 1.06. We will do 1.1 based on functionality.
-
-2. (Karl) 18 December 2001 - Added new directory repositories where repository
- implementations will be kept to separate them from the
- repository interface defintion. Initial implementation is genericfile
- which is the current file based repository.
-
- Added new build variable RMREPOSITORY which is a generic MAKE command
- to remove an existing repository. It simply substitutes for the RMDIRHIER
- command at this point but we will make this a generic part of system
- in the future.
-
-3. (Roger Kumpf - HP) 18 Dec 2001 - Updated the CIMOperationRequestDecoder
- to check that all required parameters for intrinsic methods are
- present. If a required parameter is missing, a CIM_ERR_INVALID_PARAMETER
- exception is thrown. Also added checks for duplicate parameters in the
- intrinsic methods. If a parameter is specified more than once, a
- CIM_ERR_INVALID_PARAMETER exception is thrown.
-
-4. (Nag Boranna - HP) 14 Jan 2002 - Created CIMOperationRequestAuthorizer queue
- and moved Authorization verification code from CIMOperationRequestDecoder
- queue to this new queue. Modified CIMServer.cpp to create
- CIMOperationRequestAuthorizer queue only when authorization is enabled.
- Also modified CIMRequestMessagesin CIMMessage.h to include userName to make
- it available to the CIMOperationRequestDispatcher.
-
-5. (Mary Hinton - Jan 17, 2002) Fixed the problem with the CIMserver when it
- runs as a Windows service. The work thread was exiting instead of running
- forever. The problem was noticed when the TestClient program and CIMserver
- service were both running. The service wasn't accessible to the TestClient
- program.
-
-6. (Nitin Upasani - Jan 25, 2002) Operations on CIM_IndicationSubscription,
- CIM_IndicationHandlerCIMXML and CIM_IndicationFilter classes will be now processed
- in new queue, IndicationService which will get invoked from dispatcher.
- CIM_CREATE_INSTANCE_REQUEST_MESSAGE
- CIM_MODIFY_INSTANCE_REQUEST_MESSAGE
- CIM_DELETE_INSTANCE_REQUEST_MESSAGE
- CIM_GET_INSTANCE_REQUEST_MESSAGE
- CIM_ENUMERATE_INSTANCES_REQUEST_MESSAGE
- CIM_ENUMERATE_INSTANCE_NAMES_REQUEST_MESSAGE
-
- This new service will also take care of processing the indications on receiving
- CIM_PROCESS_INDICATION_REQUEST_MESSAGE. This message should come from
- IndicationProvider or some other mechanism which is not yet clear.
-
- IndicationService will also receive following messages from PG_ProviderRegistration
- when a new IndicationProvider will get registered.
- CIM_NOTIFY_PROVIDER_REGISTRATION_REQUEST_MESSAGE
- CIM_NOTIFY_PROVIDER_TERMINATION_REQUEST_MESSAGE
-
- I had also defined new Indication Provider APIs, enableIndication, disableIndication
- and modifyIndication with more parameters passed and eventually planning to terminate
- old APIs (provideIndication, cancelIndication and updateIndication). Also there is a
- plan to implement one more call as startIndication and will be done soon.
-
- There are three new test programs in IndicationService directory, which will create
- Filter, Indication and Subscription instances using IndicationService.
-
- Also modified sample IndicationProvider code with the new APIs introduced.
-
--------------------------------------------------------------------------
-
-Version 1.1.1 - 3 August 2001 - Development Branch (Work in Progress)
- current working dev branch of build
-
----------------------------------------------------------------------------
-Version 1.1 - July 2001 Development branch (Work in PRogress)
-
-1. (Mike Brasher) Fixed bug with XML generation (was not generating
- PARAMETER.REFERENCE constructs for references).
-
-2. (Mike Brasher) Reworked server communication into new module scheme.
-=======
-1. (Karl) 6 Aug - extend ToMof functions. The MOF for a class can now be
- seen as part of CGIclient class displays.
-
-2. (Karl) 7 Aug - Update CIM25 Schema from the "preliminary" version
- to the final version in Schemas\CIM25. This included minor
- corrections, etc and a couple of file changes. This is the
- official final CIM 25 schema relesed by the DMTF. This change
- should not affect any current work.
-3. (Karl) 7 Aug 2001 - Added CIM Schema 2.6 (preliminary) to the Schemas
- directorys. Note however that today the make repository still
- loads the 2.5 schema.
-
-4. (Karl) 8 Aug 2001 - Change cimmofparser.cpp to put header and trailers
- on XML output.
-
-5. (Denise Eckstein - HP) 13 Aug 2001 - Fixed an HP-UX compile problem
-in various src/utils/mu commands (MoveCmd.cpp, PrependCmd.cpp, RmCmd.cpp,
-RmDirHierCmd.cpp, StripCmd.cpp, TouchCmd.cpp). aCC scopes variable
-declarations in for loop initializers outside the loop, so multiple
-"for (int i=0; i<10; i++);" statements cause a compile error.
-
-6. (Nag Boranna - HP) 15 Aug 2001 - Modified Config framework to remove
-dependency on the config files at the start of the cimserver. Now the
-cimserver will use in-memory default values in the absence of config files
-and command line options. Fixed a few defects in the config framework that
-were causing cimom to crash under certain conditions. Changed the config
-provider class name to 'PG_ConfigSetting' in the mof file and modified
-provider implementation files accordingly. Also modified the config CLI
-to show user friendly error/status messages.
-
-7. (Carol Ann Krug Graves - HP) 16 Aug 2001 - Fixed a bug in wbemexec CLI
-(reported incorrect line number on error in XML request if input redirected).
-Enhanced the -d debug command line option to allow more flexibility in
-generating debug output.
-
-8. Karl 17 Aug 2001) - Extended CIMMOF compiler to put pegasus comment line in
-xml when it generates xml output.
-
-9. (Roger Kumpf - HP) 20 Aug 2001 - Combine instances of each class into
-a common file to reduce the number of files required by the default
-repository implementation.
-
-10. (Mike Brasher) - Fixed minor bug in repository implementation.
-
-11. (Mike Brasher) - Committed fix to missing PARAMETER.REFERENCE XML element.
-
-12. (Mike Brasher) - Committed rework of server into queue approach.
-
-13. (Mike Brasher) - New webserver and webclient examples.
-
-14. (Sushma Fernandes - HP) 21 Aug 2001 - Fixed a bug that was creating an empty file when trace was not enabled. Changed the Tracer test program's executable file name to TracerTest instead of Tracer.
-
-15. (Mike Brasher) - Initial work on refactorying client into modules.
- CIMOperationRequestEncoder and partial CIMOperationResponseDecoder.
-
-16. (Mike Brasher) - queue-based clients now complete.
-
-17. (Jim Chou - HP) 12 Sep 2001 - Initial contribution of wbemexec test directory and make infrastructure. This submittal also includes an initial set of test scripts.
-
-18. (Markus Mueller - IBM) 13 Sep 2001 - Initial support for z/OS on z/Series, the successor of OS/390 and MVS.
-
-19. (Warren Otsuka - HP) 14 Sep 2001 - Implementation of servlet web server
- interface to CIMServer.This is for the PEGASUS CIM Server to coexist with
- a web server. See doc/Servlet for more information.
-
-20. (Yi Zhou - HP) 20 Sep 2001 - Added tracing in files
- CIMOperationRequestDecoder.cpp and CIMOperationResponseEncoder.cpp so XML
- input and output can be written in a trace file.
-
-21. (Markus Mueller - IBM) 25 Sep 2001 - Initial Signal Handler support
- Created new class SignalHandler that allow registration, activation and
- deactivation of signal handler functions (Linux only !).
-
-22. (Nitin Upasani - HP) 27 Sep 2001 - Modification of ExportServer and
- ExportClient to support ExportIndication. DisplayConsumer, a sample
- consumer is added which will consume (by displaying on screen) the
- indication exported by CIMExportRequestDispatcher. This complete
- implementation is based on CIM_EXPORT_INDICATION_REQUEST and
- RESPONSE messages. CIMMessage.h, Message.cpp and Message.h files
- are modified to implement above messages.
-
- XmlIndicationDispatcher test program is modified to test complete
- operation. It now creates a consumer, handler and indication
- instance and then calls CIMExportRequestDispatcher to export the
- indication to consumer. This program needs
- src/Pegasus/Server/tests/XmlIndicationDispatcher/TestSoftwarePkg.mof
- and Schemas/Pegasus/PG_ConsumerRegistration.mof files to be loaded
- in the repository to complete the test successfully. This test
- program also needs Handler qualifier defined in repository and
- modify CIM_Event25.mof for CIM_IndicationHandlerXMLHTTP class as
- below:
-
- //====================================================================
- // CIM_IndicationHandlerXMLHTTP
- //====================================================================
- [Description (
- "CIM_IndicationHandlerXMLHTTP describes the destination for "
- "Indications to be delivered via HTTP, using a cimXML "
- "representation."), Handler ("CIMxmlIndicationHandler") ]
-
-23. (Sushma Fernandes - HP) 27 Sep 2001 - Added tracing code in
- ProviderTable.cpp and SystemUnix.cpp to indicate progress of loading
- a provider library.
-
-24. (Nitin Upasani - HP) 05 Oct 2001 - implementation of InvokeMethod
- interface for the provider. InvokeMethod currently uses CIMValue as
- type for inParameters and outParameters, which are unable to give
- information about param name, type and value. This should be changed
- to CIMParamValue which will help providers to know details of the
- parameter name and type along with value passed through InvoleMethod
- call. Current implementation uses CIMParamValue as parameters while
- travelling through message queues and converts it back to array of
- CIMValue before calling Provider API (which needs to be changed
- later).
-
- Also added are two test programs:
-
- src/Pegasus/Common/tests/ParamValue - which demonstrate use of
- CIMParamValue class.
-
- src/Pegasus/Client/tests/InvokeMethod - which makes call to
- InvokeMethod and displays the return value. Current
- implementation assumes that provider had returned true value
- and outParameters (which are now hard coded in
- CIMOperationRequestDispatcher to implement functionality)
- which are passed as response of InvokeMethod to client.
-
-25. (Nag Boranna - HP) 05 Oct 2001 - Added first level implementation of
- authentication to the pegasus code. Created an Authentication Manager
- and authenticator interfaces. The file based local authentication
- module has been modified to implement the local authenticator
- interface, to generate the challenge for the unauthorized requests
- and to verify the authentication.
-
- A skeleton program has been created for the Basic Authenticator.
- This code is in the Security/Authentication directory which is not
- yet linked into the build.
-
-26. (Nitin Upasani - HP) 08 Oct 2001 - Changes to Operation and Export
- Decoders. Earlier decoders were sending requests and responses
- before finishing complete Xml parse. This was prone to send
- request/response even the Xml is wrong after the MethodCall.
- New changes collects the Message* as return value from the
- appropriate functions while parsing the Xml and sends on
- _outputQueue only when Xml is parsed successfully.
-
-27. (Nag Boranna - HP) 11 Oct 2001 - Modified ProviderModule.cpp to
- fix the problem with constructing provider name and loading the
- providers for unix platforms. Also moved the shared library name
- construction (appending .sl or .so) from
- CIMOperationRequestDispatcher.cpp/SystemUnix.cpp to
- ProviderModule.cpp and included it in a method that returns
- provider file path name.
-
-28. (Nitin Upasani - HP) 12 Oct 2001 - Implementation of SNMP Indication
- Handler. This handler extracts MappingStrings qualifier from class
- definition and converts it into SNMP specific trap data. The trap
- structure is defined in a abstract class in snmpDeliverTrap.h file.
- Every one has his or her own SNMP agent, which will talk with master
- agent to deliver the trap or may have some other mechanism.
- Extending snmpDeliverTrap class and deliverTrap method will help to
- implement specific trap delivery mechanism.
-
-29. (Yi Zhou - HP) 09 Oct 2001 - Changed cimconfig to allow setting property to
- be NULL. Also, if -u -p specified in the cimconfig, instead of updating
- property value to be default in the plan file, remove the property from the
- plan file. Converted ConfigSettingProvider to use provider2 library.
-
-30. (Sushma Fernandes - HP) 24 Oct 2001 - Added an interface to the tracer
- to allow tracing of a specific number of bytes in a given
- string. Also modified the XmlIO trace code to use the new interface.
- Changed the config file defaults for tracing.
-
-31. (Rudy Schuet - Compaq) 28 Oct 2001 - Added "make" support for Compaq
- NonStop platform (NSK) in directory pegasus/mak. The following files
- were added: platform_NSK_NONSTOP_NMCPLUS.mak, objects-nsk.mak,
- library-nsk.mak, config-nsk.mak, program-nsk.mak, program-windows.mak,
- program-unix.mak. The original program.mak which previously covered
- all platforms was split into platform-specific make files, and now
- only contains conditionals. Files config.mak, objects.mak, and
- library.mak were changed to include the NSK files.
- File platform_NSK_NONSTOP_NMCPLUS.mak includes config-nsk.mak.
-
-32. (Jenny Yu - HP) 29 Oct 2001 - Fixed CIMReference constructor to allow
- commas (,) in the string values of key properties.
-
-33. (Karl Schopmeyer) 30 October 2001- Move the repository load to CIM schema 2.6
-
-34. (Rudy Schuet - Compaq) 30 Oct 2001 - Fixed a problem in
- pegasus/mak/program-windows.mak that prevented program builds for
- the windows platform (related to change from 28 Oct). Replaced
- leading whitespace in front of commands with tabs as required
- in make files.
-
-35. (K Schopmeyer) 2 Nov 2001 - Temporarily moved repository back to CIM25
- because getting an error in 26
-
-35. (Roger Kumpf - HP) 30 Oct 2001 - Association classes have keys
- whose types are references. These reference values must be
- treated specially in the XML encoding, using the VALUE.REFERENCE
- tag structure.
-
- Pegasus had been passing reference values simply as String values.
- For example, EnumerateInstanceNames returned KEYVALUEs of string
- type rather than VALUE.REFERENCEs.
-
- I've modified the XmlReader::getKeyBindingElement() and
- CIMReference::instanceNameToXml() methods to read and write the
- XML in the proper format. However, making that change required
- that a CIMReference object be able to distinguish between a key
- of String type and a key of reference type.
-
- I've modified the String format of CIMReferences slightly to
- allow efficient processing of references whose keys are also of
- reference type. The "official" form uses the same encoding for
- key values of String type and of reference type, and so it
- would be necessary to retrieve the class definition and look up
- the types of the key properties to determine how to treat the
- key values. This is clearly too inefficient for internal
- transformations between CIMReferences and String values.
-
- The workaround is to encode a 'R' at the beginning of the value
- for a key of reference type (before the opening '"'). This allows
- the parser to know a priori whether the key is of String or
- reference type.
-
- In this example:
-
- MyClass.Key1="StringValue",Key2=R"RefClass.KeyA="StringA",KeyB=10"
-
- Property Key1 of class MyClass is of String type, and so it gets
- the usual encoding. Key2 is a reference property, so the extra 'R'
- is inserted before its encoded value. Note that this algorithm is
- recursive, such that RefClass could include KeyC of reference type,
- which would also get encoded with the 'R' notation.
-
- The toString() method inserts the 'R' to provide symmetry. A new
- KeyBinding type (REFERENCE) has been defined to denote keys in a
- CIMReference that are of reference type. This KeyBinding type must
- be used appropriately for CIMReference::ttoString() to behave
- correctly.
-
- The files that have been modified to make this change are
- CIMReference.h, CIMReference.cpp, and CIMInstanceRep.cpp.
-
- A result of this change is that instances names in the instance
- repository will include this extra 'R' character. Thus, you will
- need to repopulate your repository when you download the latest
- CIMOM version.
-
- Note that for user-facing uses of the String encoding of instance
- names (such as might appear in MOF for static association
- instances or in the CGI client), this solution is non-standard and
- therefore unacceptable. It is likely that these points will need
- to process the more expensive operation of retrieving the class
- definition to determine the key property types.
-
-36. (Sushma Fernandes - HP) Modified tracer to return invalid components
- in case of error in setting trace components. Modified the property owner
- init and update methods. Submitted the pegasus/mak/Buildmakefile with
- cleanbuild, rebuild and trace configuration options.
-
-37. (Yi Zhou - HP) 05 Nov 2001 - Fixed createInstance to return a CIMReference
- (instanceName).
-
-38. (Roger Kumpf - HP) 08 Nov 2001 - Implemented encoding/decoding of
- GetProperty/SetProperty/EnumerateInstances request/response messages.
- Added encoding and decoding of PropertyList parameters on all
- relevant intrinsic methods.
-
-39. (Markus Mueller - IBM) 09 Nov 2001 - Added Associator calls to CIMBase
- ProviderFacade.cpp; fixed Provider unloading in CIMProviderManager.cpp
-
-40. (Rudy Schuet - Compaq) 12 Nov 2001 - Common module: added the following
- files for nsk platform support: TraceFileHandlerNsk.cpp, ThreadNsk.cpp,
- TCPChannelNsk.cpp, SystemNsk.cpp, ServiceNsk.cpp, SelectorNsk.cpp,
- IPCNsk.cpp, DirNsk.cpp. Most of these files (with the exception of
- SystemNsk.cpp) contain stubs. The associated control files
- (TraceFileHandler.cpp, Thread.cpp, etc) have been updated to include
- nsk platform links.
-
-41. (Roger Kumpf - HP) 14 Nov 2001 - Changed the behavior of the CIMValue
- toString() method for CIMValues of String type. The old behavior
- returned an XML encoding of the String with special characters
- replaced by their UTF-8 equivalents. For example, a CIMValue of a"b
- would be returned as a&quot;b. The new behavior just returns the
- String value directly with no translation. (Note that
- CIMValue.toXml() may still be used to get the XML-encoded value.)
-
- This change was necessary in part to correct the behavior of the
- repository. CreateInstance stores the instance name returned by
- CIMInstance.getInstanceName(), which is built using calls to
- CIMValue.toString(). GetInstance searches for the instance name
- without UTF-8 encoding of special characters. For GetInstance to
- be successful, CreateInstance must have stored the instance name
- in that same form, without special character encoding.
-
-42. (Roger Kumpf - HP) 15 Nov 2001 - Added a toXml(void) method to
- the CIMValue class. Eliminated improper use of CIMValue.toString(),
- often replacing with CIMValue.get(String&) or CIMValue.toXml().
- Also added some error handling in the indication handlers.
-
-43. (Sushma Fernandes - HP) 16 Nov 2001 - Added a function
- localObjectPathtoXml(Array<Sint8>& out) to the CIMReference class
- to handle local instance path and local classpath. Modified the
- CIMOperationRequestDecoder to handle <LOCALCLASSPATHELEMENT ...>.
- Changed the CIMOperationRequestEncoder to call the localObjectPathtoXml.
-
-44. (Roger Kumpf - HP) 19 Nov 2001 - Added a CIMNamedInstance class
- to hold the argument to ModifyInstance and the return values
- from EnumerateInstances. The client and provider APIs need to
- be updated to use this class.
-
-45. (Sushma Fernandes - HP) 19 Nov 2001 - Added the cimuser command line
- source files. This CLI allows addition, modification, removal and listing
- of CIM users. The CLI is not linked to the main makefile as the Provider
- functionality is yet to be implemented. Added the function
- String getPassword(char* prompt) to the System.h and cpp files.
-
-46. (Nag Boranna - HP) 20 Nov 2001 - Implemented Authentication code on
- the server to challenge the unauthorized requests, authenticate
- the challenge responses, and verify the subsequent authorized requests.
- Implemented authentication mechanism on the Client api to send
- responses to the challenges from the server. Current implementation
- supports only 'local' authentication mechanism.
-
-47. (Roger Kumpf - HP) 20 Nov 2001 - Commited the following set of changes:
-
- - Changed the return value of EnumerateInstances from Array<CIMInstance>
- to Array<CIMNamedInstance>
- - Changed the parameter to ModifyInstance from CIMInstance to
- CIMNamedInstance
- - Added an optional PropertyList parameter to ModifyInstance
- - Changed all handling of PropertyList parameters to use the
- CIMPropertyList class instead of Array<String>
-
- Each of these changes was required to comply with the DMTF specification.
-
- These changes were made throughout the system except for in the provider
- API. For now, the CIMProviderHandle and CIMBaseProviderHandle hide the
- differences from providers, so older providers will continue to function.
- However, this means that clients can not yet take advantage of the added
- functionality.
-
- When the provider API is updated, the following changes will be visible:
-
- - Providers will get a PropertyList parameter to ModifyInstance which
- they are required to respect. Providers that can not process the
- PropertyList must throw a NOT_SUPPORTED exception whenever the
- list is not null. Clients can take advantage of this change by
- issuing a ModifyInstance request against a selected set of
- properties in an instance, rather than being required to replace
- the entire instance.
-
- - Providers will be required to return instance names along with
- instances in the EnumerateInstances method. Clients will receive
- these instance names, as the standard dictates.
-
- - Providers will receive a CIMPropertyList argument containing the
- PropertyList instead of an Array<String>. This change allows
- providers to distinguish between an empty list and a null list.
-
- Note that the repository also does not yet handle the PropertyList in
- ModifyInstance correctly.
-
-48. (Roger Kumpf - HP) 21 Nov 2001 - I have updated the Provider2 instance
- provider API to match the changes made to the EnumerateInstances and
- ModifyInstance operations. These changes were made to comply with
- the DMTF specification.
-
- The original Provider API has not been updated, and I have no
- plans to do so. Providers written to the original API will
- continue to function, but they will not have the opportunity
- to take advantage of the features that have been added.
-
- The significant changes to the Provider2 API are:
-
- - Providers will get a PropertyList parameter to ModifyInstance which
- they are required to respect. Providers that can not process the
- PropertyList must throw a NOT_SUPPORTED exception whenever the
- list is not null. Clients can take advantage of this change by
- issuing a ModifyInstance request against a selected set of
- properties in an instance, rather than being required to replace
- the entire instance.
-
- - Providers will get an IncludeQualifiers parameter to ModifyInstance
- which they are required to respect. If IncludeQualifiers is
- false, the qualifiers on the modified instance provided must not
- be used to update the instance.
-
- - Providers will be required to return instance names along with
- instances in the EnumerateInstances method. Clients will receive
- these instance names, as the standard dictates.
-
- The providers that are in the Pegasus build have all been updated.
- However, whenever the PropertyList is not null, the providers throw
- a NOT_SUPPORTED exception.
-
-49. (Rudy Schuet - Compaq) 25 NOV 2001 - To support the NSK platform,
- files Platform_NSK_NONSTOP_NMCPLUS.h and ConfigNsk.h were added to
- the Common module. File Config.h was modified to include the NSK
- platform and a new option PEGASUS_HAVE_NO_STD that allows compilation
- without the standard (std) namespace.
-
-50. (Roger Kumpf - HP) 26 Nov 2001 - Added two new configuration
- properties to support alternate behavior of the Pegasus repository:
- repositoryIsDefaultInstanceProvider and repositoryProviderName.
-
- Using the first one, the repository can be enabled/disabled as the
- default provider for instance (and association) operations. The default
- setting is "true", so the default behavior has not been changed. To
- disable the repository as the default instance provider, issue the
- following command before starting cimserver:
-
- cimconfig -s repositoryIsDefaultInstanceProvider=false -p
-
- The repositoryProviderName configuration property specifies what
- provider name is used to explicitly register the repository as a
- provider. This is necessary when the repository needs to serve
- instances of a class and repositoryIsDefaultInstanceProvider is set
- to "false". The default value is "repository". To register the
- repository as an instance provider for a class, add a
- 'Provider("repository")' qualifier to the class definition.
-
-51. (Roger Kumpf - HP) 26 Nov 2001 - Added a new ServiceCIMOMHandle to
- pass to providers that act as services. This handle provides
- service providers with access to the CIMServer data structures.
-
-52. (Roger Kumpf - HP) 28 Nov 2001 - Implemented ModifyInstance in
- the repository so that it respects the IncludeQualifiers and
- PropertyList parameters. Updated SetProperty in the repository
- so that it uses ModifyInstance correctly. The repository now
- supports GetProperty and SetProperty in addition to ModifyInstance.
-
- Implemented GetProperty and SetProperty in the Dispatcher and
- Provider2 so that they get translated to GetInstance and
- ModifyInstance calls (respectively) in the provider. Providers
- written to the Provider2 API that correctly process the new
- ModifyInstance parameters will automatically support SetProperty
- operations. Note that GetProperty and SetProperty currently only
- work for String properties because of an XML encoding limitation.
-
-53. (Nag Boranna - HP, Sushma Fernandes - HP) 30 Nov 2001 - Implemented the
- Security components for authentication and authorization.
-
- Authentication and User Management:
- cimuser CLI : This CLI is used for addition, modification, removal
- and listing of CIM Users. The CIM user password is encrypted and stored
- in a file. The password file format is compatible with Apache's htpasswd
- generated password file.
-
- cimauth CLI implement the authorization managment functionality by letting
- to add/remove/list user authorizations.
-
- User Manager and User Manager Provider components implement the user
- management and authorization functionality.
-
-54. (Mike Brasher - BMC) 3 Dec 2001 - Added support for WQL-1. New directory
- under src/Pegasus/WQL which contains library and BNF.
-
-55. (Yi Zhou - HP) 03 Dec 2001 - Implemented Pegasus registration provider
- which does provider registration, block, unblock, and stop a provider.
- It also alert Subscription Service of any provider registration changes.
-
-56. (Rudy Schuet - Compaq) 04 Dec 2001 - Replaced _min macro in String.h
- and String.cpp with PEG_min. The _min macro caused problems on the
- NSK platform because of a duplicate definition in a standard file.
-
-57. (Carol Ann Krug Graves - HP) 04 Dec 2001 - Implemented Pegasus indication
- subscription service provider that serves as the instance provider for the
- CIM_IndicationSubscription, CIM_IndicationFilter and CIM_IndicationHandler
- classes (from CIM_Events27.mof). The service also takes appropriate action
- in response to startup, shutdown of the cimom, termination of a provider,
- or change in provider registration.
-
-58. (Jenny Yu - HP) 05 Dec 2001 - Implemented Pegasus Shutdown Service
- and the command line interface for shutting down cimom gracefully.
- For more information, refer to the CIMOM Shutdown working paper
- in pegasus/doc/WorkPapers/CIMOMShutdown.pdf.
-
-59. (Markus Mueller - IBM) 06 Dec 2001 - Implemented SSL support (Linux only).
- It consists the new classes SSL_Context, SSLSocket and MP_Socket defined
- in TLS.h. HTTPAcceptor and HTTPConnector are extended with an additional
- constructor to set a pointer to the server-, resp. client wide SSL_Context
- structure. The Socket field in HTTPConnection is substituted with an
- MP_Socket pointer, a class that is designed to hide the differences
- between Socket and SSLSocket. The MP_Socket (multipurpose socket) class
- is defined even in a non-ssl environment.
- How to use it in a Server or Client:
- 1. Just create an SSL_Context once per Server/Client address space
- 2. Construct every HTTPConnector/Acceptor with a pointer to this
- SSL_Context if you want to enable SSL; construct Connectors/Acceptors
- without SSL_Context for conventional connections.
-
- The Configuration data was extended with the boolean SSL property, and
- cimserver and TestClient now understand the -SSL, resp. -ssl flag.
-
-60. (Bapu Patil - HP) Updated makefiles to support HP-UX IA64 bits O.S.
-
----------------------------------------------------------------------------
-Version 1.1 - July 2001 Development branch
- Tagged as version_1_01 on 3 August 2001 (sorry should have been
- 1.1
-
-1. (Nitin Upasani - HP) Implementation of handleIndication() to deliver
- indication by defining IndicationDispatcher, HandlerTable, CIMHandler
- and ExportClient classes. the indication.
-
- Also implemented CIMxmlIndicationHandler and sendmailIndicationHandler to
- make the delivery of indications over Xml-HTTP and email respectively.
-
- Provided examples for HandlerTable, XmlIndicationDelivery and
- SendMailIndicationDelivery to support this implementation.
-
-2. (Markus Mueller - IBM) Implementation of a Linux specific threading
- library and a thread-safe message queue (first stage). Classes defined
- are Mutex, Condition, Semaphore, AtomicInt, ReadWriteSem, cleanup_handler
- and SimpleThread.
-
-3. (Carol Ann Krug Graves - HP) Implementation of wbemexec CLI. Please refer
- to the man page in pegasus/src/Clients/wbemexec/doc/wbemexec.html for more
- information on using wbemexec. A simple test script is included. Please
- see pegasus/src/Clients/wbemexec/tests/readme for information on running
- the test script.
-
-4. (Sushma Fernandes - HP) Implementation of Trace Framework. Please
- refer to the documentation in src/Pegasus/Common/doc/TracingDevGuide.pdf
- and
- src/Pegasus/Common/doc/TracingUserGuide.pdf for more information on using
- the Trace framework. Classes defined are src/Pegasus/Common/Tracer.cpp and
- src/Pegasus/Common/TraceFileHandler.cpp.
-
-5. (Nag Boranna - HP) Implementation of Config Framework, Config Provider and
- Config CLI. Please refer to the documentation
- in pegasus/doc/WorkPapers/CIMOMConfigurationWorkPaper.pdf and the man page
- in pegasus/src/Clients/cimconfig/doc/cimconfig.html for more information on
- using the config framework and cimconfig CLI. Make sure to load the config
- mof (src/gmake config) before starting the cimserver. A simple test script
- is included. Please see pegasus/src/Clients/wbemexec/tests/readme for
- information on running the test script.
-
-6. (Karl Schopmeyer 31 July 2001) - Add toMof functions to the CIM objects
- (changed the H and CPP files for the major CIM objects. These
- functions generate CIM MOF output for the objects.
-
-7. (Bapu Patil - HP) Implementation of Local Channel Authentication. Local
- Authentication provides security mechanism to authenticates CIM clients
- that
- connect to CIM Server on the same system without having to specify a
- password.
- Please refer to "doc/LocalCIMSecurity.pdf" for more information on design.
- This component only works on unix and it's not linked in with the main
- build.
- When authentication framework is defined this component may need to be
- modified to integrate with the framework.
-
----------------------------------------------------------------------------
-Version 0.99.x (Fixes to version 0.99) in Process
-
-NOTE: Please do not input anything to this branch except for critical
-fixes. This is, in effect, 1.0 and we do not want to use it for
-development.
-
-----------------------------------------------------------------------------
-
-Version 0.98.0 - Work in progress (This number skipped)
-Version -.99.0 - Tagged as version 0.99,17 July 8:00 am - KS
-
-1. (Mike Brasher) Added support for class association operations
- (references(), associators(), referenceNames(), associatorNames()).
-
-2. (Jenny Yu - HP) Fixed problem in CGIClient.cpp to handle double quotes
- in the HTML URL reference for passing instance names.
-
-3. (Mike Brasher) Mass substitution to prepend CIM_ERR to CIM Status Codes.
-
-4. (Mike Brasher) Added CIM Message types in preparation for qeueing.
-
-3. (Denise E. - HP) HP-UX specific changes to lslp-perl-linux,h and slp.h to
- allow slp to compile.
-
-4. (Mike Brasher) - Finalized CIM messages.
-
-5. (Mike Brasher) - Added queue ids concept (using hash table which maps
- ids to queue pointers).
-
-6. (Mike Brasher) - Started integration of message queues with ServerHandler
- and Dispatcher.
-
-7. (Chip Vincent) - Update Provider2 interfaces. Made changes to Dispatcher
-and
- CIMProvider to support both interfaces. Added CIMOMHandle and sample
- ResponseHandler for Provider2 interface.
-
-8. (Mike Brasher) - Replaced dispatcher with a queue-based dispatcher.
-
-9. (Mike Brasher) - Retrofited CIMOMHandle to be queue-based.
-
-10. (Mike Brasher) - Changed CIMOMHandle to carry repository pointer.
-
-11. (Mike Brasher) - Ported to TRU64.
-
-12. (Mike Brasher) - Fixed compiler error on Linux.
-
-------------------------------------------------------------------------------
---
-
-Version 0.97.4 - Tag Created for 0.97.4 and snapshot 7 July 2001
-
-1. Deamonizaiton added to CIMServer.cpp by Mike Day. This includes code bothe
-for NT and Linux platforms.
-
-2. KS Changed the namespace cimv20 to cimv2 and the default port from 888 to
-5988.
-NOTE: 5988 is now the officially recognized preferred port for a CIMServer by
-the DMTF.
-
-3. KS Corrected some errors found in interoperability testing during the DMTF
-Fusion event. THis included a) extended the test for end of HTTP header from
-CR/LF/CR/LF to also allow LF/LF. Not strictly legal but widely used. b).
-Extended the HTTP message ID to allow for non-numeric message IDs.
-
-4. Broke out RepositoryDeclContext class from Repository/CIMRepository.cpp
-and created RepositoryDeclContext.{cpp,h}. This is the first step in
-revamping the compiler to work independently of the repository (grb).
-
-5. Created new makefile Compiler/Makefile.grammar and modified
-Compiler/Makefile; and added cimmof_tab.{cpp,h} and cimmof_lex.cpp.
-Now when you build normally, you will get the committed grammar and parser
-files instead of generating your own for a particular platform. This should
-prevent back-level lex and yacc implementations from generating troublesome
-code. The committed files are generated from flex 2.5.4 and bison 1,28.
-(grb)
-
-6. Added Compiler/compilerDeclContext.{cpp,h} and makefile changes.
-This change paves the way for upcoming changes that will allow the compiler
-to work indepently of the repository. (grb)
-
-7. Extend testclient (clients/testclient) tests and functions. ks 19 June 2001
-
-8. CV added const to CIMOperations modifyInstance, createInstance,
-modifyClass,
-createClass to protect caller's object.
-
-9. CV added CIMQueryProvider and CIMAssociationProvider to the Provider2
-directory. These
-interfaces allow very smart providers to perform advances operations.
-CIMProviderStub has
-been updated to support the new interfaces. Needs testing.
-
-10. Added rpm packaging support and shell script based build process. MM
-
-11. Changed Make so make tests no longer rebuilds repository. To rebuild
-repository you make world, make rebuild or make repository. ks
-
-12. Added associators() and associatorNames() operations to CIM repository.
- (MEB)
-
-13. More on association implementation (all four operations supported).
- Need to handle deletion of associations and protocol stubs still.
- Need to test class associations (rather than just instance associations).
- Need to handle deleteInstance().
- (MEB)
-
-14. slp client code integrated as pegasus-style c++ library. (MDD)
-
-15. (Karl)Update CGI Client to correct number of errors and install
-AssociationName
-and ReferenceName functions. This included extensive update to the HTML
-pages.
-
-16. (Denise E.) Changes to slp client support code for HPUX (
-
-17. (Markus Mueller) Additional changes to support dynamic libraries. Fixed
-ProviderTable tests. Fixed build process (slp with PEGASUS_SUPPORTS_DYNLIB).
-Made cimserver accept the -D flag to eliminate the need for environment
-variables.
-
-18. (Mike Brasher) Added support for Associators(), AssociatorNames(),
- References() and ReferenceNames() CIM operations. These only operate
- on instances at this time. They will operate on classes soon.
-
-19. (Mike Glantz) Extended and modified dynamic support
- changes to (1) work on HP-UX and (2) have all images and libraries
- buildable per the value of PEGASUS_SUPPORTS_DYNLIB. The biggest
- change is to program.mak and library-unix.mak, removing specific
- lists of dynamic library specs and putting them in the Makefile
- and libraries.mak files that build the actual targets (lots of
- these now have DYNAMIC_LIBRARIES defined).
-
-20. (Karl) added basic Queue function to common (based on array) and added
- tests for stack and queue.
-
-------------------------------------------------------------------------------
---
-
-Version 0.97.3 - Released 5 June 2001
-
-1. (KS)OptionManager (CPP and H), Logger (CPP and H), Handler (CPP and H),
-CIMServer (both)
-Functions added include:
- a. Enable trace to log file.
- b. Add option so that you can trace to console or trace to logfile (-l
- is
- trace to log, -t is trace to console).
- c. add parameter in optionsrow for help message and enable the capture
- of these messages in Options class. Also added help print that
- prints these things out. However, format not to beautiful.
- d. Eliminate a couple of messages coming from __Namespace provider.
- e. Extend the Clients\testclient so he does tests on Namespace.
-2. (KS)Extended Log to show time, severity.
-
-3. (KS)Added getCurrentASCIITime functions to System.x
-
-4. (KS)Extended options on CIMServer including 1. option to determine where
-logs
-are put
-
-5. (KS)Added TestClient that executes a series of tests against a server.
-This is a preliminary version.
-
-6. (KS)Corrected problem with acceptor.bind where failure was being lost. Now
-throws CannotBind exception.
-
-7. (KS)Added logger entry to XMLParser for errors. NOTE: At this point it may
-not
-print out all of the message. At the least it prints out the error message
-and components of the message causing the problem.
-
-8. (KS)Added clean option to server but temprarily disabled.
-
-9. (KS)Fixed problem where logs were not created unless logs directory already
-existed.
-
-10. (Mike Brasher) Added "Test" prefix to all test program names.
-
-------------------------------------------------------------------------------
---
-Version 0.97.2
-
-1. Extend HP UX port to correctly load Dynamic Load Libraries.
-2. Extend Formatter for Boolean and Uint32 types.
-3. Change CIM Server to use Trace (-t) flag. This also changed
- Handler.h to work off of flag.
-4. Minor corrections to __Namespace Provider.
-5. Extend tests for Formatter, String, and other modules.
-6. Correct errors in documentation.
-7. New working papers (provider interface).
-8. Add Providerreg.exe tool.
-9. Add trace output for messages sent from the Server.
-
-------------------------------------------------------------------------------
---
-
-23 May 2001 Version 0.97.1 Tags as version_0_971
-
-1. Add PEG_NOT_FOUND symbol to replace Uint32(-1) in any of the object
-find functions. Note: This symbol is defined in config.h. (ks).
-
-2. Port To HP UX. This required a number of changes particularly in the area
-of dynamic lib loaading.
-
-
-------------------------------------------------------------------------------
---
-
-21 May 2001 Version 0.97 - Tagged as version_0_97
-
-1. Added methods in CIMClass, CIMInstance, for existance of properties,
-qualifiers, methods.
-2. Add methods in CIMClass, CIMInstance to remove properties, qualifier,
-methods.
-3. Added CIMmethod and CIMProperty in CIMMethod to text for existance of
-qualifiers and to
-remove qualifiers.
-4. Ported to AIX. NOTE: This port was done using an earlier version of the AIX
-compiler. It probably imposed more limitations than would be required with
-the current compiler. This version of the port produces an excessively large
-common module due to template bloat. That problem will be fixed in a future
-change to the port. Also there are a log of duplicate symbol warnings generate
-by the AIC compiler but these cause no problems. The port has been tested
-with the complete unit test and client/server test successfully.
-
---------------------------------------------------------------------------
-
-23 May 2001
-
-1. Ported to HPUX
-
---------------------------------------------------------------------------
-
-29 May 2001
-
-1. Implemented CIMRepository::setProperty() and CIMRepository::getProperty().
-
-
-
-
-
-
-
-
-
diff --git a/doc/irc_logs/02052002_irc.txt b/doc/irc_logs/02052002_irc.txt
deleted file mode 100644
index b6c2e34..0000000
--- a/doc/irc_logs/02052002_irc.txt
+++ /dev/null
@@ -1,216 +0,0 @@
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc05.icq.com sets mode +n #pegasus
---- irc05.icq.com sets mode +t #pegasus
---> mdday_nt (~mdday@129.33.49.204) has joined #pegasus
-<mdday_nt> helo
-<-- mdday_nt has quit (Client Exiting)
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc04.icq.com sets modes [#pegasus +nt]
---> Karl (~karl@32.106.67.205) has joined #pegasus
-<mdday> Hi Karl
-<Karl> Hi Mike. Guess we are on line at this point.
-<mdday> yup.
-<Karl> I am going to be throughly out of focus tonight/today since plane to paris 4 hours late
-<Karl> By the way, good choice. Youu are right, ICQ is PC oriented. Only advantage is seeing who is online
-<mdday> yeah, this is pretty good stuff
-<mdday> I'm on a call right now and may be a few minutes late to the pegasus call 12 est
-<mdday> karl - has the call started ?
-<Karl> OUr call is in a couple of hous, not 12. I HOPE
-<Karl> Just looked. It is a 1:00 pm cst or 2:00 est.
-<Karl> I am in another call now.
-<mdday> oops - your'e right. sorry
-<Karl> No problem. Been a long time since I used IRC and have to relearn
-<mdday> try /help
---> kumpf (~kumpfr@atlwebproxy1.core.hp.com) has joined #pegasus
-<mdday> what client are you using?
-<mdday> Hi Roger
-<kumpf> Hello!
-<kumpf> I actually got this thing to work!
-<mdday> right on
-<kumpf> I thought I was at an impasse, because I don't have a socks license on my Windows machine, and it didn't compile on HP-UX...
-<kumpf> But fortunately I was able to route through the HTTP proxy server and avoid socks.
-<mdday> nice job Roger
-<kumpf> Anyway, what's new?
-<mdday> starting to dice and slice the dispatcher
-<mdday> you know that Chip is out this week, right?
-<kumpf> Excellent! Hey, did you have time to put anything on paper regarding how the other modules need to change? We are anxious to start making the necessary code changes, but we're not sure we know enough.
-<kumpf> Nope, I had no idea Chip wouldn't be around. Or at least I forgot. That's a bummer.
-<mdday> I'm still working on the documentation. Should have it today. I apologize it is late. I anticipate the changes will be small to existing modules.
-<mdday> Chip's dad is critically ill and Chip is visiting him in Va. His Dad is 82 yrs. old.
-<kumpf> Oh, that's a shame.
-<mdday> Yup. He almost had to go visit the week before the Anahiem mtng. but His dad recovered temporarilly.
-<kumpf> Let's hope for another recovery.
-<kumpf> Hey, we dpm
-<kumpf> sorry...
-<kumpf> We don't need fancy documentation. Do you have anything half done we could look at?
-<mdday> I make sure we have something for the call today, not fancy. Hopefully enough to proceed.
-<kumpf> Cool.
-<kumpf> One other thing...Do we expect the modules in the "Communications" box (connection, encoder/decoder, authenticator) to need to change?
-<mdday> No, I don't anticipate they need to change.
-<kumpf> Great. Glad to hear it.
-<mdday> I figured that would be good.
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
-<kumpf> Yep. I'm trying to figure out what needs to happen with the authorizor. It needs to talk to the user/authorization manager, so it will have to use the new queueing stuff...
-<kumpf> But it also needs to send errors back up to the encoder, so it will have to do some things in the "old" style as well...
-<kumpf> I'm guessing that the "Communications" queues will not use the new message dispatcher, right?
-<mdday> I see. That will work.
-<mdday> Old style queues can talk to asynchronous queue. We should talk about how that could work today.
-<kumpf> What I don't know is if the Authorizor should use the new message dispatcher to talk to some other components, and then pass the message on to the operations processor, or whether the authorizer should actually become part of the operations processor. (The code in the authorization queue is quite small, because it is mostly contained in the extensible authorization utility code.)
-<kumpf> Yes, I would like to talk about that.
-<mdday> It would be cleaner for the authorizer to become part of the operations processor. But then would it be pluggable?
-<kumpf> Yes, because most of it is like utility code anyway...
-<kumpf> There is an interface that one may use to plug in their own authorization model. The stuff that's in the queue now just calls that.
-<kumpf> Which brings me to another point...
-<mdday> Great. That works out nicely. What's your other point?
-<kumpf> We have several things that need to be utility-like in that they need to be around really early in the start-up process, and several/many modules need to access them...
-<kumpf> An example is the (our) configuration manager. The CIM server uses it to determine which port to listen on, for example, and the configuration "service" (integrated with the control services function soon) needs to manage it dynamically.
-<mdday> I see. We need a start up order. Or we need a service (configuration ?) that ensures other services are started and available.
-<kumpf> Is there a concern with having these utiliy-like things floating around?
-<mdday> No, not at all. We just need to ensure dependencies don't become circular.
-<kumpf> Other examples are the user manager and the provider registration. Talking to these through messages all the time might be a kit if overhead.
-<kumpf> As for the start-up order, I think we're okay with how things work now. The CIM server code instantiates the "utility" portion and then gives the pointer to the "service" portion. So the timing is built in.
-<kumpf> Sorry...just read my previous post...I meant a "lot of" overhead.
-<mdday> I see. Utility modules I presume means that they implement helper functions and are called by other modules ; they don't initiate any activity.
-<kumpf> Yes, what I call a utility module does not directly instrument any schema.
-<kumpf> It may, however, be the "lower level resource" that the schema describes, which is actually instrumented by a control service or somesuch.
-<mdday> Then if it is thread safe it can export a directly called api no problem. However if a utility uses the message queue system there could be a deadlock.
-<kumpf> Right. I really should define my terms before I go around using them. What I call a utility also does NOT have a queue interface. It would always be a direct API call.
-<mdday> does a utility enqueue any messages on any message queue?
-<mdday> Or does it call the repository today?
-<kumpf> Nope.
-<kumpf> Hmmm...I think they do use the repository, come to think of it.
-<mdday> That's what I thought. If a queue-based module calls a utility, which then calls the repository through a queue, and the utility is _not_ queue based, there could be deadlock.
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
-<mdday> I understand what you need. It is no problem if the utility uses the meta dispatcher to talk to other asynchronous modules. There is very little overhead to do so.
-* mdday is away: working on docs
-<-- kumpf has quit (Client Exiting)
-* Karl is away: I'm busy
-* Karl is away: Another Call
-* Karl is back (gone 00:10:33)
---- Disconnected (Remote host closed socket).
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
-<mdday> proxy server dropping me
-* mdday is away: back to docs...
---> kumpf (~kumpfr@atlwebproxy2.core.hp.com) has joined #pegasus
-<Karl> hi
-<kumpf> Hey, what's up?
-* mdday is away: call starting?
-<mdday> Karl GET ON THE CALL :-)
-<Karl> Trying really hard. Everything busy
-* mdday is away: let's see if this changes a number
-* mdday is away: I guess not
-<Karl> Am on the call now finally
-<mdday> Hi karl
-
- Commands Available:
-
- ADDBUTTON ALLCHAN ALLSERV AWAY BAN
- UNBAN CLEAR CLOSE CTCP COUNTRY
- CYCLE DCC DELBUTTON DEHOP DEOP
- DEVOICE DISCON DNS ECHO EXEC
- EXECKILL EXECSTOP EXECCONT EXECWRITE FLUSHQ
- GATE HELP HOP IGNORE INVITE
- JOIN KICK KICKBAN LAGCHECK LASTLOG
- LIST LISTDLL LOAD LOADDLL MDEHOP
- MDEOP MKICK MKICKB ME MSG
- NAMES NCTCP NEWSERVER NICK NOTICE
- NOTIFY OP PART PING QUERY
- QUIT QUOTE RECONNECT RMDLL SAY
- SCPINFO SET SETTAB SERVCHAN SERVER
- TIMER TOPIC UNIGNORE UNLOADALL USERLIST
- WALLCHOP WALLCHAN VOICE
-
- Type /HELP <command> for more information, or /HELP -l
-
- User defined commands:
-
- ACTION ALIAS BANLIST CHAT DIALOG
- DMSG EXIT J KILL LEAVE
- M ONOTICE RAW SERVHELP SV
- UMODE UPTIME VER VERSION WALLOPS
- WII
- Usage:
- /AWAY [<reason>], sets you away
-* mdday is back (gone 00:16:17)
---> mk (~mk@host217-35-3-72.in-addr.btopenworld.com) has joined #pegasus
-<mdday> HI martin
-<mk> Just thought I'd exerience the full reality!!
-<mdday> welcome to groundhog day
-* mdday is away: I need to be away for 15 minutes
-<kumpf> Mike, do you have the script from our earlier discussion? Could you mail it to me? I seem to have lost it.
-<mdday> I have it and will save it
-<-- mk (~mk@host217-35-3-72.in-addr.btopenworld.com) has left #pegasus
-* kumpf is away: I'll be back in a couple hours
-<mdday> Karl you still there ?
-* mdday is back (gone 00:34:42)
-* mdday is away: I'm busy
-* mdday is back (gone 00:00:05)
-<mdday> Roger -the numbers and buttons above the user list are as follows:
-<Karl> mike. We finished but would like to talk to you about dispatcher, etc.
-<Karl> Cane do another call now??
-<mdday> OK
-<mdday> a green dot means the user is the channel operator
-<mdday> a yellow dot means the user can participate in a moderated channel
-<mdday> the number on the right is (as you guessed) the total number of users.
-<Karl> Lets use the TOG number
-<mdday> Karl - Call ok now, I'll call the TOG number.
-<Karl> I will play moderator so give me a minute.
-<mdday> let me know when you're on
-<mdday> Karl - is this the number ending in 8686 ?
-<Karl> I am on now with the Evoke number and the id 5807486
-<mdday> OK be right on
-<mdday> whoah you are breaking up !!
-<Karl> wonderful telephone
-<Karl> would you call me directly
-<Karl> I can hear you perfect but
-<Karl> WOuld you call me directly at 331 5382 4038
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
-<Karl> Will talk to you in the morning
-<mdday> Later !
-<Karl> I think I understand what we want in CIM Operation processor (old dispatcher)
-<-- Karl has quit (Client Exiting)
-* mdday is away: working on docs - watching for messages
-* kumpf is back (gone 01:49:18)
-<mdday> Hi Roger I saved the irc buffer and checked it in under Pegasus/docs/irc_logs
-<kumpf> Cool. Thanks.
-<mdday> I had another phone call with Karl and we sorted out the CIM Operation Processor (old dispatcher) work
-<mdday> We don't need to do too many changes for the meta dispatcher this week to the CIM Operation Processor.
-<kumpf> Glad to hear that.
-<mdday> Also, We agreed to leave the ProviderManager/Service Control stuff alone as long as possible and try to get your providers hooked in with no changes.
-<mdday> Hopefully Chip will be back but if not we will make the providers work as they are. Except we may need to finesse the calls into the repository.
-<kumpf> Do you mean no changes at the interface (provider API) level?
-<kumpf> Yes, I believe the calls to the repository are the only major issue at the "bottom" of those providers.
-<mdday> Right. My understanding has always been that the interfaces don't need to change. We may need to make some other code changes.
-<mdday> Of course, we will have the option of "upgrading" the interfaces but It should not be a dependency for what we are doing this week. And maybe we won't need to at all.
-<mdday> This is consistent with my converstations Chip and I hope I am not missing anything.
-<kumpf> Is the net effect that we are delaying work or avoiding work?
-<mdday> We are transferring work to the PRoviderManager and MessageQueueService to avoid rewriting providers.
-<kumpf> Denise is going to want to know how our decisions relate to the schedule, that's all.
-<mdday> Right. I think we are moving the dependency around Chip so we can keep working on the critical path.
-<kumpf> Sounds good.
-<mdday> I'll be sending you an html document within the hour. I hope it helps the team continue to work.
-<kumpf> My folks will be really happy to see that.
-<mdday> Hopefully they's still be happy after they see it :-). Later ...
-<kumpf> Thanks.
-* mdday is away: working on docs
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
-<mdday> Roger I checked the doc in under Pegasus/doc/MessageQueueService.html
-<mdday> It needs more work, which I will provide later.
-<mdday> Signing off - late for a personal appt. !!!
---- Disconnected ().
diff --git a/doc/irc_logs/02132002_irc.txt b/doc/irc_logs/02132002_irc.txt
deleted file mode 100644
index ffa6772..0000000
--- a/doc/irc_logs/02132002_irc.txt
+++ /dev/null
@@ -1,223 +0,0 @@
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc04.icq.com sets modes [#pegasus +nt]
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc04.icq.com sets modes [#pegasus +nt]
- Registered Scripts:
- Inbound Handlers:
- Command Handlers:
- Print Handlers:
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc05.icq.com sets modes [#pegasus +nt]
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc02.icq.com sets modes [#pegasus +nt]
---> barbp (~BARB039@atlrel2.hp.com) has joined #pegasus
-<barbp> Is there going to be a teleconference today? Barbara
-<-- barbp has quit (Client Exiting)
-* mdday is away: meeting
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc04.icq.com sets modes [#pegasus +nt]
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc04.icq.com sets modes [#pegasus +nt]
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc05.icq.com sets modes [#pegasus +nt]
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc03.icq.com sets modes [#pegasus +nt]
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc04.icq.com sets modes [#pegasus +nt]
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc05.icq.com sets modes [#pegasus +nt]
---- Disconnected (Remote host closed socket).
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
-<NIU> Mike...did you got a chance to look into mutex initialization problem?
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
-<mdday> yes - I'm on a phone call right now but I found an uninitialized cimom handle and fixed it.
-<mdday> I've amost got the cimop dispatcher to work asyncrhonously and we can use that as a template for getting the other services working.
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---> kumpf (~kumpfr@atlwebproxy1.core.hp.com) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
-<-- NIU has quit (Client Exiting)
---> barbp (~BARB039@palrel2.hp.com) has joined #pegasus
-<-- barbp has quit (Client Exiting)
-<mdday> Roger are you on the call?
-<mdday> oops - 1pm CENTRAL. dang.
-<kumpf> Right. That threw me at first, too.
-<mdday> Karl's email said "13:00" est
-<kumpf> It said "est" in the subject, and CENTRAL in the body.
-<mdday> Karl's "multitasking"
-<kumpf> I think he "multitasks" a lot.
-<mdday> He's a "multitasking" machine
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---> NIU (~NIU@cupwebproxy2.core.hp.com) has joined #pegasus
-<NIU> Mike... I know you are on call, but a question...?
-<mdday> not any more, go ahead
-<NIU> Do we need to change enqueue and handleEnqueue calls to SendWait in files like OpDispatcher, ExportDispatcher, IndicationService, Handler...?
-<NIU> or still we will be using handleEnqueue and queue->enqueue?
-<mdday> we're virtualizing enqueue, dequeue, and handleEnqueue to do that automatically. in MessageQueueService and derived classes we will have an intelligent version of these methods
-<NIU> Or all these services will communicate to meta-dispatcher with old fashion.
-<mdday> that will recognize messages that have an envelope. We put a protected backpointer in the Message class to refer to the AsyncLegacy envelope.
-<NIU> See UID 97 and 99. Will they also change? I don't see any reason to change.
-<NIU> How can I pass a request from one service to another? Who will take care of it? How will get target queue id?
-<mdday> This will get the cimom working today or tommorow (hopefully) without very many changes. Specifically, we won't need to change all the existing message handlers.
-<mdday> I will have the cimop dispatcher as an example later today.
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---> Karl (~karl@slip32-106-67-130.mlv.fr.prserv.net) has joined #pegasus
---> barbp (~BARB039@156.153.255.242) has joined #pegasus
-* kumpf is away: I'm busy
-* Karl is away: telecon 10 minutes
-<-- Karl has quit (Client Exiting)
-<-- barbp has quit (Client Exiting)
-<mdday> Roger - I have a build that is ready to test but I have a meeting to attend. Will update you.
-* mdday is away: mtng.
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
-* kumpf is back (gone 01:49:09)
-<kumpf> Mike, bring it on! Give me the word, and I'll pull down the bits and try them out.
-<mdday> Roger - I just ran test client to completion. I will check it in.
-<kumpf> Wow, you are amazing!
-<kumpf> Should I pull it down now?
-<mdday> It's checked in. Here's the scoop. I built and ran it on linux with tracing enabled. It uses SendWait in when communicating with the configuration manager queue.
-<mdday> everything works, the testclient runs just fine. I hope you can build it on windows. also, I have not tested it with no tracing, which is interesting because it changes the timing.
-<mdday> Yes, pull it down !
-<kumpf> Okay, it's going.
-<mdday> good luck - I'm late !
-<kumpf> Take off if you need to. I'll report back on the results. Thanks for doing all this!
-<mdday> ok - I just ran it twice with no tracing and it works just fine. later
---- Disconnected ().
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc03.icq.com sets modes [#pegasus +nt]
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc04.icq.com sets modes [#pegasus +nt]
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc05.icq.com sets modes [#pegasus +nt]
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc03.icq.com sets modes [#pegasus +nt]
---> Chip (~cvincent@129.33.49.201) has joined #pegasus
-<mdday> Hi Chip
-<Chip> Hello. Obviously I'm online now
-<mdday> Right. let me try something...
---- Offering DCC CHAT to chip
---- Chip is now known as cvincent
- Usage:
-
- /DCC GET <nick> - receive an offered file
- /DCC SEND <nick> <file> - send a file to someone
- /DCC LIST - show DCC list
- /DCC CHAT <nick> - offer DCC CHAT to someone
- /DCC CLOSE <type> <nick> <file> example:
- /dcc close send johnsmith file.tar.gz
-<-- cvincent has quit ()
---> kumpf (~kumpfr@atlwebproxy2.core.hp.com) has joined #pegasus
---> cvincent (~cvincent@129.33.49.201) has joined #pegasus
-<-- cvincent has quit (Remote closed the connection)
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---> cvincent (~cvincent@129.33.49.201) has joined #pegasus
-<-- cvincent has quit (Remote closed the connection)
---> cvincent (~cvincent@129.33.49.201) has joined #pegasus
-<-- cvincent has quit (Remote closed the connection)
---> cvincent (~cvincent@129.33.49.201) has joined #pegasus
-<kumpf> Are we having trouble staying connected?
-<cvincent> My client is flaky
-<kumpf> Mike's isn't all that consistent either. How do you proxy your connection?
-<-- cvincent has quit (Remote closed the connection)
---> cvincent (~cvincent@129.33.49.201) has joined #pegasus
-<cvincent> I'm using socks 5
-<kumpf> Have you tried using an HTTP proxy?
-<cvincent> Not yet, but we have one so I will try.
-<kumpf> It's worked great for me.
-<-- cvincent has quit ()
---> cvincent (~cvincent@129.33.49.201) has joined #pegasus
-<cvincent> I'm not trying the proxy... we'll see.
-<cvincent> I mean I AM using the proxy
-<kumpf> Looks good so far.
-<cvincent> FYI, I'm working on the provider entry point change and testing the provider registration.
-<kumpf> Sounds good. We changed a bunch of providers, and will check them in when you put that change in.
-<cvincent> I'll let you know when I'm done.
-<kumpf> Great, thanks.
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
-<mdday> I'm baaaaaack !!!
-<mdday> Chip are you using the http proxy?
-<-- cvincent has quit (Remote closed the connection)
-<mdday> I guess not!
-<mdday> our socks server closes the connection if there is no activity for ~ 40 seconds or so.
-<kumpf> Chip said he was using the HTTP proxy, and it seemed to be working for a while.
---> cvincent (~cvincent@ss8.bluebird.ibm.com) has joined #pegasus
-<mdday> but then it kicked him off. wait - he's back!
-<cvincent> Okay, the raleigh proxy is flaky
-<cvincent> I'm using a new one that may be more reliable
-<mdday> we'll see !
-<cvincent> Grrrr
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
-<mdday> yahoo.
---- Disconnected (Remote host closed socket).
---- Disconnected (Remote host closed socket).
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected ().
diff --git a/doc/irc_logs/02_062002_irc.txt b/doc/irc_logs/02_062002_irc.txt
deleted file mode 100644
index d670d40..0000000
--- a/doc/irc_logs/02_062002_irc.txt
+++ /dev/null
@@ -1,389 +0,0 @@
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc03.icq.com sets modes [#pegasus +nt]
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc05.icq.com sets modes [#pegasus +nt]
---- Disconnected (Remote host closed socket).
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc03.icq.com sets modes [#pegasus +nt]
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc04.icq.com sets modes [#pegasus +nt]
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc03.icq.com sets modes [#pegasus +nt]
---- Disconnected (Remote host closed socket).
---- Disconnected (Remote host closed socket).
---- Disconnected (Remote host closed socket).
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc04.icq.com sets modes [#pegasus +nt]
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc03.icq.com sets modes [#pegasus +nt]
---> BARB039 (~BARB039@palrel2.hp.com) has joined #pegasus
-<-- BARB039 has quit (Client Exiting)
---> Karl (~karl@slip32-106-67-49.mlv.fr.prserv.net) has joined #pegasus
-<-- Karl has quit (Ping timeout: 180 seconds)
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- irc03.icq.com sets modes [#pegasus +nt]
---> Karl (~karl@slip32-106-67-120.mlv.fr.prserv.net) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
-<mdday> Hi Karl
-<-- Karl has quit (Client Exiting)
---> NIU (~NIU@156.153.254.42) has joined #pegasus
-<NIU> Mike... are you there?
-<mdday> What's up ?
-<NIU> Yiur document is really great. I have some questions and what's the best time to ask?
-<mdday> Now is just fine
-<NIU> I am still confused about usage of CIMMessage with this new service. Where shall I use and build messages using this classes? How shall I send them?
-<NIU> 2. Do we need to derive all classes from MessageQueueService which earlier were derived from Messagequeue?
-<mdday> Oh, you have a question about _that_. It's not in the document :-).
-<mdday> There is a special message called AsyncLegacyOperation that is an envelope for CIMMessages and other existing messages.
-<NIU> I have not seen in document.
-<mdday> Tell you what. Give me 1/2 or so and I will add it to the document and send the updated doc to you. Then we can discuss it.
-<NIU> It will be great if you can document some like migration of a class derived from MessageQue to MessageQueueservice and then how to use the new class. Current document says that each service should have a client and server. It that true?
-<mdday> No, that's just the test program. The only requirement is that each message needs a request and a response. The most convenient way to do that in the test program was to make a client and a server.
-<mdday> In Pegasus services will be sending request/response message to each other.
-<NIU> 3. Got it. So we have to define new request and response messages from AsyncRequest and AsyncResponse? Then what should be in message field? Will you please elaborate this usage of this in document? Thanks!
-<mdday> Yes, I'll do that right now.
---> Karl (~karl@slip32-106-67-190.mlv.fr.prserv.net) has joined #pegasus
-<mdday> Hi Karl
-<Karl> hi
-<Karl> for some reason this has been a mess getting on today
-<mdday> my proxy has kicked me off a couple of times.
---- Offering DCC CHAT to karl
-<mdday> Karl did you see my chat request?
-<Karl> since I don't have a proxy, it was apparently the ICQ server for me
-<NIU> And last question:- like handleEnqueue, which calls the new class should implement?
-<Karl> Kicked me off after a few seconds regularly
-<Karl> did you get note with work list for cim operation processor?
-<NIU> Mike :- just give me a call once you will be ready with modified document. Thanks! & Bye...
-<mdday> Good question. They are messageOK, accept_async, ... ok Bye Nitin
-<mdday> Karl - yes I got the note
-<Karl> if you agree with the list now, I need to work with brasher on next level
-<Karl> and on the holes in the interface
-<Karl> meantime, right now, interop telecon. back in an hour.
-<mdday> I OK, see you.
-* Karl is away: Interop telecon for one hour
---> BARB039 (~BARB039@atlrel1.hp.com) has joined #Pegasus
-<-- BARB039 has quit (Client Exiting)
---> kumpf (~kumpfr@atlwebproxy1.core.hp.com) has joined #pegasus
---> Barbara (~BARB039@palrel1.hp.com) has joined #pegasus
-<-- Barbara has quit (Client Exiting)
-<-- NIU (~NIU@156.153.254.42) has left #pegasus
-* Karl is back (gone 00:17:00)
-<Karl> Mike Yes did receive your chat request earlier but when clicked it said failed
-<mdday> OK, just wondering
-<Karl> Roger, did you get note from me this morning about compile problem in consumer...
-<kumpf> Yeah, we're looking into it.
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---> NIU (~NIU@cupwebproxy2.core.hp.com) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
-<NIU> Are you there?
-<-- NIU has quit (Client Exiting)
-<Karl> this thing needs a bell. It goes behind the other windows and I forget it.
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
-<kumpf> Mike, do you have any new data on the Control Services function? Have you found any of Chip's work on that?
-<-- Karl has quit (Ping timeout: 180 seconds)
-* kumpf is away: I'm busy
-<mdday> Roger - I'll find out if he has code that is not checked in.
-<mdday> Also I will have the documentation for sending CIMMessages through the meta dispatcher before I leave today.
-<mdday> Nitin was asking about that function.
-<mdday> To enable a beep when receiving new messages settings:setup:IRC and click the checkbox Beep on Channel Messages
-* mdday is away: I'm busy
-<mdday> Roger - Chip's code is in $PEGASUS_HOME/src/Pegasus/_ProviderManager
---> NIU (~NIU@cupwebproxy1.core.hp.com) has joined #pegasus
-<mdday> But I'm not certain is that is what you are calling the control services function.
-<mdday> Hi Nitin, what is the Control Services function that Chip and Roger defined?
-<mdday> Is it a shell that loads/starts/stops services?
-<NIU> I think so.
-<NIU> I have some question to build request for meta-dispatcher.
-<mdday> OK go ahead
-<NIU> What is AsyncOpNode is Request block? Do we need to build that?
-<NIU> I modified your test program for send_test_request and can it be like this?
-<NIU> void MessageQueueClient::send_test_request(char *greeting, Uint32 qid)
-<NIU> {
-<NIU> String messageId = XmlWriter::getNextMessageId();
-<NIU> String url;
-<NIU> CIMInstance instance;
-<NIU> // Build Request
-<NIU> Message* request = new CIMExportIndicationRequestMessage(
-<NIU> messageId,
-<NIU> url,
-<NIU> instance,
-<NIU> QueueIdStack());
-<NIU> AsyncOpNode* op;
-<NIU> op->put_request(request);
-<NIU> test_request *req =
-<NIU> new test_request(Base::get_next_xid(),
-<NIU> op,
-<NIU> qid,
-<NIU> _queueId,
-<NIU> greeting);
-<NIU> AsyncMessage *response = SendWait(req);
-<NIU> if( response != 0 )
-<NIU> {
-<NIU> msg_count++;
-<NIU> delete response;
-<NIU> cout << " test message " << msg_count.value() << endl;
-<NIU> }
-<NIU> delete req;
-<NIU> delete request;
-<NIU> }
-<NIU> Is it valid operation : op->put_request(request)?
-<mdday> It is if you construct the op node first !! :-_
-<mdday> How did you read the file into the channel window?
-<NIU> so we have to construct op node before building AsyncRequest and then pass as one parameter.
-<NIU> I just paste my program block in cnahhel window.
-<mdday> Not necessarily. The SendWait API will do that for you. Let me get some code and past it into the window for you.
-<NIU> Thanks!
-<mdday> Message* cim_request = new CIMExportIndicationRequestMessage(
-<mdday> messageId,
-<mdday> url,
-<mdday> instance,
-<mdday> QueueIdStack());
-<mdday> AsyncOpNode *op = get_op();
-<mdday> AsyncLegacyOperationStart *async_request =
-<mdday> new AsyncLegacyOperationStart(get_next_xid(),
-<mdday> op,
-<mdday> destination_QID,
-<mdday> cim_request);
-<mdday> AsyncMessageResponse = SendWait(async_request);
-<mdday> Nitin did you see the code?
-<NIU> I just tried and say's Message* cannot be converted into char*. When I typecase cim_request, I got bus error.
-<mdday> OK, I'll add it to the test program for you. It's going to be a couple of hours though if that's OK.
-<mdday> Do you see how the async message is an envelope for the CIMMessage ?
-<NIU> Ok. Thanks! Yes, I saw that and now looking in more detail.
-<NIU> Bye ...!
-<-- NIU has quit (Client Exiting)
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
-* kumpf is back (gone 00:55:02)
-<kumpf> Mike, thanks for the pointer to Chip's code. That looks like his work in progress on the Provider Manager. The Control Services module is the thing that manages "internal" providers, such as for configuration, user/authorization management, provider reistration, etc.
-<kumpf> The idea is that these rarely used providers can share a service rather than each of them using the significant resources (threads) that a service requires.
-<kumpf> One tricky part, though, is how these providers interact with other parts of the system. They may need to interact with the repository, for instance. The provider registration provider needs to interact with the indication service. And the provider that handles CIMOM shutdown will be all over the place.
-<kumpf> So at the top end, the interface can stay the same (using the provider API). But the interactions with other services will need to use message queues.
-<kumpf> The Control Service module will need to be smart enough to convert incoming messages to provider calls, and route them to the correct provider.
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---- Disconnected (Remote host closed socket).
---> mdday (~mdday@129.33.49.202) has joined #pegasus
---> NIU (~NIU@cupwebproxy1.core.hp.com) has joined #pegasus
-<NIU> Mike...Sorry to interrupt you. Just one last question. I got everything done.
-<NIU> How to imterpret msg->getType() with CIM_* MESSAGES. I mean msg->getType() gives me value 68157440 and how shall I compare that for CIM_EXPORT_INDICATION_REQUEST_MESSAGE?
-<NIU> I got all other things going smoothly.
-<-- NIU has quit (irc02.icq.com irc05.icq.com)
-<mdday> Nitin - when you get back send me your code. That message type looks like something is wrong. I will look at your code to see if I can see my problem.
-<mdday> Roger - did you and Chip work out an interface for the control service or did you just discuss the requirements.
---> NIU (~NIU@cupwebproxy1.core.hp.com) has joined #pegasus
-<NIU> Mike - How to read AsyncLegacyOperationStart type request message from Server side? I am able to send from client byt get ignored by server. Which call needs to be implemented?
-<mdday> Hi Nitin. Sorry I was in talking with my boss. There are some virtual methods that you can override to receive the message.
-<mdday> These include messageOK, _handleIncomingOperation, and _handleAsyncRequest
-<mdday> If you look in the document I sent yesterday under "Handling Incoming Messages" you will see the calls.
-* mdday is away: stepping out for a bio-break
-<NIU> Message is not comming upto _handle_incoming_operation call.
-<NIU> not even at messageOK
-* mdday is back (gone 00:02:55)
-<mdday> OK, let me look at the service code and see what is going on. I'm impressed that you've got it working this far,
-<mdday> I was assuming that Chip and I would do all the message translation, etc.
-<NIU> I had send you a file, your test program where I am trying to use CIMExportIndicationRequestMessage and pass it to server.
-<mdday> email ?
-<NIU> Yah ...!
-<mdday> OK - I'll look for it!
-<NIU> Thanks ! meanwhile I will go and have some coffee. Do you want same over chat?
-<mdday> great :-)
-<NIU> I am back.
-<mdday> still no email message.
-<mdday> I have a question - would it be useful to add a destination queue ID for the "legacy" message
-<mdday> inside the AsyncLegacyOperationStart message ?
-<mdday> I think we need it, right now every message queue has a hardcoded destination queue but that might not always be true.
-<NIU> you are right. We should be able to configure destination queue, thogh hardcoded might be default.
-<mdday> Yup, I just added it. still no email message. I usually takes a while around here for email ...
-<NIU> We should get destination queue is by something like lookup() call.
-<NIU> how can I send file over this?
-<mdday> you can try /dcc send mdday
-<NIU> canyou get it now?
-<mdday> I got the dcc offer and I accepted it but the socks firewall would not allow the incoming connection.
-<mdday> Woudl you mind trying again ?
-<NIU> Shall I paste it here. It's only one function I modified from your test program.
-<mdday> OK - that's a good idea.
-<NIU> Here you go:
-<NIU> =======================
-<NIU> void MessageQueueClient::send_test_request(char *greeting, Uint32 qid)
-<NIU> {
-<NIU> String messageId = XmlWriter::getNextMessageId();
-<NIU> String url;
-<NIU> CIMInstance instance;
-<NIU>
-<NIU> Message* cim_request = new CIMExportIndicationRequestMessage(
-<NIU> messageId,
-<NIU> url,
-<NIU> instance,
-<NIU> QueueIdStack());
-<NIU> AsyncOpNode *op = get_op();
-<NIU>
-<NIU> AsyncLegacyOperationStart *async_request =
-<NIU> new AsyncLegacyOperationStart(get_next_xid(),
-<NIU> op,
-<NIU> _queueId,
-<NIU> cim_request);
-<NIU> AsyncMessage* response = SendWait(async_request);
-<NIU>
-<NIU> if( response != 0 )
-<NIU> {
-<NIU> msg_count++;
-<NIU> delete response;
-<NIU> cout << " test message " << msg_count.value() << endl;
-<NIU> }
-<NIU> delete async_request;
-<NIU> delete cim_request;
-<NIU> }
-<NIU> ===================END===================
-<NIU> This helped me to send message but not able to receive on Server side. _handle_incoming_operation() call never gets it.
-<NIU> void MessageQueueServer::_handle_incoming_operation(AsyncOpNode *operation)
-<NIU> {
-<NIU> cout << "Incoming operation : " << operation << endl;
-<NIU> if ( operation != 0 )
-<NIU> {
-<NIU> Message *rq = operation->get_request();
-<NIU> PEGASUS_ASSERT(rq != 0 );
-<NIU> PEGASUS_ASSERT(rq->getMask() & message_mask::ha_async );
-<NIU> PEGASUS_ASSERT(rq->getMask() & message_mask::ha_request);
-<NIU> _handle_async_request(static_cast<AsyncRequest *>(rq));
-<NIU> }
-<NIU>
-<NIU> return;
-<NIU>
-<NIU> }
-<NIU> =====
-<mdday> One thing I see is that you are sending the message to yourself.
-<NIU> above call never get the request send by send_test_request()
-<NIU> You mean _queueId?
-<mdday> The _queueId attribute is the _clients_ queueID and you want to send to the _server_
-<mdday> Yes, that's right.
-<NIU> How to get server _queueId? Is there any call for that?
-<mdday> I'm curious, do you return from SendWait?
-<mdday> Yes, if you notice in the test program the client thread looks for the server, I'll paste the code in the buffer.
-<NIU> Yes...! I am. This program works fine. Only serevr doesn't see any request message, only stop message.
-<mdday> very cool, you can send a blocking message to yourself !
-<mdday> while( services.size() == 0 )
-<mdday> {
-<mdday> q_client->find_services(String("test server"), 0, 0, &services);
-<mdday> my_handle->sleep(10);
-<mdday> }
-<mdday> note that services is Array<Uint32> services;
-<mdday> then to send to the server:
-<mdday> q_client->send_test_request("i am the test client" , services[0]);
-<NIU> Still same result. I am not able to get to server.
-<mdday> Is the server::messageOK method being called?
-<NIU> No.
-<mdday> puzzling. Let me see if I can get it to work on my system. sounds like a bug.
-<NIU> It sends message to server qid 2.
-<mdday> OK, that's usually the MessageQueueServer in the test program because it grabs the next available qid after the meta dispatcher.
-<mdday> Is that where you intended the message to go?
-<NIU> yes.
-<mdday> But you are not receiving the message?
-<NIU> That's again right.
-<mdday> Are you getting a NAK response?
-<NIU> I am able to send message from client to serevr 2.
-<NIU> I am.
-<NIU> actually, I am getting some response. How shall I check for response type?
-<mdday> Look at (AsyncReply *)->result, if it is 0x0000000f that is a NAK. 0 means OK
-<NIU> Test program prints this cout.
-<NIU> AsyncMessage* response = SendWait(async_request);
-<NIU> if( response != 0 )
-<NIU> {
-<NIU> msg_count++;
-<NIU> delete response;
-<NIU> cout << " test message " << msg_count.value() << endl;
-<NIU> }
-<NIU> delete async_request;
-<NIU> delete cim_request;
-<NIU> ====
-<mdday> change it to cout << "test message" << (static_cast<AsyncResponse *>(response))->result << endl;
-<NIU> It gives value 15
-<mdday> OK, that is a NAK, meaning that somene is rejecting the message. Can you paste in MessageQueueServer::messageOK >
-<NIU> ====
-<NIU> Boolean MessageQueueServer::messageOK(const Message *msg)
-<NIU> {
-<NIU> if(msg->getMask() & message_mask::ha_async)
-<NIU> {
-<NIU> if( msg->getType() == 0x04100000 ||
-<NIU> msg->getType() == async_messages::CIMSERVICE_STOP ||
-<NIU> msg->getType() == async_messages::CIMSERVICE_PAUSE ||
-<NIU> msg->getType() == async_messages::CIMSERVICE_RESUME )
-<NIU> return true;
-<NIU> }
-<NIU> return false;
-<NIU> }
-<NIU> ====
-<mdday> OK, add msg->getType() == async_messages::ASYNC_LEGACY_OP_START ||
-<mdday> this will allow the meta dispatcher to enqueue the AsyncLegacyOperationStart message on the test server's queue
-<NIU> messageOK returns true but not coming to imcoming_operation.
-<mdday> OK, just a second ...
-<mdday> Are you sure that MessageQueueServer::_handle_incoming_operation is not getting called?
-<mdday> the test program is confusing because there are two classes, MessageQueueClient::_handle_incoming_operation is there too.
-<NIU> Yes, I am sure that I am checking right one.
-<NIU> Do we need to implement accept_async()?
-<mdday> no, you don't have to. it should be OK. it seems like you are doing everything right.
-<mdday> let me work on this for a few minutes.
-<NIU> That's what I feel. Let me re-check everything again.
-<NIU> do we need to do some with Server constructor? those message_mask:: are too confusing and will need some documentation for that.
-<mdday> those are meant to be hidden from programmers. I need to document them. But you shouldn't need to worry about them.
-<NIU> Ok.
-<NIU> You know, I commented all cout and put one msg->print(cout) in messageOK of server and I got this:
-<NIU> [CIM_ENUMERATE_CLASS_NAMES_REQUEST_MESSAGE, 8]
-<NIU> [CIM_ENUMERATE_CLASS_NAMES_REQUEST_MESSAGE, 10]
-<NIU> [CIM_ENUMERATE_CLASS_NAMES_REQUEST_MESSAGE, 12]
-<NIU> [CIM_ENUMERATE_CLASS_NAMES_REQUEST_MESSAGE, 14]
-<NIU> [CIM_ENUMERATE_CLASS_NAMES_REQUEST_MESSAGE, 16]
-<NIU> [CIM_ENUMERATE_CLASS_NAMES_REQUEST_MESSAGE, 18]
-<NIU> [CIM_ENUMERATE_CLASS_NAMES_REQUEST_MESSAGE, 20]
-<NIU> [CIM_ENUMERATE_CLASS_NAMES_REQUEST_MESSAGE, 22]
-<NIU> [CIM_ENUMERATE_CLASS_NAMES_REQUEST_MESSAGE, 24]
-<NIU> [CIM_ENUMERATE_CLASS_NAMES_REQUEST_MESSAGE, 26]
-<NIU> [CIM_CREATE_CLASS_REQUEST_MESSAGE, 27]
-<NIU> [CIM_CREATE_CLASS_REQUEST_MESSAGE, 29]
-<NIU> [CIM_CREATE_CLASS_REQUEST_MESSAGE, 31]
-<NIU> exiting server
-<mdday> Nitin - my test program works with the legacy message now. would you like me to check it in ?
-<NIU> Pl go ahead. Thanks!
-<mdday> OK, look for MessageQueueServier::handle_LegacyOpStart, that's the handler for the test server .
-<mdday> OK, checked in. make sure and refresh the common directory as well as common/tests/MessageQueueService. It works!
-<mdday> Nitin, can you get a message to Roger for me?
-<NIU> go ahead.
-<NIU> I just refreshed my view and will look into it.
-<NIU> I hope it should work now.
-<mdday> Have roger make a short list of requirements for the control service and I will work on a class definition in the morning so we can have something before the phone call.
-<NIU> I just told him.
-<NIU> Anything else I can do for you?
-<mdday> If the test program does hang it may be a timing issue with the pause/resume messages I put in. just take those out.
-<NIU> Will you be around or leaving. It might be late for you.
-<NIU> I will take care.
-<mdday> I'm going to go home now :-). Bye and thanks for being patient.
---- Disconnected ().
diff --git a/doc/iterator_example.txt b/doc/iterator_example.txt
deleted file mode 100644
index e5ab4b3..0000000
--- a/doc/iterator_example.txt
+++ /dev/null
@@ -1,47 +0,0 @@
- Iterator "Study"
-
-
- -------------------------------------------------------------------------
- Prsent Scheme
- -------------------------------------------------------------------------
-
- CIMClass c;
-
- for (Uint32 i = 0; i < c.getNuProperties(); i++)
- {
- CIMProperty p = c.getProperty(i);
- }
-
- -------------------------------------------------------------------------
- Scheme #1 (dependent iterator)
- -------------------------------------------------------------------------
-
- CIMClass c;
-
- for (CIMProperty::Iterator i = c.firstProperty(); c.more(i); c.next(i))
- {
- CIMProperty p = i.current(i);
- }
-
- -------------------------------------------------------------------------
- Scheme #2 (independent iterator)
- -------------------------------------------------------------------------
-
- CIMClass c;
-
- for (CIMClass::Iterator i = c.getProperties(); i.more(); i.next())
- {
- Property p = i.current();
- }
-
- -------------------------------------------------------------------------
- Scheme #3 (independent iterator with operator overloading trickery)
- -------------------------------------------------------------------------
-
- CIMClass c;
-
- for (CIMClass::Iterator i = c.getProperties(); i; i++)
- {
- Property p = *i;
- }
-
diff --git a/doc/questions.txt b/doc/questions.txt
deleted file mode 100644
index 2331155..0000000
--- a/doc/questions.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-
- 1. May associations span namespaces? And if so, how can one
- make sense of references referring to object names with no
- namespace. And since the CIM operation specifies a target
- namespace anyhow, what is the target namespace for? Is it
- the namespace to place the new association in on a
- createInstance().
-
- If associations can span namespaces, should the association name
- in the association file contain a namespace?
diff --git a/doc/tidbits.txt b/doc/tidbits.txt
deleted file mode 100644
index 99bc728..0000000
--- a/doc/tidbits.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
- 1. To reindent you code in MSVC IDE just type Ctrl-A and then Alt-F8.
-
- 2. The provider loading system uses RTDL_NOW in dlopen(). In previous version of Pegasus this
- behavior was affected also by the RTDL_GLOBAL flag - which is now deprecated.
-
diff --git a/doc/todo.txt b/doc/todo.txt
deleted file mode 100644
index f1813e1..0000000
--- a/doc/todo.txt
+++ /dev/null
@@ -1,262 +0,0 @@
-
- - Need meta-client API.
-
- - Do we need strings to represent NULL and empty (what if the standard
- adds something where a string parameter can be null distinguished from
- an empty value).
-
- - Expose repository inheritance tree.
-
- - Look at not passing HTTP header to CIM request decoder queue.
-
- - Propagate message key for all messages pertaining to a particular
- request.
-
- - Run Purify on all sources (port to Sun first).
-
- - Rework Pegasus to use asynchronous I/O.
-
- - Finalize export client/server:
-
- - Covert GetClass operation to DeliverIndication operation.
-
- - Rework export-client to asynchronously process responses
- (instead of the RPC style used now).
-
- - Need meta-export-client (with connection management).
-
- - Implement disconnect() logic.
-
- - Remove keys from messages?
-
- - Get rid of unused source code (dealing with channels and TCP).
-
- - Rethink the useage of queue-ids in messages and how requests and
- responses are matched up. Queue-ids are only used on the server
- side. Perhaps a more general mechanism can be found.
-
- - Fix bug in which the messageId is calculated inside the XmlWriter.
- It should be calculated by the caller.
-
- - Delete CIMOperations.h.
-
- - Get rid of message keys? They don't seem to be used.
-
- - Fix bug in src/Pegasus/Client/tests/Client in which associators()
- fails and says class does not exist (seems to happen in debug mode
- only). Disappears when I/O is enabled.
-
- - Replace old headers with new ones (co-ordinate with team).
-
- - Get rid of usage of System (use since it
-
- - Migrate to use of Linkage.h files.
-
- - Document that lex and yacc are no longer a requirement to build
- Pegasus.
-
- - Figure out how to handle very large CIM respones and possibly
- requests too.
-
- - Integrate client/server tests into make system somehow.
-
- - Note that it is possible to remove an class and still have association
- classes which refer to it.
-
- - Class inheritance not taken into consideration when resolving the
- AssocClass
-
- - It seems that associatios() will fail when AssocClass is a super
- class of the class which is in the association instance table.
-
- - Should there be a single associations table for the entire repository
- or should there be one per namespace as there is now?
-
- - If it is the case that a reference may only refer to an instance,
- then we must derive new types for representing object paths.
-
- - Many CIM operations interfaces are incorrect: GetInstance() for example
- takes a namespace and a CIMReference (which also may contain the
- namespace). According to the standard, it should take an "InstanceName".
-
- - Need way of signaling the cimserver so that it will reload the
- class inheritance table (after a MOF compile).
-
- - Revisit use of namespace v.s. objectName in all CIM operations.
-
- - What do we do when getInstance() is called and the nameSpace is
- provided both as an argument and as part of the instance name?
-
- - ReferenceNames should return classes not just instances?
-
- - Remove final const from const methods in non-const CIM element classes.
-
- - Null vs. empty CIM/HTTP parameters.
-
- - Resolve constness problems. (get rid or Const classes?)
-
- - Change CIMReference to CIMObjectPath?
-
- - Finish associations.
-
- - Provide CIMOM Context.
-
- - Complete conventions document.
-
- - The CIMServer.exe program should probably create the logs directory
- under PEGASUS_HOME.
-
- - Clean up exceptions.
-
- - Resolve redundancy in which the namespace is passed to certain methods
- (getClass) and the CIMReference itself may contain a namespace arguent.
-
- - Implement consistency and constraint checking on classes and instances.
-
- - Implement filtering (using includeQualifiers, localOnly, etc.)
-
- - Consider eliminating const CIM element classes.
-
- - Support for NULL property lists (in interface and protocol).
-
- - Rename tests (prepend "Test" to each test).
-
- - Fix bug with cimserver.exe causing it to fail to start without te
- "-l" option.
-
- - Resolve whether the backslash should be permitted in namespaces.
-
- - Create CIMOMContext (interface to CIMOM used b the provider).
-
- - Define Encoding module interface.
-
- - Develop XMLEncodings module.
-
- - Develop BinaryEncodings module.
-
- - Develop MOFEncodings module.
-
- - Employ BinaryEncodings module in repository (reduce disk usage).
-
- - Combine repository instances, classes, and qualifiers into their
- respective files (to reduce the number of files).
-
- - Employ an efficient indexing scheme in repository (B-trees or hashing).
-
- - Develop module manager: interface, lookup scheme, and loading scheme.
-
- - Package Encodings classes as a module.
-
- - Finalize repository assocations.
-
- - Add association CIM/HTTP operations.
-
- - Design association provider infrastructure.
-
- - Implement missing CIM protocol operations.
-
- - Implement good observer module interface which allows different levels:
-
- - Observation of client/CIMMOM connections/disconnection.
-
- - Observation of client/CIMOM communication.
-
- - Observation of CIMOM/repository communication.
-
- - Observation of CIMOM/provider communication.
-
- - Observation of CIMOM state transitions.
-
- - Pegasus providers for Sun WBEM Services.
-
- - Pegasus providers for WMI.
-
- - Sun WBEM Services providers for Pegasus.
-
- - CIM/HTTP Proxy for WMI.
-
- - Web Server/Pegasus Integration (use HTTP protocol capabilities of
- web server rather than Pegasus).
-
- - Add CIMRepository::namespaceExists() method.
-
- - Change HTTP message id's to this format: "YYYY.MM.DD.HH.MM.SS.NNNNN".
-
- - GetInstances() and GetClasses() need to use iterators on
- provider and repository end. Otherwise, all classes or instance
- to be enumerated, must be sucked into memory.
-
- - Template bloat reduction.
-
- - Need a tool to say which features are supported by a compiler.
-
- - Support unloading of dynamic libraries (presently only load() is
- supported).
-
- - Clean up and consolidate exception classes.
-
- - Asynchronous socket writes in the CIMOM (need write enabled flags).
-
- - Handle PARAMETER.REFARRAY in Procotol?
-
- - Implemented stream oriented XML parsing.
-
- - Ignore extraneous XML elements (implement "loose validation" concept).
-
- - Add methods to get objects by their names, in addition to index. For
- example:
-
- CIMProperty CIMClass::getProperty(const String& name);
-
- - Distinguish between private and public classes (otherwise, users may
- come to depend on classes with unstable interfaces).
-
- - Walk through all code to expose consistency/aesthetic issues.
-
- - Provide ACE Channel implementation (for porting purposes)?
-
- - Expand datatime (setCurrentTime() and comparison and increment
- functions).
-
- - Write Pegasus Architecture Paper.
-
- - Implement MOF provider registration scheme (according to the
- standard).
-
- - WBEM Query Language and integration.
-
- - Threading
-
- - Package up pegasus in Install Shield application.
-
- - Internationalization: Handle UCS2 characters in XML
- (parsing and writing).
-
- - Export of repository to MOF.
-
- - Change CompareNoCase() to String::compareNoCase().
-
- - Figure out how to handle CIM NULL values.
-
- - Figure out how inheritance of keys works.
-
- - Investigage weak associations.
-
- - Enforce constraint qualifiers.
-
- - Disallow resetting size of fixed length arrays.
-
- - Shrink object sizes.
-
- - Use lighter I/O system (than C++ streams).
-
- - Optimize clear method on arrays (to not release memory).
-
- - Provide conversions between DateTime and time_t.
-
- - Port to Solaris
-
- - Support multiple providers of the extact same class.
- DiskController example and LanController.
-
- - SLP - Eliminate lib directory.