FXEX Namespace Reference


Detailed Description

FXEX is the namespace encapsulating the FOXEX library, in a similar vein to the FOX namespace. This should not affect you too much, since if you dont explicately define FX_NO_GLOBAL_NAMESPACE, the FXEX namespace automatically imported when you include <fxex/fxex.h>.


Data Structures

class  FXBaseObject
class  FXLCDLabel
class  FXSevenSegment
class  FXThreadEvent

Namespaces

namespace  FXUtils

Typedefs

typedef void * FXDLLHandle
typedef FXint FXIOState
 IO state definitions.
typedef FXint FXIOStatus
 IO status definitions.
typedef void * FXThreadCondition
typedef FXInputHandle * FXThreadEventHandle
typedef void * FXThreadHandle
typedef void * FXThreadMutex
typedef void * FXThreadSemaphore

Enumerations

enum  {
  SEL_DATA = FX::SEL_LAST, SEL_THREAD, SEL_WAITABLE_WAIT, SEL_WAITABLE_ACTIVATE,
  SEL_INTERLOCK, SEL_BARRIER_LOCK, SEL_BARRIER_UNLOCK, SEL_INPUT,
  SEL_OUTPUT, SEL_ERROR, SEL_IO, SEL_IO_CONNECT,
  SEL_EVENT, SEL_BEGIN, SEL_END, SEL_TAG,
  SEL_CONTENT, SEL_REGISTRY, SEL_LASTEX, SEL_THREAD_EVENT
}
enum  {
  FXIOStatusUnknown = -2, FXIOStatusError = -1, FXIOStatusOk = 0, FXIOStatusOK = 0,
  FXIOStatusLast
}
enum  {
  FXIOStateUnknown = -1, FXIOStateNone = -1, FXIOStateOk = 0, FXIOStateOK = 0,
  FXIOStateUnconnected, FXIOStateConnected, FXIOStateOpen = FXIOStateConnected, FXIOStateListener,
  FXIOStateAccepted, FXIOStateDuplicated, FXIOStateLast
}
enum  { LCDLABEL_NORMAL = FRAME_SUNKEN|FRAME_THICK, LCDLABEL_LEADING_ZEROS = 0x01000000 }
 LCD Label styles. More...
enum  FXFilePermission {
  FILEPERM_NONE = 0, FILEPERM_USER_READ = 0x00000001, FILEPERM_USER_WRITE = 0x00000002, FILEPERM_USER_EXEC = 0X00000004,
  FILEPERM_GROUP_READ = 0x00000010, FILEPERM_GROUP_WRITE = 0x00000020, FILEPERM_GROUP_EXEC = 0x00000040, FILEPERM_OTHER_READ = 0x00000100,
  FILEPERM_OTHER_WRITE = 0x00000200, FILEPERM_OTHER_EXEC = 0x00000400, FILEPERM_READ = 0x00000111, FILEPERM_WRITE = 0x00000222,
  FILEPERM_EXEC = 0x00000444, FILEPERM_ALL = 0x00000777, FILEPERM_SET_UID = 0x00001000, FILEPERM_SET_GID = 0x00002000,
  FILEPERM_STICKY = 0x00004000, FILEPERM_SECURE_IO = FILEPERM_USER_READ|FILEPERM_USER_WRITE, FILEPERM_DEFAULT_IO = FILEPERM_READ|FILEPERM_USER_WRITE|FILEPERM_GROUP_WRITE, FILEPERM_DEFAULT_EXEC = FILEPERM_READ|FILEPERM_USER_WRITE|FILEPERM_GROUP_WRITE|FILEPERM_EXEC
}
enum  FXSocketFamily {
  FXSocketFamilyNone = 0, FXSocketFamilyLocal, FXSocketFamilyInet, FXSocketFamilyInet6,
  FXSocketFamilyAutomatic, FXSocketFamilyUnix = FXSocketFamilyLocal
}
 Socket families. More...
enum  FXSocketType {
  FXSocketTypeNone = 0, FXSocketTypeStream, FXSocketTypeTCP = FXSocketTypeStream, FXSocketTypeDatagram,
  FXSocketTypeUDP = FXSocketTypeDatagram
}
 Socket types. More...

