Rudiments
/home/dmuse/src/rudiments/include/rudiments/protocolentry.h
00001 // Copyright (c) 2002 David Muse
00002 // See the COPYING file for more information.
00003 
00004 #ifndef RUDIMENTS_PROTOCOLENTRY_H
00005 #define RUDIMENTS_PROTOCOLENTRY_H
00006 
00007 #include <rudiments/private/protocolentryincludes.h>
00008 
00009 #ifdef RUDIMENTS_NAMESPACE
00010 namespace rudiments {
00011 #endif
00012 
00013 class protocolentryprivate;
00014 
00017 class RUDIMENTS_DLLSPEC protocolentry {
00018         public:
00019 
00026                 static  bool    getAliasList(const char *protocolname,
00027                                                 char ***aliaslist);
00028 
00031                 static  bool    getNumber(const char *protocolname,
00032                                                 int32_t *number);
00033 
00036                 static  bool    getName(int32_t number, char **name);
00037 
00045                 static  bool    getAliasList(int32_t number, char ***aliaslist);
00046 
00047 
00049                 protocolentry();
00050 
00053                 protocolentry(const protocolentry &p);
00054 
00057                 protocolentry   &operator=(const protocolentry &p);
00058 
00060                 ~protocolentry();
00061 
00064                 bool    initialize(const char *protocolname);
00065 
00068                 bool    initialize(int32_t number);
00069 
00071                 const char              *getName() const;
00072 
00075                 const char * const      *getAliasList() const;
00076 
00078                 int32_t                 getNumber() const;
00079 
00081                 void    print() const;
00082 
00085                 static  bool    needsMutex();
00086 
00090                 static  void    setMutex(mutex *mtx);
00091 
00092         #include <rudiments/private/protocolentry.h>
00093 };
00094 
00095 #ifdef RUDIMENTS_NAMESPACE
00096 }
00097 #endif
00098 
00099 #endif