servlib/bundling/UnknownBlockProcessor.h
changeset 0 2b3e5ec03512
equal deleted inserted replaced
-1:000000000000 0:2b3e5ec03512
       
     1 /*
       
     2  *    Copyright 2006 Intel Corporation
       
     3  * 
       
     4  *    Licensed under the Apache License, Version 2.0 (the "License");
       
     5  *    you may not use this file except in compliance with the License.
       
     6  *    You may obtain a copy of the License at
       
     7  * 
       
     8  *        http://www.apache.org/licenses/LICENSE-2.0
       
     9  * 
       
    10  *    Unless required by applicable law or agreed to in writing, software
       
    11  *    distributed under the License is distributed on an "AS IS" BASIS,
       
    12  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
       
    13  *    See the License for the specific language governing permissions and
       
    14  *    limitations under the License.
       
    15  */
       
    16 
       
    17 #ifndef _UNKNOWN_BLOCK_PROCESSOR_H_
       
    18 #define _UNKNOWN_BLOCK_PROCESSOR_H_
       
    19 
       
    20 #include <oasys/util/Singleton.h>
       
    21 
       
    22 #include "BlockProcessor.h"
       
    23 
       
    24 namespace dtn {
       
    25 
       
    26 /**
       
    27  * Block processor implementation for any unknown bundle blocks.
       
    28  */
       
    29 class UnknownBlockProcessor : public BlockProcessor,
       
    30                               public oasys::Singleton<UnknownBlockProcessor> {
       
    31 public:
       
    32     /// Constructor
       
    33     UnknownBlockProcessor();
       
    34     
       
    35     /// @{ Virtual from BlockProcessor
       
    36     int prepare(const Bundle*    bundle,
       
    37                 BlockInfoVec*    xmit_blocks,
       
    38                 const BlockInfo* source,
       
    39                 const LinkRef&   link,
       
    40                 list_owner_t     list);
       
    41     
       
    42     int generate(const Bundle*  bundle,
       
    43                  BlockInfoVec*  xmit_blocks,
       
    44                  BlockInfo*     block,
       
    45                  const LinkRef& link,
       
    46                  bool           last);
       
    47 
       
    48     bool validate(const Bundle*           bundle,
       
    49                   BlockInfoVec*           block_list,
       
    50                   BlockInfo*              block,
       
    51                   status_report_reason_t* reception_reason,
       
    52                   status_report_reason_t* deletion_reason);
       
    53     /// @}
       
    54 };
       
    55 
       
    56 } // namespace dtn
       
    57 
       
    58 #endif /* _UNKNOWN_BLOCK_PROCESSOR_H_ */