Functions

 FXDEFMAP (FXThreadEvent) FXThreadEventMap[]
 FXDEFMAP (FXSevenSegment) FXSevenSegmentMap[]
 FXDEFMAP (FXLCDLabel) FXLCDLabelMap[]
 FXDEFMAP (FXBaseObject) FXBaseObjectMap[]
 FXIMPLEMENT (FXThreadEvent, FXBaseObject, FXThreadEventMap, ARRAYNUMBER(FXThreadEventMap)) FXThreadEvent
 FXIMPLEMENT (FXSevenSegment, FXFrame, FXSevenSegmentMap, ARRAYNUMBER(FXSevenSegmentMap)) FXSevenSegment
 FXIMPLEMENT (FXLCDLabel, FXHorizontalFrame, FXLCDLabelMap, ARRAYNUMBER(FXLCDLabelMap)) FXLCDLabel
 FXIMPLEMENT (FXBaseObject, FXObject, FXBaseObjectMap, ARRAYNUMBER(FXBaseObjectMap)) FXBaseObject


Typedef Documentation

typedef void* FXEX::FXDLLHandle

Definition at line 317 of file fxexdefs.h.

typedef FXint FXEX::FXIOState

IO state definitions.

Definition at line 215 of file fxexdefs.h.

typedef FXint FXEX::FXIOStatus

IO status definitions.

Definition at line 193 of file fxexdefs.h.

typedef void* FXEX::FXThreadCondition

Definition at line 302 of file fxexdefs.h.

typedef FXInputHandle* FXEX::FXThreadEventHandle

Definition at line 304 of file fxexdefs.h.

typedef void* FXEX::FXThreadHandle

Definition at line 300 of file fxexdefs.h.

typedef void* FXEX::FXThreadMutex

Definition at line 301 of file fxexdefs.h.

typedef void* FXEX::FXThreadSemaphore

Definition at line 303 of file fxexdefs.h.


Enumeration Type Documentation

anonymous enum

Enumerator:
SEL_DATA 
SEL_THREAD 
SEL_WAITABLE_WAIT 
SEL_WAITABLE_ACTIVATE 
SEL_INTERLOCK 
SEL_BARRIER_LOCK 
SEL_BARRIER_UNLOCK 
SEL_INPUT 
SEL_OUTPUT 
SEL_ERROR 
SEL_IO 
SEL_IO_CONNECT 
SEL_EVENT 
SEL_BEGIN 
SEL_END 
SEL_TAG 
SEL_CONTENT 
SEL_REGISTRY 
SEL_LASTEX 
SEL_THREAD_EVENT 

Definition at line 168 of file fxexdefs.h.

00168      {
00169     SEL_DATA=FX::SEL_LAST,      // form of data as an event
00170     SEL_THREAD,                 // thread/runnable events
00171     SEL_WAITABLE_WAIT,          // waitable event such as a Condition variable, semaphore, etc
00172     SEL_WAITABLE_ACTIVATE,      // waitable event such as a Condition variable, semaphore, etc
00173     SEL_INTERLOCK,              // interlocked event; object went into lock
00174     SEL_BARRIER_LOCK,           // barrier event; thread waiting in barrier lock
00175     SEL_BARRIER_UNLOCK,         // barrier event; barrier object reset, threads released
00176     SEL_INPUT,                  // some type of input event
00177     SEL_OUTPUT,                 // some type of output event
00178     SEL_ERROR,                  // some type of error event
00179     SEL_IO,                     // Some form of IO
00180     SEL_IO_CONNECT,             // Connection event
00181     SEL_EVENT,                  // a generic event
00182     SEL_BEGIN,                  // en event defining some begining
00183     SEL_END,                    // an event defining some ending
00184     SEL_TAG,                    // tag event
00185     SEL_CONTENT,                // content event
00186     SEL_REGISTRY,               // a registry event (TODO I have a plan for this...)
00187     SEL_LASTEX,// Last message
00188     SEL_THREAD_EVENT
00189 };

anonymous enum

Enumerator:
FXIOStatusUnknown 
FXIOStatusError 
FXIOStatusOk 
FXIOStatusOK 
FXIOStatusLast 

Definition at line 194 of file fxexdefs.h.

00194      {
00195     FXIOStatusUnknown=-2,
00196     FXIOStatusError=-1,
00197     FXIOStatusOk=0,
00198     FXIOStatusOK=0,
00199     FXIOStatusLast
00200 };

anonymous enum

Enumerator:
FXIOStateUnknown 
FXIOStateNone 
FXIOStateOk 
FXIOStateOK 
FXIOStateUnconnected 
FXIOStateConnected 
FXIOStateOpen 
FXIOStateListener 
FXIOStateAccepted 
FXIOStateDuplicated 
FXIOStateLast 

Definition at line 216 of file fxexdefs.h.

