When you have a #ifdef SERVER_SIDE statement in an include file, 
    the C++ Middleware Writer ignores lines that fall under the 
    #ifdef.  This is helpful in developing a server/ambassador 
    (aka client/server) system.  Without this sort of feature you 
    have two less than satisfying options: 

    1. Sending data between a server and ambassador that isn't
       needed by an ambassador.
    2. Breaking your type into two types and (typically) maintaining 
       parallel containers of the instances.

    By using an #ifdef SERVER_SIDE statement you can keep the type
    intact and don't have to send extraneous data.  Keep in mind
    that when building your server, the macro SERVER_SIDE is turned
    on and when building ambassadors it is turned off.  If the 
    above is hard to follow, here's another attempt.              

    class FileInfo
    {
      int32_t size_;

#ifdef 	SERVER_SIDE
      bool isNew_;
      int32_t modTime_;

      public:
      FileInfo() : isNew_(true) {}
#endif

      // ...
    };

    The isNew_ and modTime_ fields are only needed by the server.  
    You want to be able to send FileInfo objects to ambassadors 
    but they only need the size_ field.  Logically, it makes 
    sense to have the isNew_ and modTime_ fields be a part of 
    FileInfo, but doing so would mean having to send/receive 
    those two fields.  This dilemma is averted by using the 
    #ifdef SERVER_SIDE option.
 
    It might be helpful to compare the code that is output with
    and without a #ifdef SERVER_SIDE statement.