Changeset 6b690bf in nscp for NSClient++.cpp
- Timestamp:
- 02/03/08 17:15:14 (5 years ago)
- Branches:
- master, 0.4.0, 0.4.1, 0.4.2, stable
- Children:
- b5ef837
- Parents:
- 8b206ee
- File:
-
- 1 edited
-
NSClient++.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
NSClient++.cpp
r5ca3931 r6b690bf 412 412 } 413 413 414 415 std::wstring NSClientT::describeCommand(std::wstring command) { 416 ReadLock readLock(&m_mutexRWcmdDescriptions, true, 5000); 417 if (!readLock.IsLocked()) { 418 LOG_ERROR(_T("FATAL ERROR: Could not get read-mutex when trying to get command list.")); 419 return _T("Failed to get mutex when describing command: ") + command; 420 } 421 cmdMap::const_iterator cit = cmdDescriptions_.find(command); 422 if (cit == cmdDescriptions_.end()) 423 return _T("Command not found: ") + command + _T(", maybe it has not been register?"); 424 return (*cit).second; 425 } 426 std::list<std::wstring> NSClientT::getAllCommandNames() { 427 std::list<std::wstring> lst; 428 ReadLock readLock(&m_mutexRWcmdDescriptions, true, 5000); 429 if (!readLock.IsLocked()) { 430 LOG_ERROR(_T("FATAL ERROR: Could not get read-mutex when trying to get command list.")); 431 return lst; 432 } 433 for (cmdMap::const_iterator cit = cmdDescriptions_.begin(); cit != cmdDescriptions_.end(); ++cit) { 434 lst.push_back((*cit).first); 435 } 436 return lst; 437 } 438 void NSClientT::registerCommand(std::wstring cmd, std::wstring desc) { 439 WriteLock writeLock(&m_mutexRWcmdDescriptions, true, 10000); 440 if (!writeLock.IsLocked()) { 441 LOG_ERROR_STD(_T("FATAL ERROR: Failed to describe command:") + cmd); 442 return; 443 } 444 cmdDescriptions_[cmd] = desc; 445 } 446 414 447 NSCAPI::nagiosReturn NSClientT::inject(std::wstring command, std::wstring arguments, TCHAR splitter, bool escape, std::wstring &msg, std::wstring & perf) { 415 448 unsigned int aLen = 0; … … 773 806 NSCAPI::errorReturn NSAPIRehash(int flag) { 774 807 return NSCAPI::hasFailed; 808 } 809 NSCAPI::errorReturn NSAPIDescribeCommand(const TCHAR* command, TCHAR* buffer, unsigned int bufLen) { 810 return NSCHelper::wrapReturnString(buffer, bufLen, mainClient.describeCommand(command), NSCAPI::isSuccess); 811 } 812 NSCAPI::errorReturn NSAPIGetAllCommandNames(arrayBuffer::arrayBuffer* aBuffer, unsigned int *bufLen) { 813 unsigned int len = 0; 814 *aBuffer = arrayBuffer::list2arrayBuffer(mainClient.getAllCommandNames(), len); 815 *bufLen = len; 816 return NSCAPI::isSuccess; 817 } 818 NSCAPI::errorReturn NSAPIReleaseAllCommandNamessBuffer(TCHAR*** aBuffer, unsigned int * bufLen) { 819 arrayBuffer::destroyArrayBuffer(*aBuffer, *bufLen); 820 *bufLen = 0; 821 *aBuffer = NULL; 822 return NSCAPI::isSuccess; 823 } 824 NSCAPI::errorReturn NSAPIRegisterCommand(const TCHAR* cmd,const TCHAR* desc) { 825 mainClient.registerCommand(cmd, desc); 826 return NSCAPI::isSuccess; 775 827 } 776 828 … … 813 865 if (_wcsicmp(buffer, _T("NSAPIRehash")) == 0) 814 866 return &NSAPIRehash; 867 if (_wcsicmp(buffer, _T("NSAPIDescribeCommand")) == 0) 868 return &NSAPIDescribeCommand; 869 if (_wcsicmp(buffer, _T("NSAPIGetAllCommandNames")) == 0) 870 return &NSAPIGetAllCommandNames; 871 if (_wcsicmp(buffer, _T("NSAPIReleaseAllCommandNamessBuffer")) == 0) 872 return &NSAPIReleaseAllCommandNamessBuffer; 873 if (_wcsicmp(buffer, _T("NSAPIRegisterCommand")) == 0) 874 return &NSAPIRegisterCommand; 875 815 876 return NULL; 816 877 }
Note: See TracChangeset
for help on using the changeset viewer.