00216      {
00217     FXIOStateUnknown=-1,
00218     FXIOStateNone=-1,
00219     FXIOStateOk=0,
00220     FXIOStateOK=0,
00221     FXIOStateUnconnected,
00222     FXIOStateConnected,
00223     FXIOStateOpen=FXIOStateConnected,
00224     FXIOStateListener,
00225     FXIOStateAccepted,
00226     FXIOStateDuplicated,
00227     FXIOStateLast
00228 };

anonymous enum

LCD Label styles.

Enumerator:
LCDLABEL_NORMAL 
LCDLABEL_LEADING_ZEROS 

Definition at line 44 of file FXLCDLabel.h.

00044      {
00045     LCDLABEL_NORMAL        = FRAME_SUNKEN|FRAME_THICK,
00046     LCDLABEL_LEADING_ZEROS = 0x01000000    
00047 };

File permissions:

Use these with fxfilemode to set platform specific mode flags. For example:

FXFileIO fileio(getApp(),"somefile.txt"); ... fileio->mode(FXUtils::fxfilemode(FILEPERM_DEFAULT_IO));

or:

FXFile::mode("file.txt",FXUtils::fxfilemode(FILEPERM_DEFAULT_IO));

or:

FXuint mode=FXFilemode("file.txt"); if (mode & FILEPERM_READ) {...}

Enumerator:
FILEPERM_NONE 
FILEPERM_USER_READ 
FILEPERM_USER_WRITE 
FILEPERM_USER_EXEC 
FILEPERM_GROUP_READ 
FILEPERM_GROUP_WRITE 
FILEPERM_GROUP_EXEC 
FILEPERM_OTHER_READ 
FILEPERM_OTHER_WRITE 
FILEPERM_OTHER_EXEC 
FILEPERM_READ 
FILEPERM_WRITE 
FILEPERM_EXEC 
FILEPERM_ALL 
FILEPERM_SET_UID 
FILEPERM_SET_GID 
FILEPERM_STICKY 
FILEPERM_SECURE_IO 
FILEPERM_DEFAULT_IO 
FILEPERM_DEFAULT_EXEC 

Definition at line 274 of file fxexdefs.h.

00274                       {
00275     FILEPERM_NONE         = 0,            // file has no permissions
00276     FILEPERM_USER_READ    = 0x00000001,   // user can read from file
00277     FILEPERM_USER_WRITE   = 0x00000002,   // user can write to file
00278     FILEPERM_USER_EXEC    = 0X00000004,   // user can execute file
00279     FILEPERM_GROUP_READ   = 0x00000010,   // group can read from file
00280     FILEPERM_GROUP_WRITE  = 0x00000020,   // group can write to file
00281     FILEPERM_GROUP_EXEC   = 0x00000040,   // group can execute the file
00282     FILEPERM_OTHER_READ   = 0x00000100,   // everybody can read from file
00283     FILEPERM_OTHER_WRITE  = 0x00000200,   // everybody can write to file
00284     FILEPERM_OTHER_EXEC   = 0x00000400,   // everybody can execute the file
00285     FILEPERM_READ         = 0x00000111,   // file read mask; set all read permissions
00286     FILEPERM_WRITE        = 0x00000222,   // file write mask; set all write permissions
00287     FILEPERM_EXEC         = 0x00000444,   // file execute mask; set all execute permissions
00288     FILEPERM_ALL          = 0x00000777,   // permissions mask; set all permissions
00289     FILEPERM_SET_UID      = 0x00001000,   // set the UID permission
00290     FILEPERM_SET_GID      = 0x00002000,   // set the GID permisssion
00291     FILEPERM_STICKY       = 0x00004000,   // set the STICKY permission
00292     FILEPERM_SECURE_IO    = FILEPERM_USER_READ|FILEPERM_USER_WRITE, // permissions suitable for single user IO access
00293     FILEPERM_DEFAULT_IO   = FILEPERM_READ|FILEPERM_USER_WRITE|FILEPERM_GROUP_WRITE,  // permissions suitable for group IO access
00294     FILEPERM_DEFAULT_EXEC = FILEPERM_READ|FILEPERM_USER_WRITE|FILEPERM_GROUP_WRITE|FILEPERM_EXEC  // permissions suitable for all users to execute a file
00295 };

Socket families.

Enumerator:
FXSocketFamilyNone 
FXSocketFamilyLocal 
FXSocketFamilyInet 
FXSocketFamilyInet6 
FXSocketFamilyAutomatic 
FXSocketFamilyUnix 

Definition at line 244 of file fxexdefs.h.

00244                     {
00245     FXSocketFamilyNone=0,    // unknown socket family
00246     FXSocketFamilyLocal,     // Local domain socket (on nearly every system, same as Unix domain)
00247     FXSocketFamilyInet,      // Internet domain socket, version 4 (ie the default internet family)
00248     FXSocketFamilyInet6,     // Internet domain socket, version 6
00249     FXSocketFamilyAutomatic, // automatically choose UNIX domain (local) socket, when connecting
00250     // to localhost, internet domain for internet sockets
00251     FXSocketFamilyUnix=FXSocketFamilyLocal
00252 };

Socket types.

Socket definitions, for types and families

Enumerator:
FXSocketTypeNone 
FXSocketTypeStream 
FXSocketTypeTCP 
FXSocketTypeDatagram 
FXSocketTypeUDP 

Definition at line 235 of file fxexdefs.h.

00235                   {
00236     FXSocketTypeNone=0,                    // unknown socket type
00237     FXSocketTypeStream,                    // TCP socket
00238     FXSocketTypeTCP=FXSocketTypeStream,    // TCP socket
00239     FXSocketTypeDatagram,                  // UDP socket
00240     FXSocketTypeUDP=FXSocketTypeDatagram   // UDP socket
00241 };


Function Documentation

FXEX::FXDEFMAP ( FXThreadEvent   ) 

FXEX::FXDEFMAP ( FXSevenSegment   ) 

FXEX::FXDEFMAP ( FXLCDLabel   ) 

FXEX::FXDEFMAP ( FXBaseObject   ) 

FXEX::FXIMPLEMENT ( FXThreadEvent  ,
FXBaseObject  ,
FXThreadEventMap  ,
ARRAYNUMBER(FXThreadEventMap)   
)

Definition at line 72 of file FXThreadEvent.cpp.

References ID_THREAD_EVENT, and PIPE_READ.

00074                  : Constructor
00075 FXThreadEvent::FXThreadEvent(FXObject* tgt,FXSelector sel) : FXBaseObject(tgt,sel) {
00076 #ifndef WIN32
00077     FXMALLOC(&event,FXThreadEventHandle,2);
00078     FXint res = pipe(event);
00079     FXASSERT(res == 0);
00080     getApp()->addInput(event[PIPE_READ],INPUT_READ,this,ID_THREAD_EVENT);
00081 #else
00082     event=CreateEvent(NULL,FALSE,FALSE,NULL);
00083     FXASSERT(event != NULL);
00084     getApp()->addInput(event,INPUT_READ,this, ID_THREAD_EVENT);
00085 #endif
00086 }

FXEX::FXIMPLEMENT ( FXSevenSegment  ,
FXFrame  ,
FXSevenSegmentMap  ,
ARRAYNUMBER(FXSevenSegmentMap)   
)

Definition at line 69 of file FXSevenSegment.cpp.

00072                                                                                                                           : FXFrame(p,opts,0,0,0,0,pl,pr,pt,pb),value(' '),fgcolor(FXRGB(0,255,0)),bgcolor(FXRGB(0,0,0)),hsl(8),vsl(8),st(3),groove(1) {
00073     setTarget(tgt);
00074     setSelector(sel);
00075     enable();
00076 }

FXEX::FXIMPLEMENT ( FXLCDLabel  ,
FXHorizontalFrame  ,
FXLCDLabelMap  ,
ARRAYNUMBER(FXLCDLabelMap)   
)

Definition at line 72 of file FXLCDLabel.cpp.

00074                                                                                                                                        : FXHorizontalFrame(p,opts,0,0,0,0,pl,pr,pt,pb,hs,0) {
00075     if (nfig==0) fxerror("%s: must have at least one figure.\n",getClassName());
00076     nfigures=nfig;
00077     setTarget(tgt);
00078     setSelector(sel);
00079     enable();
00080     for (FXint i=0; i<nfigures; i++) {
00081         new FXSevenSegment(this,this,ID_SEVENSEGMENT,0,0,0,0);
00082     }
00083 }

FXEX::FXIMPLEMENT ( FXBaseObject  ,
FXObject  ,
FXBaseObjectMap  ,
ARRAYNUMBER(FXBaseObjectMap)   
)

Definition at line 61 of file FXBaseObject.cpp.

00064                                                        : FXObject() {
00065     data=NULL;
00066     target=tgt;
00067     message=sel;
00068     flags=0;
00069     app=FXApp::instance();
00070     if (app==NULL) {
00071         fxerror("%s: Cannot create object without FXApp object\n",getClassName());
00072     }
00073 }


Generated on Wed May 5 00:07:01 2010 for Sumo - Simulation of Urban MObility by  doxygen 1.5.6